PhotosQuery * photos_query_builder_create_collection_query (PhotosSearchContextState *state, const gchar *name) { GTimeVal tv; gchar *sparql; gchar *time; gint64 timestamp; timestamp = g_get_real_time () / G_USEC_PER_SEC; tv.tv_sec = timestamp; tv.tv_usec = 0; time = g_time_val_to_iso8601 (&tv); sparql = g_strdup_printf ("INSERT { _:res a nfo:DataContainer ; a nie:DataObject ; " "nie:contentLastModified '%s' ; " "nie:title '%s' ; " "nao:identifier '%s%s' }", time, name, PHOTOS_QUERY_LOCAL_COLLECTIONS_IDENTIFIER, name); g_free (time); return photos_query_new (state, sparql); }
void photos_utils_set_favorite (const gchar *urn, gboolean is_favorite) { g_autoptr (PhotosQuery) query = NULL; g_autoptr (PhotosTrackerQueue) queue = NULL; g_autofree gchar *sparql = NULL; sparql = g_strdup_printf ("%s { <%s> nao:hasTag nao:predefined-tag-favorite }", (is_favorite) ? "INSERT OR REPLACE" : "DELETE", urn); query = photos_query_new (NULL, sparql); { g_autoptr (GError) error = NULL; queue = photos_tracker_queue_dup_singleton (NULL, &error); if (G_UNLIKELY (error != NULL)) { g_warning ("Unable to set favorite %s: %s", urn, error->message); goto out; } } photos_tracker_queue_update (queue, query, NULL, photos_utils_update_executed, g_strdup (urn), g_free); out: return; }
void photos_utils_set_edited_name (const gchar *urn, const gchar *title) { g_autoptr (PhotosQuery) query = NULL; g_autoptr (PhotosTrackerQueue) queue = NULL; g_autofree gchar *sparql = NULL; sparql = g_strdup_printf ("INSERT OR REPLACE { <%s> nie:title \"%s\" }", urn, title); query = photos_query_new (NULL, sparql); { g_autoptr (GError) error = NULL; queue = photos_tracker_queue_dup_singleton (NULL, &error); if (G_UNLIKELY (error != NULL)) { g_warning ("Unable to set edited name %s: %s", urn, error->message); goto out; } } photos_tracker_queue_update (queue, query, NULL, photos_utils_update_executed, g_strdup (urn), g_free); out: return; }
PhotosQuery * photos_query_builder_fetch_collections_query (PhotosSearchContextState *state, const gchar *resource) { gchar *sparql; sparql = g_strdup_printf ("SELECT ?urn WHERE { ?urn a nfo:DataContainer . <%s> nie:isPartOf ?urn }", resource); return photos_query_new (state, sparql); }
PhotosQuery * photos_query_builder_delete_resource_query (PhotosSearchContextState *state, const gchar *resource) { gchar *sparql; sparql = g_strdup_printf ("DELETE { <%s> a rdfs:Resource }", resource); return photos_query_new (state, sparql); }
PhotosQuery * photos_query_builder_global_query (PhotosSearchContextState *state, gint flags, PhotosOffsetController *offset_cntrlr) { gchar *sparql; sparql = photos_query_builder_query (state, TRUE, flags, offset_cntrlr); return photos_query_new (state, sparql); }
PhotosQuery * photos_query_builder_equipment_query (PhotosSearchContextState *state, GQuark equipment) { const gchar *resource; gchar *sparql; resource = g_quark_to_string (equipment); sparql = g_strdup_printf ("SELECT nfo:manufacturer (<%s>) nfo:model (<%s>) WHERE {}", resource, resource); return photos_query_new (state, sparql); }
PhotosQuery * photos_query_builder_count_query (PhotosSearchContextState *state, gint flags) { gchar *sparql; gchar *where_sparql; where_sparql = photos_query_builder_where (state, TRUE, flags); sparql = g_strconcat ("SELECT DISTINCT COUNT(?urn) ", where_sparql, NULL); g_free (where_sparql); return photos_query_new (state, sparql); }
PhotosQuery * photos_query_builder_collection_icon_query (PhotosSearchContextState *state, const gchar *resource) { gchar *sparql; sparql = g_strdup_printf ("SELECT ?urn " "tracker:coalesce(nfo:fileLastModified(?urn), nie:contentLastModified(?urn)) AS ?mtime " "WHERE { ?urn nie:isPartOf <%s> } " "ORDER BY DESC (?mtime) LIMIT 4", resource); return photos_query_new (state, sparql); }
PhotosQuery * photos_query_builder_set_collection_query (PhotosSearchContextState *state, const gchar *item_urn, const gchar *collection_urn, gboolean setting) { gchar *sparql; sparql = g_strdup_printf ("%s { <%s> nie:isPartOf <%s> }", setting ? "INSERT" : "DELETE", item_urn, collection_urn); return photos_query_new (state, sparql); }
PhotosQuery * photos_query_builder_update_mtime_query (PhotosSearchContextState *state, const gchar *resource) { GTimeVal tv; gchar *sparql; gchar *time; gint64 timestamp; timestamp = g_get_real_time () / G_USEC_PER_SEC; tv.tv_sec = timestamp; tv.tv_usec = 0; time = g_time_val_to_iso8601 (&tv); sparql = g_strdup_printf ("INSERT OR REPLACE { <%s> nie:contentLastModified '%s' }", resource, time); g_free (time); return photos_query_new (state, sparql); }
PhotosQuery * photos_query_builder_single_query (PhotosSearchContextState *state, gint flags, const gchar *resource) { GRegex *regex; gchar *replacement; gchar *sparql; gchar *tmp; tmp = photos_query_builder_query (state, FALSE, flags, NULL); regex = g_regex_new ("\\?urn", 0, 0, NULL); replacement = g_strconcat ("<", resource, ">", NULL); sparql = g_regex_replace (regex, tmp, -1, 0, replacement, 0, NULL); g_free (replacement); g_free (tmp); g_regex_unref (regex); return photos_query_new (state, sparql); }