[totem-pl-parser] lib: Add support for Amazon XSPF extensions
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [totem-pl-parser] lib: Add support for Amazon XSPF extensions
- Date: Wed, 25 Jan 2012 19:37:47 +0000 (UTC)
commit 801892a5680b8c6ed94ada9c0bde85d328d8b484
Author: Bastien Nocera <hadess hadess net>
Date: Wed Jan 25 19:36:28 2012 +0000
lib: Add support for Amazon XSPF extensions
Export the track ASIN, genre and filesize from a decrypted AMZ file.
https://bugzilla.gnome.org/show_bug.cgi?id=668686
plparse/totem-pl-parser-xspf.c | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 deletions(-)
---
diff --git a/plparse/totem-pl-parser-xspf.c b/plparse/totem-pl-parser-xspf.c
index e4cf482..23a60c2 100644
--- a/plparse/totem-pl-parser-xspf.c
+++ b/plparse/totem-pl-parser-xspf.c
@@ -206,7 +206,7 @@ parse_xspf_track (TotemPlParser *parser, GFile *base_file, xmlDocPtr doc,
{
xmlNodePtr node;
xmlChar *title, *uri, *image_uri, *artist, *album, *duration, *moreinfo;
- xmlChar *download_uri, *id, *genre;
+ xmlChar *download_uri, *id, *genre, *filesize;
GFile *resolved;
char *resolved_uri;
TotemPlParserResult retval = TOTEM_PL_PARSER_RESULT_ERROR;
@@ -221,6 +221,7 @@ parse_xspf_track (TotemPlParser *parser, GFile *base_file, xmlDocPtr doc,
download_uri = NULL;
id = NULL;
genre = NULL;
+ filesize = NULL;
for (node = parent->children; node != NULL; node = node->next)
{
@@ -280,6 +281,19 @@ parse_xspf_track (TotemPlParser *parser, GFile *base_file, xmlDocPtr doc,
}
}
}
+ /* Parse Amazon AMZ extensions */
+ } else if (g_ascii_strcasecmp ((char *)node->name, "meta") == 0) {
+ xmlChar *rel;
+
+ rel = xmlGetProp (node, (const xmlChar *) "rel");
+ if (rel != NULL) {
+ if (g_ascii_strcasecmp ((char *) rel, "http://www.amazon.com/dmusic/primaryGenre") == 0)
+ genre = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
+ else if (g_ascii_strcasecmp ((char *) rel, "http://www.amazon.com/dmusic/ASIN") == 0)
+ id = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
+ else if (g_ascii_strcasecmp ((char *) rel, "http://www.amazon.com/dmusic/fileSize") == 0)
+ filesize = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
+ }
} else if (g_ascii_strcasecmp ((char *)node->name, "album") == 0)
album = xmlNodeListGetString (doc, node->xmlChildrenNode, 1);
else if (g_ascii_strcasecmp ((char *)node->name, "trackauth") == 0)
@@ -306,6 +320,7 @@ parse_xspf_track (TotemPlParser *parser, GFile *base_file, xmlDocPtr doc,
TOTEM_PL_PARSER_FIELD_DOWNLOAD_URI, download_uri,
TOTEM_PL_PARSER_FIELD_ID, id,
TOTEM_PL_PARSER_FIELD_GENRE, genre,
+ TOTEM_PL_PARSER_FIELD_FILESIZE, filesize,
NULL);
g_object_unref (resolved);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]