diff options
author | Bastien Nocera <hadess@hadess.net> | 2014-11-27 15:09:42 +0100 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2015-08-25 18:20:15 +0200 |
commit | 3ae4ffd882de07b2e8640b82e326632e53c2937d (patch) | |
tree | 657e2886ede8424c91e919db67aff30a548eb73e | |
parent | b4cf71a18de08825006ed7e7c3b8545e736b1839 (diff) | |
download | grilo-plugins-3ae4ffd882de07b2e8640b82e326632e53c2937d.tar.gz |
metadata-store: Update for last-played type change
https://bugzilla.gnome.org/show_bug.cgi?id=686175
-rw-r--r-- | src/metadata-store/grl-metadata-store.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/metadata-store/grl-metadata-store.c b/src/metadata-store/grl-metadata-store.c index 7304c21..cdc760f 100644 --- a/src/metadata-store/grl-metadata-store.c +++ b/src/metadata-store/grl-metadata-store.c @@ -315,8 +315,16 @@ fill_metadata_from_stmt (GrlMedia *media, GList *keys, sqlite3_stmt *stmt) rating = sqlite3_column_double (stmt, STORE_RATING); grl_media_set_rating (media, rating, 5.00); } else if (key == GRL_METADATA_KEY_LAST_PLAYED) { + GDateTime *date; last_played = (gchar *) sqlite3_column_text (stmt, STORE_LAST_PLAYED); - grl_media_set_last_played (media, last_played); + date = grl_date_time_from_iso8601 (last_played); + if (date) { + grl_media_set_last_played (media, date); + g_date_time_unref (date); + } else { + GRL_WARNING ("Unable to set 'last-played', as '%s' date is invalid", + last_played); + } } else if (key == GRL_METADATA_KEY_LAST_POSITION) { last_position = sqlite3_column_int (stmt, STORE_LAST_POSITION); grl_media_set_last_position (media, last_position); @@ -395,7 +403,6 @@ bind_and_exec (sqlite3 *db, GrlMedia *media) { gint r; - const gchar *char_value; gint int_value; double double_value; GList *iter_names, *iter_keys; @@ -433,8 +440,14 @@ bind_and_exec (sqlite3 *db, int_value = grl_media_get_last_position (media); sqlite3_bind_int (stmt, count, int_value); } else if (key == GRL_METADATA_KEY_LAST_PLAYED) { - char_value = grl_media_get_last_played (media); - sqlite3_bind_text (stmt, count, char_value, -1, SQLITE_STATIC); + GDateTime *date; + char *date_str; + date = grl_media_get_last_played (media); + if (date) { + date_str = g_date_time_format (date, "%F %T"); + sqlite3_bind_text (stmt, count, date_str, -1, SQLITE_STATIC); + g_free (date_str); + } } else if (key == GRL_METADATA_KEY_FAVOURITE) { int_value = (gint) grl_media_get_favourite (media); sqlite3_bind_int (stmt, count, int_value); |