[tracker/anonymous-file-nodes: 10/26] Fixed bug with nmm:albumTrackCount being set to different values
- From: Martyn James Russell <mr src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/anonymous-file-nodes: 10/26] Fixed bug with nmm:albumTrackCount being set to different values
- Date: Wed, 3 Feb 2010 10:37:32 +0000 (UTC)
commit a2eb49b92a295c8086782fb426fc416094176835
Author: Philip Van Hoof <philip codeminded be>
Date: Tue Jan 26 16:53:18 2010 +0100
Fixed bug with nmm:albumTrackCount being set to different values
... for the same album, which was failing the insert query for
the entire song
src/tracker-extract/tracker-extract-gstreamer.c | 56 ++++++++++++++++++++++-
src/tracker-extract/tracker-extract-mp3.c | 17 +++++++
src/tracker-extract/tracker-extract-vorbis.c | 17 +++++++
3 files changed, 88 insertions(+), 2 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-gstreamer.c b/src/tracker-extract/tracker-extract-gstreamer.c
index 4ad410d..30eedc0 100644
--- a/src/tracker-extract/tracker-extract-gstreamer.c
+++ b/src/tracker-extract/tracker-extract-gstreamer.c
@@ -533,6 +533,9 @@ extract_metadata (MetadataExtractor *extractor,
s = NULL;
gst_tag_list_get_string (extractor->tagcache, GST_TAG_ALBUM, &s);
if (s) {
+ gboolean has_it;
+ guint count;
+
album_uri = tracker_uri_printf_escaped ("urn:album:%s", s);
tracker_sparql_builder_insert_open (preupdate, NULL);
@@ -542,8 +545,57 @@ extract_metadata (MetadataExtractor *extractor,
tracker_sparql_builder_object (preupdate, "nmm:MusicAlbum");
tracker_sparql_builder_predicate (preupdate, "nmm:albumTitle");
tracker_sparql_builder_object_unvalidated (preupdate, s);
- add_uint_gst_tag (preupdate, album_uri, "nmm:albumTrackCount", extractor->tagcache, GST_TAG_TRACK_COUNT);
- add_uint_gst_tag (preupdate, album_uri, "nmm:setNumber", extractor->tagcache, GST_TAG_ALBUM_VOLUME_NUMBER);
+
+ has_it = gst_tag_list_get_uint (extractor->tagcache,
+ GST_TAG_TRACK_COUNT,
+ &count);
+
+ if (has_it) {
+ tracker_sparql_builder_insert_close (preupdate);
+
+ tracker_sparql_builder_delete_open (preupdate, NULL);
+ tracker_sparql_builder_subject_iri (preupdate, album_uri);
+ tracker_sparql_builder_predicate (preupdate, "nmm:albumTrackCount");
+ tracker_sparql_builder_object_variable (preupdate, "unknown");
+ tracker_sparql_builder_delete_close (preupdate);
+ tracker_sparql_builder_where_open (preupdate);
+ tracker_sparql_builder_subject_iri (preupdate, album_uri);
+ tracker_sparql_builder_predicate (preupdate, "nmm:albumTrackCount");
+ tracker_sparql_builder_object_variable (preupdate, "unknown");
+ tracker_sparql_builder_where_close (preupdate);
+
+ tracker_sparql_builder_insert_open (preupdate, NULL);
+ tracker_sparql_builder_subject_iri (preupdate, album_uri);
+
+ tracker_sparql_builder_predicate (metadata, "nmm:albumTrackCount");
+ tracker_sparql_builder_object_int64 (metadata, count);
+ }
+
+ has_it = gst_tag_list_get_uint (extractor->tagcache,
+ GST_TAG_ALBUM_VOLUME_NUMBER,
+ &count);
+
+ if (has_it) {
+ tracker_sparql_builder_insert_close (preupdate);
+
+ tracker_sparql_builder_delete_open (preupdate, NULL);
+ tracker_sparql_builder_subject_iri (preupdate, album_uri);
+ tracker_sparql_builder_predicate (preupdate, "nmm:setNumber");
+ tracker_sparql_builder_object_variable (preupdate, "unknown");
+ tracker_sparql_builder_delete_close (preupdate);
+ tracker_sparql_builder_where_open (preupdate);
+ tracker_sparql_builder_subject_iri (preupdate, album_uri);
+ tracker_sparql_builder_predicate (preupdate, "nmm:setNumber");
+ tracker_sparql_builder_object_variable (preupdate, "unknown");
+ tracker_sparql_builder_where_close (preupdate);
+
+ tracker_sparql_builder_insert_open (preupdate, NULL);
+ tracker_sparql_builder_subject_iri (preupdate, album_uri);
+
+ tracker_sparql_builder_predicate (metadata, "nmm:setNumber");
+ tracker_sparql_builder_object_int64 (metadata, count);
+ }
+
*album = s;
tracker_sparql_builder_insert_close (preupdate);
diff --git a/src/tracker-extract/tracker-extract-mp3.c b/src/tracker-extract/tracker-extract-mp3.c
index 8d87082..7ca073c 100644
--- a/src/tracker-extract/tracker-extract-mp3.c
+++ b/src/tracker-extract/tracker-extract-mp3.c
@@ -2001,6 +2001,23 @@ extract_mp3 (const gchar *uri,
tracker_sparql_builder_object_unvalidated (preupdate, md.album);
if (md.track_count > 0) {
+
+ tracker_sparql_builder_insert_close (preupdate);
+
+ tracker_sparql_builder_delete_open (preupdate, NULL);
+ tracker_sparql_builder_subject_iri (preupdate, md.album_uri);
+ tracker_sparql_builder_predicate (preupdate, "nmm:albumTrackCount");
+ tracker_sparql_builder_object_variable (preupdate, "unknown");
+ tracker_sparql_builder_delete_close (preupdate);
+ tracker_sparql_builder_where_open (preupdate);
+ tracker_sparql_builder_subject_iri (preupdate, md.album_uri);
+ tracker_sparql_builder_predicate (preupdate, "nmm:albumTrackCount");
+ tracker_sparql_builder_object_variable (preupdate, "unknown");
+ tracker_sparql_builder_where_close (preupdate);
+
+ tracker_sparql_builder_insert_open (preupdate, NULL);
+ tracker_sparql_builder_subject_iri (preupdate, md.album_uri);
+
tracker_sparql_builder_predicate (preupdate, "nmm:albumTrackCount");
tracker_sparql_builder_object_int64 (preupdate, md.track_count);
}
diff --git a/src/tracker-extract/tracker-extract-vorbis.c b/src/tracker-extract/tracker-extract-vorbis.c
index 0eb44da..1e70cff 100644
--- a/src/tracker-extract/tracker-extract-vorbis.c
+++ b/src/tracker-extract/tracker-extract-vorbis.c
@@ -178,6 +178,23 @@ extract_vorbis (const char *uri,
tracker_sparql_builder_insert_close (preupdate);
if (vorbis_data.trackcount) {
+
+ tracker_sparql_builder_insert_close (preupdate);
+
+ tracker_sparql_builder_delete_open (preupdate, NULL);
+ tracker_sparql_builder_subject_iri (preupdate, album_uri);
+ tracker_sparql_builder_predicate (preupdate, "nmm:albumTrackCount");
+ tracker_sparql_builder_object_variable (preupdate, "unknown");
+ tracker_sparql_builder_delete_close (preupdate);
+ tracker_sparql_builder_where_open (preupdate);
+ tracker_sparql_builder_subject_iri (preupdate, album_uri);
+ tracker_sparql_builder_predicate (preupdate, "nmm:albumTrackCount");
+ tracker_sparql_builder_object_variable (preupdate, "unknown");
+ tracker_sparql_builder_where_close (preupdate);
+
+ tracker_sparql_builder_insert_open (preupdate, preupdate);
+ tracker_sparql_builder_subject_iri (preupdate, md.album_uri);
+
tracker_sparql_builder_predicate (metadata, "nmm:albumTrackCount");
tracker_sparql_builder_object_unvalidated (metadata, vorbis_data.trackcount);
g_free (vorbis_data.trackcount);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]