[tracker-miners/wip/jfelder/gstreamer-extractor-album-date] tracker-extract-gstreamer: Correctly use the date for album uri



commit 8685aa46e2b658212872b46bcd15cc6baf01825a
Author: Jean Felder <jfelder src gnome org>
Date:   Mon May 25 00:33:37 2020 +0200

    tracker-extract-gstreamer: Correctly use the date for album uri
    
    This fixes a regression introduced by commits
    84ae27bef23123b7997251ac4f441229a875715c and
    d592c96731c24fc957dfb89052b295a75c841015
    
    Prior to those commits, the tag_date_time (or tag_time as fallback)
    was used if it contained a minimal string compatible with
    ISO-8601. In pratice, it means that it contains at least a year.
    
    Following the changes of those two commits, the date information is
    never used to create the album uri because extract_gst_date_time()
    always returns FALSE.
    
    This issue is fixed by returning TRUE if a date tag contains at least
    a year. This mimicks the behavior of the other audio extractors (ogg,
    mp3 and flac) which use tracker_date_guess() to extract a minimal
    string compatible with ISO-8601.

 src/tracker-extract/tracker-extract-gstreamer.c   |  5 ++---
 tests/functional-tests/extractor-flac-cuesheet.py | 10 +++++-----
 2 files changed, 7 insertions(+), 8 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-gstreamer.c b/src/tracker-extract/tracker-extract-gstreamer.c
index 826e5d135..077be7ba8 100644
--- a/src/tracker-extract/tracker-extract-gstreamer.c
+++ b/src/tracker-extract/tracker-extract-gstreamer.c
@@ -230,9 +230,10 @@ extract_gst_date_time (gchar       *buf,
 
        buf[0] = '\0';
 
-       if (gst_tag_list_get_date_time (tag_list, tag_date_time, &date_time)) {
+       if (gst_tag_list_get_date_time (tag_list, tag_date_time, &date_time) && gst_date_time_has_year 
(date_time)) {
                gboolean complete;
 
+               ret = TRUE;
                complete = get_gst_date_time_to_buf (date_time, buf, size);
                gst_date_time_unref (date_time);
 
@@ -240,8 +241,6 @@ extract_gst_date_time (gchar       *buf,
                        g_debug ("GstDateTime was not complete, parts of the date/time were missing (e.g. 
hours, minutes, seconds)");
                }
        } else if (gst_tag_list_get_date (tag_list, tag_date, &date)) {
-               gboolean ret = FALSE;
-
                if (date && g_date_valid (date)) {
                        if (date->julian)
                                ret = g_date_valid_julian (date->julian_days);
diff --git a/tests/functional-tests/extractor-flac-cuesheet.py 
b/tests/functional-tests/extractor-flac-cuesheet.py
index 9ea446ad5..9d02210f6 100755
--- a/tests/functional-tests/extractor-flac-cuesheet.py
+++ b/tests/functional-tests/extractor-flac-cuesheet.py
@@ -40,8 +40,8 @@ class FlacCuesheetTest(fixtures.TrackerExtractTestCase):
             'nie:title': 'Only Shallow',
             'nmm:trackNumber': 1,
             'nfo:sampleRate': 44100,
-            'nmm:musicAlbum': 'urn:album:Loveless:My%20Bloody%20Valentine',
-            'nmm:musicAlbumDisc': 'urn:album-disc:Loveless:My%20Bloody%20Valentine:Disc1',
+            'nmm:musicAlbum': 'urn:album:Loveless:My%20Bloody%20Valentine:1991-01-01T00:00:00Z',
+            'nmm:musicAlbumDisc': 
'urn:album-disc:Loveless:My%20Bloody%20Valentine:Disc1:1991-01-01T00:00:00Z',
             'nie:isStoredAs': {
                 '@id': audio_uri,
                 'nie:interpretedAs': [
@@ -55,16 +55,16 @@ class FlacCuesheetTest(fixtures.TrackerExtractTestCase):
                         'nie:isStoredAs': audio_uri,
                         'nie:title': 'Loomer',
                         'nmm:musicAlbum': {
-                            '@id': 'urn:album:Loveless:My%20Bloody%20Valentine',
+                            '@id': 'urn:album:Loveless:My%20Bloody%20Valentine:1991-01-01T00:00:00Z',
                             'nie:title': 'Loveless',
                             'nmm:albumTrackCount': 2,
                             '@type': 'nmm:MusicAlbum',
                             'nmm:albumArtist': ['urn:artist:My%20Bloody%20Valentine']
                         },
                         'nmm:musicAlbumDisc': {
-                            '@id': 'urn:album-disc:Loveless:My%20Bloody%20Valentine:Disc1',
+                            '@id': 
'urn:album-disc:Loveless:My%20Bloody%20Valentine:Disc1:1991-01-01T00:00:00Z',
                             'nmm:setNumber': 1,
-                            'nmm:albumDiscAlbum': 'urn:album:Loveless:My%20Bloody%20Valentine',
+                            'nmm:albumDiscAlbum': 
'urn:album:Loveless:My%20Bloody%20Valentine:1991-01-01T00:00:00Z',
                             '@type': 'nmm:MusicAlbumDisc'
                         }
                     }


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