[grilo-plugins] tracker: Support last-played metadata storage



commit b07bf0539932fd9f20550ef63049c908fb942927
Author: Marinus Schraal <mschraal scr gnome org>
Date:   Tue Nov 22 23:21:29 2016 +0100

    tracker: Support last-played metadata storage
    
    Allows storing the last played date-time in tracker. Use the
    nfo:fileLastAccessed & nie:contentAccessed property for this as they
    are both valid.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=774748

 src/tracker/grl-tracker-utils.c |   21 ++++++++++++++++-----
 1 files changed, 16 insertions(+), 5 deletions(-)
---
diff --git a/src/tracker/grl-tracker-utils.c b/src/tracker/grl-tracker-utils.c
index 4c296bc..e6e7c47 100644
--- a/src/tracker/grl-tracker-utils.c
+++ b/src/tracker/grl-tracker-utils.c
@@ -375,10 +375,11 @@ grl_tracker_setup_key_mappings (void)
                       "nie:usageCounter(?urn)",
                       "media");
 
-  insert_key_mapping (GRL_METADATA_KEY_LAST_PLAYED,
-                      "nie:contentAccessed",
-                      "nie:contentAccessed(?urn)",
-                      "media");
+  insert_key_mapping_with_setter (GRL_METADATA_KEY_LAST_PLAYED,
+                                  "nie:contentAccessed",
+                                  "nie:contentAccessed(?urn)",
+                                  "media",
+                                  set_date);
 
   insert_key_mapping (GRL_METADATA_KEY_LAST_POSITION,
                       "nfo:lastPlayedPosition",
@@ -480,8 +481,9 @@ gen_prop_insert_string (GString *gstr,
                         GrlData *data)
 {
   gchar *tmp;
+  GType type = GRL_METADATA_KEY_GET_TYPE (assoc->grl_key);
 
-  switch (GRL_METADATA_KEY_GET_TYPE (assoc->grl_key)) {
+  switch (type) {
   case G_TYPE_STRING:
     tmp = g_strescape (grl_data_get_string (data, assoc->grl_key), NULL);
     g_string_append_printf (gstr, "%s \"%s\"",
@@ -512,6 +514,15 @@ gen_prop_insert_string (GString *gstr,
     break;
 
   default:
+    if (type == G_TYPE_DATE_TIME) {
+      tmp = g_date_time_format (grl_data_get_boxed (data, assoc->grl_key),
+                                "%FT%T%:z");
+      g_string_append_printf (gstr, "%s '%s'",
+                              assoc->sparql_key_attr,
+                              tmp);
+
+      g_free (tmp);
+    }
     break;
   }
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]