[grilo-plugins/wip/jfelder/tracker-musicbrainz-external-reference: 7/7] tracker: Use tracker:ExternalReference to retrieve musicbrainz ids
- From: Jean Felder <jfelder src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grilo-plugins/wip/jfelder/tracker-musicbrainz-external-reference: 7/7] tracker: Use tracker:ExternalReference to retrieve musicbrainz ids
- Date: Wed, 11 Sep 2019 18:30:36 +0000 (UTC)
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]