diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-05-11 12:39:59 +0200 |
---|---|---|
committer | Jean Felder <jean.felder@gmail.com> | 2020-08-21 15:05:10 +0000 |
commit | bb456037a9dfac7bdfded98bacb7245f801929ed (patch) | |
tree | 4e8275ba46e0a1b95460eb384371ecc244c481e6 | |
parent | 987135b0234c6e47c8c6b2f2343b4e24823d33dc (diff) | |
download | grilo-plugins-bb456037a9dfac7bdfded98bacb7245f801929ed.tar.gz |
tracker3: Drop browse-filesystem configuration option
Besides allowing to browse folders as media containers, this option
makes change notifications work by enabling tracker:notify on nfo:Folder
type, so the grilo client (and everyone else, really ) may receive
TrackerNotifier notifications about folder additions/changes.
It's not in the hand of a client to do this, it ought not. Besides the
option seems completely unused according to codesearch.debian.net.
The Tracker plugin should not be intended for browsing as a filesystem
structure, and it is possible to create media containers specifically
for folders that do contain media. Drop this configuration option in
the tracker3 module.
-rw-r--r-- | src/tracker3/grl-tracker-source-api.c | 92 | ||||
-rw-r--r-- | src/tracker3/grl-tracker-source-priv.h | 1 | ||||
-rw-r--r-- | src/tracker3/grl-tracker.c | 82 |
3 files changed, 2 insertions, 173 deletions
diff --git a/src/tracker3/grl-tracker-source-api.c b/src/tracker3/grl-tracker-source-api.c index 5abf3a0..92958da 100644 --- a/src/tracker3/grl-tracker-source-api.c +++ b/src/tracker3/grl-tracker-source-api.c @@ -113,32 +113,6 @@ GRL_LOG_DOMAIN_STATIC(tracker_source_result_log_domain); "OFFSET %u " \ "LIMIT %u" -#define TRACKER_BROWSE_FILESYSTEM_ROOT_REQUEST \ - "SELECT DISTINCT rdf:type(?urn) %s " \ - "WHERE " \ - "{ " \ - "%s " \ - "{ ?urn a nfo:Folder } %s " \ - "%s " \ - "FILTER (!bound(nfo:belongsToContainer(?urn))) " \ - "} " \ - "ORDER BY DESC(nfo:fileLastModified(?urn)) " \ - "OFFSET %u " \ - "LIMIT %u" - -#define TRACKER_BROWSE_FILESYSTEM_REQUEST \ - "SELECT DISTINCT rdf:type(?urn) %s " \ - "WHERE " \ - "{ " \ - "%s " \ - "{ ?urn a nfo:Folder } %s " \ - "%s " \ - "FILTER(tracker:id(nfo:belongsToContainer(?urn)) = %s) " \ - "} " \ - "ORDER BY DESC(nfo:fileLastModified(?urn)) " \ - "OFFSET %u " \ - "LIMIT %u" - #define TRACKER_RESOLVE_REQUEST \ "SELECT %s " \ "WHERE " \ @@ -1217,67 +1191,6 @@ grl_tracker_source_browse_category (GrlSource *source, g_free (duration_constraint); } -static void -grl_tracker_source_browse_filesystem (GrlSource *source, - GrlSourceBrowseSpec *bs) -{ - GrlTrackerSourcePriv *priv = GRL_TRACKER_SOURCE_GET_PRIVATE (source); - gchar *constraint; - gchar *sparql_select; - gchar *sparql_final; - gchar *sparql_type_filter; - GrlTrackerOp *os; - gint count = grl_operation_options_get_count (bs->options); - guint skip = grl_operation_options_get_skip (bs->options); - int min_dur, max_dur; - char *duration_constraint; - - GRL_IDEBUG ("%s: id=%u", __FUNCTION__, bs->operation_id); - - sparql_select = grl_tracker_source_get_select_string (bs->keys); - constraint = grl_tracker_source_get_device_constraint (priv); - sparql_type_filter = get_sparql_type_filter (bs->options, TRUE); - grl_tracker_source_get_duration_min_max (bs->options, &min_dur, &max_dur); - duration_constraint = grl_tracker_source_create_constraint (min_dur, max_dur); - - if (bs->container == NULL || - !grl_media_get_id (bs->container)) { - sparql_final = g_strdup_printf (TRACKER_BROWSE_FILESYSTEM_ROOT_REQUEST, - sparql_select, - grl_tracker_show_documents? TRACKER_BROWSE_SHOW_DOCUMENTS: "", - sparql_type_filter, - constraint, - skip, count); - - } else { - sparql_final = g_strdup_printf (TRACKER_BROWSE_FILESYSTEM_REQUEST, - sparql_select, - grl_tracker_show_documents? TRACKER_BROWSE_SHOW_DOCUMENTS: "", - sparql_type_filter, - constraint, - grl_media_get_id (bs->container), - skip, count); - } - - GRL_IDEBUG ("\tselect: '%s'", sparql_final); - - os = grl_tracker_op_initiate_query (bs->operation_id, - sparql_final, - (GAsyncReadyCallback) tracker_browse_cb, - bs); - os->keys = bs->keys; - os->skip = skip; - os->count = count; - os->type_filter = grl_operation_options_get_type_filter (bs->options); - - grl_tracker_queue_push (grl_tracker_queue, os); - - g_free (sparql_type_filter); - g_free (constraint); - g_free (sparql_select); - g_free (duration_constraint); -} - void grl_tracker_source_browse (GrlSource *source, GrlSourceBrowseSpec *bs) @@ -1286,10 +1199,7 @@ grl_tracker_source_browse (GrlSource *source, if (!g_list_find (bs->keys, GRLKEYID_TO_POINTER (GRL_METADATA_KEY_ID))) bs->keys = g_list_prepend (bs->keys, GRLKEYID_TO_POINTER (GRL_METADATA_KEY_ID)); - if (grl_tracker_browse_filesystem) - grl_tracker_source_browse_filesystem (source, bs); - else - grl_tracker_source_browse_category (source, bs); + grl_tracker_source_browse_category (source, bs); } void diff --git a/src/tracker3/grl-tracker-source-priv.h b/src/tracker3/grl-tracker-source-priv.h index f396ae1..42e50b5 100644 --- a/src/tracker3/grl-tracker-source-priv.h +++ b/src/tracker3/grl-tracker-source-priv.h @@ -80,7 +80,6 @@ extern GrlPlugin *grl_tracker_plugin; extern GrlTrackerCache *grl_tracker_item_cache; /* tracker plugin config */ -extern gboolean grl_tracker_browse_filesystem; extern gboolean grl_tracker_show_documents; #endif /* _GRL_TRACKER_SOURCE_PRIV_H_ */ diff --git a/src/tracker3/grl-tracker.c b/src/tracker3/grl-tracker.c index 6b613f1..64d5e3e 100644 --- a/src/tracker3/grl-tracker.c +++ b/src/tracker3/grl-tracker.c @@ -43,21 +43,6 @@ #define GRL_LOG_DOMAIN_DEFAULT tracker_general_log_domain GRL_LOG_DOMAIN_STATIC(tracker_general_log_domain); -/* ------- Definitions ------- */ - -#define TRACKER_FOLDER_CLASS_REQUEST \ - "SELECT ?urn WHERE " \ - "{ " \ - "?urn a rdfs:Class . " \ - "FILTER(fn:ends-with(?urn,\"nfo#Folder\")) " \ - "}" - -#define TRACKER_NOTIFY_FOLDER_UPDATE \ - "INSERT " \ - "{ " \ - "<%s> tracker:notify true " \ - "}" - /* --- Other --- */ gboolean grl_tracker3_plugin_init (GrlRegistry *registry, @@ -72,7 +57,6 @@ GCancellable *grl_tracker_plugin_init_cancel = NULL; GrlTrackerQueue *grl_tracker_queue = NULL; /* tracker plugin config */ -gboolean grl_tracker_browse_filesystem = FALSE; gboolean grl_tracker_show_documents = FALSE; /* =================== Tracker Plugin =============== */ @@ -92,59 +76,6 @@ init_sources (void) } static void -tracker_update_folder_class_cb (GObject *object, - GAsyncResult *result, - gpointer data) -{ - init_sources (); -} - -static void -tracker_get_folder_class_cb (GObject *object, - GAsyncResult *result, - gpointer data) -{ - GError *error = NULL; - TrackerSparqlCursor *cursor; - - GRL_DEBUG ("%s", __FUNCTION__); - - cursor = tracker_sparql_connection_query_finish (grl_tracker_connection, - result, &error); - - if (error) { - GRL_INFO ("Could not execute sparql query for folder class: %s", - error->message); - g_error_free (error); - } - - if (!cursor) { - init_sources (); - return; - } - - if (tracker_sparql_cursor_next (cursor, NULL, NULL)) { - gchar *update = g_strdup_printf (TRACKER_NOTIFY_FOLDER_UPDATE, - tracker_sparql_cursor_get_string (cursor, - 0, - NULL)); - - GRL_DEBUG ("\tupdate query: '%s'", update); - - tracker_sparql_connection_update_async (grl_tracker_connection, - update, - G_PRIORITY_DEFAULT, - NULL, - tracker_update_folder_class_cb, - NULL); - - g_free (update); - } - - g_object_unref (cursor); -} - -static void tracker_new_connection_cb (GObject *object, GAsyncResult *res, GrlPlugin *plugin) @@ -161,16 +92,7 @@ tracker_new_connection_cb (GObject *object, return; } - GRL_DEBUG ("\trequest : '%s'", TRACKER_FOLDER_CLASS_REQUEST); - - if (grl_tracker_browse_filesystem) - tracker_sparql_connection_query_async (grl_tracker_connection, - TRACKER_FOLDER_CLASS_REQUEST, - grl_tracker_plugin_init_cancel, - tracker_get_folder_class_cb, - NULL); - else - init_sources (); + init_sources (); } gboolean @@ -202,8 +124,6 @@ grl_tracker3_plugin_init (GrlRegistry *registry, config = GRL_CONFIG (configs->data); - grl_tracker_browse_filesystem = - grl_config_get_boolean (config, "browse-filesystem"); grl_tracker_show_documents = grl_config_get_boolean (config, "show-documents"); } |