[tracker/rss-enclosures] Added nfo:encodedBy property.
- From: Roberto Guido <rguido src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/rss-enclosures] Added nfo:encodedBy property.
- Date: Wed, 24 Nov 2010 01:10:11 +0000 (UTC)
commit c21d46645d3c754408ec13fc001c669874cd9f91
Author: Mikael Ottela <mikael ottela ixonos com>
Date: Tue Aug 3 20:39:15 2010 +0300
Added nfo:encodedBy property.
Fixes NB#177663, Tracker does not harvest ID3v2 tags
data/ontologies/33-nfo.ontology | 8 ++++++++
src/tracker-extract/tracker-extract-mp3.c | 25 +++++++++++++++++++++++++
2 files changed, 33 insertions(+), 0 deletions(-)
---
diff --git a/data/ontologies/33-nfo.ontology b/data/ontologies/33-nfo.ontology
index 609ff69..d12a0cc 100644
--- a/data/ontologies/33-nfo.ontology
+++ b/data/ontologies/33-nfo.ontology
@@ -639,6 +639,14 @@ nfo:codec a rdf:Property ;
rdfs:domain nfo:Media ;
rdfs:range xsd:string .
+# FIXME Added property
+nfo:encodedBy a rdf:Property ;
+ rdfs:label "encodedBy" ;
+ rdfs:comment "The contains the name of the person or organisation that encoded the media" ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain nfo:Media ;
+ rdfs:range xsd:string .
+
nfo:fontFamily a rdf:Property ;
rdfs:label "fontFamily" ;
rdfs:comment "The name of the font family." ;
diff --git a/src/tracker-extract/tracker-extract-mp3.c b/src/tracker-extract/tracker-extract-mp3.c
index d1ab435..4de6828 100644
--- a/src/tracker-extract/tracker-extract-mp3.c
+++ b/src/tracker-extract/tracker-extract-mp3.c
@@ -87,6 +87,7 @@ typedef struct {
gchar *comment;
gchar *content_type;
gchar *copyright;
+ gchar *encoded_by;
guint32 length;
gchar *performer1;
gchar *performer2;
@@ -109,6 +110,7 @@ typedef enum {
ID3V2_TAL,
ID3V2_TCO,
ID3V2_TCR,
+ ID3V2_TEN,
ID3V2_TLE,
ID3V2_TPB,
ID3V2_TP1,
@@ -129,6 +131,7 @@ typedef enum {
ID3V24_TCOP,
ID3V24_TDRC,
ID3V24_TDRL,
+ ID3V24_TENC,
ID3V24_TEXT,
ID3V24_TIT1,
ID3V24_TIT2,
@@ -159,6 +162,7 @@ typedef struct {
const gchar *genre;
const gchar *text;
const gchar *recording_time;
+ const gchar *encoded_by;
const gchar *copyright;
const gchar *publisher;
const gchar *comment;
@@ -208,6 +212,7 @@ static const struct {
{ "TCOP", ID3V24_TCOP },
{ "TDRC", ID3V24_TDRC },
{ "TDRL", ID3V24_TDRL },
+ { "TENC", ID3V24_TENC },
{ "TOLY", ID3V24_TOLY },
{ "TEXT", ID3V24_TEXT },
{ "TIT1", ID3V24_TIT1 },
@@ -231,6 +236,7 @@ static const struct {
{ "TAL", ID3V2_TAL },
{ "TCO", ID3V2_TCO },
{ "TCR", ID3V2_TCR },
+ { "TEN", ID3V2_TEN },
{ "TLE", ID3V2_TLE },
{ "TP1", ID3V2_TP1 },
{ "TP2", ID3V2_TP2 },
@@ -463,6 +469,7 @@ id3v2tag_free (id3v2tag *tags)
g_free (tags->publisher);
g_free (tags->recording_time);
g_free (tags->release_time);
+ g_free (tags->encoded_by);
g_free (tags->text);
g_free (tags->toly);
g_free (tags->title1);
@@ -1283,6 +1290,9 @@ get_id3v24_tags (const gchar *data,
tag->release_time = tracker_date_guess (word);
g_free (word);
break;
+ case ID3V24_TENC:
+ tag->encoded_by = word;
+ break;
case ID3V24_TEXT:
tag->text = word;
break;
@@ -1488,6 +1498,9 @@ get_id3v23_tags (const gchar *data,
case ID3V24_TCOP:
tag->copyright = word;
break;
+ case ID3V24_TENC:
+ tag->encoded_by = word;
+ break;
case ID3V24_TEXT:
tag->text = word;
break;
@@ -1640,6 +1653,9 @@ get_id3v20_tags (const gchar *data,
case ID3V2_TCR:
tag->copyright = word;
break;
+ case ID3V2_TEN:
+ tag->encoded_by = word;
+ break;
case ID3V2_TLE:
tag->length = atoi (word) / 1000;
g_free (word);
@@ -2039,6 +2055,10 @@ extract_mp3 (const gchar *uri,
md.id3v22.comment,
md.id3v1.comment);
+ md.encoded_by = tracker_coalesce_strip (3, md.id3v24.encoded_by,
+ md.id3v23.encoded_by,
+ md.id3v22.encoded_by);
+
if (md.id3v24.track_number != 0) {
md.track_number = md.id3v24.track_number;
} else if (md.id3v23.track_number != 0) {
@@ -2196,6 +2216,11 @@ extract_mp3 (const gchar *uri,
tracker_sparql_builder_object_blank_close (metadata);
}
+ if (md.encoded_by) {
+ tracker_sparql_builder_predicate (metadata, "nfo:encodedBy");
+ tracker_sparql_builder_object_unvalidated (metadata, md.encoded_by);
+ }
+
if (md.track_number > 0) {
tracker_sparql_builder_predicate (metadata, "nmm:trackNumber");
tracker_sparql_builder_object_int64 (metadata, md.track_number);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]