[grilo-plugins/wip/jfelder/tracker-musicbrainz-external-reference: 7/7] tracker: Use tracker:ExternalReference to retrieve musicbrainz ids



commit 7c29d5e9027cfa8f0c1c0faadc62d7779f80a8d5
Author: Jean Felder <jfelder src gnome org>
Date:   Sat Aug 31 18:59:02 2019 +0200

    tracker: Use tracker:ExternalReference to retrieve musicbrainz ids
    
    During Tracker 2.3 development cycle, nepomuk ontology has been
    extended to handle MusicBrainz identifiers. The initial idea was to
    extend nmm:MusicPiece to add new MusicBrainz properties. This solution
    was not generic enough (it did not allow to handle other online
    services). Finally, it has been decided to introduce
    tracker:ExternalReference to handle MusicBrainz (and any ony online
    service).
    
    This commit updates the mapping to query tracker:ExternalReference
    instead of the previous properties.
    
    There is no need to handle the previous way because there is no
    released version of Tracker with it.
    
    See: https://gitlab.gnome.org/GNOME/tracker/merge_requests/107

 meson.build                     |  5 +----
 src/tracker/grl-tracker-utils.c | 24 ++++++++++++------------
 2 files changed, 13 insertions(+), 16 deletions(-)
---
diff --git a/meson.build b/meson.build
index 44e538a0..f106486c 100644
--- a/meson.build
+++ b/meson.build
@@ -68,10 +68,7 @@ oauth_dep = dependency('oauth', required: false)
 sqlite3_dep = dependency('sqlite3', required: false)
 totem_plparser_dep = dependency('totem-plparser', version: '>= 3.4.1', required: false)
 totem_plparser_mini_dep = dependency('totem-plparser-mini', version: '>= 3.4.1', required: false)
-tracker_sparql_dep = dependency('tracker-sparql-2.0', required: false)
-if not tracker_sparql_dep.found()
-    tracker_sparql_dep = dependency('tracker-sparql-1.0', required: false)
-endif
+tracker_sparql_dep = dependency('tracker-sparql-2.0', version: '>= 2.3.0', required: false)
 
 lua_dep = dependency('lua', version: '>= 5.3.0', required: false)
 if not lua_dep.found()
diff --git a/src/tracker/grl-tracker-utils.c b/src/tracker/grl-tracker-utils.c
index 94701100..86f0f0c8 100644
--- a/src/tracker/grl-tracker-utils.c
+++ b/src/tracker/grl-tracker-utils.c
@@ -301,29 +301,29 @@ grl_tracker_setup_key_mappings (void)
                       "audio");
 
   insert_key_mapping (GRL_METADATA_KEY_MB_TRACK_ID,
-                      "nmm:mbTrackID",
-                      "nmm:mbTrackID(?urn)",
-                      "audio");
+                      NULL,
+                      "(SELECT tracker:referenceIdentifier(?t) AS ?t_id { ?urn tracker:hasExternalReference 
?t . ?t tracker:referenceSource \"https://musicbrainz.org/doc/Track\"; })",
+                     "audio");
 
   insert_key_mapping (GRL_METADATA_KEY_MB_ARTIST_ID,
-                      "nmm:mbArtistID",
-                      "nmm:mbArtistID(?urn)",
+                      NULL,
+                     "(SELECT tracker:referenceIdentifier(?a) AS ?a_id { ?urn nmm:performer ?artist . 
?artist tracker:hasExternalReference ?a . ?a tracker:referenceSource \"https://musicbrainz.org/doc/Artist\"; 
})",
                       "audio");
 
   insert_key_mapping (GRL_METADATA_KEY_MB_RECORDING_ID,
-                      "nmm:mbRecordingID",
-                      "nmm:mbRecordingID(?urn)",
+                      NULL,
+                     "(SELECT tracker:referenceIdentifier(?r) AS ?r_id { ?urn tracker:hasExternalReference 
?r . ?r tracker:referenceSource \"https://musicbrainz.org/doc/Recording\"; })",
                       "audio");
 
   insert_key_mapping (GRL_METADATA_KEY_MB_RELEASE_ID,
-                      "nmm:mbReleaseID",
-                      "nmm:mbReleaseID(?urn)",
+                      NULL,
+                     "(SELECT tracker:referenceIdentifier(?re) AS ?re_id { ?urn nmm:musicAlbum ?album . 
?album tracker:hasExternalReference ?re . ?re tracker:referenceSource \"https://musicbrainz.org/doc/Release\"; 
})",
                       "audio");
 
   insert_key_mapping (GRL_METADATA_KEY_MB_RELEASE_GROUP_ID,
-                      "nmm:mbReleaseGroupID",
-                      "nmm:mbReleaseGroupID(?urn)",
-                      "audio");
+                      NULL,
+                     "(SELECT tracker:referenceIdentifier(?rg) AS ?rg_id { ?urn nmm:musicAlbum ?album . 
?album tracker:hasExternalReference ?rg . ?rg tracker:referenceSource 
\"https://musicbrainz.org/doc/Release_Group\"; })",
+                     "audio");
 
   insert_key_mapping_with_setter (grl_metadata_key_chromaprint,
                                   NULL,


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