evolution-rss r424 - in trunk: . src
- From: lucilanga svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-rss r424 - in trunk: . src
- Date: Mon, 12 Jan 2009 09:13:25 +0000 (UTC)
Author: lucilanga
Date: Mon Jan 12 09:13:25 2009
New Revision: 424
URL: http://svn.gnome.org/viewvc/evolution-rss?rev=424&view=rev
Log:
2009-01-12 Lucian Langa <lucilanga gnome org>
* src/parser.c- layer_find_tag_prop
new function for parsing media tag properties
Modified:
trunk/ChangeLog
trunk/TODO
trunk/src/parser.c
trunk/src/rss.c
Modified: trunk/TODO
==============================================================================
--- trunk/TODO (original)
+++ trunk/TODO Mon Jan 12 09:13:25 2009
@@ -45,3 +45,5 @@
name=<value optimized out>, error=<value optimized out>,
emsg=<value optimized out>) at rss.c:273
* implement right-click in browser
+ * category posted under
+ * coments updatable
Modified: trunk/src/parser.c
==============================================================================
--- trunk/src/parser.c (original)
+++ trunk/src/parser.c Mon Jan 12 09:13:25 2009
@@ -417,7 +417,6 @@
g_print("syndication\n");
}
-
gchar *standard_rss_modules[3][3] = {
{"content", "content", (gchar *)content_rss},
{"dublin core", "dc", (gchar *)dublin_core_rss},
@@ -479,6 +478,56 @@
return fail;
}
+gchar*
+media_rss(xmlNode *node, gchar *search, gchar *fail)
+{
+ gchar *content;
+ g_print("media_rss()\n");
+
+ content = xmlGetProp(node, search);
+ if (content)
+ return content;
+ else
+ return fail;
+}
+
+gchar *property_rss_modules[1][3] = {
+ {"media", "media", (gchar *)media_rss}};
+
+static char *
+layer_find_tag_prop (xmlNodePtr node,
+ char *match,
+ char *search,
+ char *fail)
+{
+ gchar *content;
+ guint len = 0;
+ int i;
+ char* (*func)();
+
+ while (node!=NULL) {
+#ifdef RDF_DEBUG
+ xmlDebugDumpNode (stdout, node, 32);
+ printf("%s.\n", node->name);
+#endif
+ if (node->ns && node->ns->prefix)
+ {
+ for (i=0; i < 1; i++)
+ {
+ if (!strcasecmp (node->ns->prefix, property_rss_modules[i][1]))
+ {
+ func = (gpointer)property_rss_modules[i][2];
+ if (strcasecmp (node->ns->prefix, match)==0)
+ {
+ g_print("URL:%s\n", func(node, search, fail));
+ }
+ }
+ }
+ }
+ node = node->next;
+ }
+}
+
static gchar *
layer_find_innerhtml (xmlNodePtr node,
char *match, char *submatch,
@@ -863,11 +912,19 @@
}
}
- encl = layer_find_innerelement(el->children, "enclosure", "url", // RSS 2.0 Enclosure
- layer_find_innerelement(el->children, "link", "enclosure", NULL)); // ATOM Enclosure
+ //<enclosure url=>
+ //handle multiple enclosures
+// encl = layer_find_innerelement(el->children, "enclosure", "url", // RSS 2.0 Enclosure
+// layer_find_innerelement(el->children, "link", "enclosure", NULL)); // ATOM Enclosure
+ encl = layer_find_tag_prop(el->children, "media", "url", // RSS 2.0 Enclosure
+ NULL); // ATOM Enclosure
+// g_print("encl:%s\n", encl);
+// if (!strcmp(encl, "99"))
+ encl = NULL;
//we have to free this somehow
+ //<link></link>
char *link = g_strdup(layer_find (el->children, "link", NULL)); //RSS,
- if (!link)
+ if (!link) // <link href=>
link = layer_find_innerelement(el->children, "link", "href", g_strdup(_("No Information"))); //ATOM
char *id = layer_find (el->children, "id", //ATOM
Modified: trunk/src/rss.c
==============================================================================
--- trunk/src/rss.c (original)
+++ trunk/src/rss.c Mon Jan 12 09:13:25 2009
@@ -1738,6 +1738,7 @@
content_colour & 0xEDECEB & 0xffffff,
website, subject);
camel_stream_printf (fstream, "<tr><td><font colour=#%06x>%s</font></td></tr></table></div>", text_colour & 0xffffff, buff);
+ camel_stream_printf (fstream, "mew<br>");
}
//this is required for proper charset rendering when html
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]