Enlightenment CVS committal

Author  : dj2
Project : misc
Module  : eke

Dir     : misc/eke/src


Modified Files:
        eke_gui_edje_item.c eke_parse.c 


Log Message:
- don't need to resize the etox on resize
- start atom support. can parse atmos' feed...

===================================================================
RCS file: /cvsroot/enlightenment/misc/eke/src/eke_gui_edje_item.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- eke_gui_edje_item.c 27 Dec 2004 22:45:01 -0000      1.1
+++ eke_gui_edje_item.c 28 Dec 2004 03:39:36 -0000      1.2
@@ -273,16 +273,10 @@
 _eke_gui_edje_item_object_resize(Evas_Object *o, Evas_Coord w, Evas_Coord h)
 {
   Eke_Gui_Edje_Item *data;
-  Evas_Object *obj = NULL;
 
   if((data = evas_object_smart_data_get(o)))
   {
-      printf("resizing to %d,%d\n", w, h);
     evas_object_resize(data->obj, w, h);
-    if((obj = edje_object_part_swallow_get(data->obj, "body"))) {
-      printf("resizing etox to %d,%d\n", w, h);
-        evas_object_resize(obj, w, h);
-    }
   }
 }
 
===================================================================
RCS file: /cvsroot/enlightenment/misc/eke/src/eke_parse.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- eke_parse.c 27 Dec 2004 22:45:01 -0000      1.1
+++ eke_parse.c 28 Dec 2004 03:39:36 -0000      1.2
@@ -18,6 +18,10 @@
 static void eke_parse_rss_xml_node(xmlDoc *doc, Eke_Feed *feed, xmlNode *node);
 static void eke_parse_item_free(void *val);
 
+static void eke_parse_atom_feed(xmlDoc *doc, Eke_Feed *feed, xmlNode *node);
+static void eke_parse_atom_xml_node(xmlDoc *doc, Eke_Feed *feed, xmlNode 
*node);
+static void eke_parse_atom_item_parse(Eke_Feed *feed, xmlDoc *doc, xmlNode 
*node);
+
 static void strtrim(char *str);
 
 void
@@ -78,6 +82,10 @@
     node = xmlDocGetRootElement(doc);
     if (!strcasecmp(node->name, "rss")) 
         eke_parse_rss_feed(doc, feed, node);
+
+    else if (!strcasecmp(node->name, "feed"))
+        eke_parse_atom_feed(doc, feed, node);
+
     else
         printf("Got a feed of type %s\n", node->name);
 }
@@ -156,8 +164,7 @@
             IF_FREE(ptr);
 
         } else if (!strcasecmp(node->name, "description")) {
-            tmp = node->xmlChildrenNode;
-            ptr = xmlNodeListGetString(doc, tmp, 1);
+            ptr = xmlNodeGetContent(node);
             strtrim(ptr);
 
             eke_feed_item_description_set(item, ptr);
@@ -203,5 +210,85 @@
     }
 }
 
+static void
+eke_parse_atom_feed(xmlDoc *doc, Eke_Feed *feed, xmlNode *node)
+{
+    char *c;
+
+    c = xmlGetProp(node, "version");
+    feed->rss_version = atof(c);
+    FREE(c);
+
+    eke_parse_atom_xml_node(doc, feed, node->xmlChildrenNode);
+}
+
+static void
+eke_parse_atom_xml_node(xmlDoc *doc, Eke_Feed *feed, xmlNode *node)
+{
+    xmlNode *tmp;
+
+    while (node) {
+        if (!strcasecmp(node->name, "title")) {
+            tmp = node->xmlChildrenNode;
+            feed->title = xmlNodeListGetString(doc, tmp, 1);
+            strtrim(feed->title);
+
+        } else if (!strcasecmp(node->name, "link")) {
+            feed->link = xmlGetProp(node, "href");
+
+        } else if (!strcasecmp(node->name, "entry")) {
+            eke_parse_atom_item_parse(feed, doc, node->xmlChildrenNode);
+        }
+
+        node = node->next;
+    }
+    feed->data.type = EKE_FEED_DATA_RESPONSE_CHANGED;
+}
+
+static void
+eke_parse_atom_item_parse(Eke_Feed *feed, xmlDoc *doc, xmlNode *node)
+{
+    Eke_Feed_Item *item;
+    xmlNode *tmp;
+    char *ptr;
+
+    item = eke_feed_item_new();
+    while (node) {
+        if (!strcasecmp(node->name, "title")) {
+            tmp = node->xmlChildrenNode;
+            ptr = xmlNodeListGetString(doc, tmp, 1);
+            strtrim(ptr);
+
+            eke_feed_item_title_set(item, ptr);
+            IF_FREE(ptr);
+
+        } else if (!strcasecmp(node->name, "link")) {
+            ptr = xmlGetProp(node, "href");
+            strtrim(ptr);
+
+            eke_feed_item_link_set(item, ptr);
+            IF_FREE(ptr);
+
+        } else if (!strcasecmp(node->name, "content")) {
+            ptr = xmlNodeGetContent(node);
+            strtrim(ptr);
+
+            eke_feed_item_description_set(item, ptr);
+            IF_FREE(ptr);
+
+        } else if (!strcasecmp(node->name, "modified")) {
+            tmp = node->xmlChildrenNode;
+            ptr = xmlNodeListGetString(doc, tmp, 1);
+            strtrim(ptr);
+
+            eke_feed_item_date_set(item, ptr);
+            IF_FREE(ptr);
+        }
+        node = node->next;
+    }
+    ecore_list_append(feed->items, item);
+}
+
+
 
 




-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to