Merge branch 'master' of https://git.maemo.org/projects/feedingit
[feedingit] / src / opml.py
index 8593479..914fd38 100644 (file)
@@ -31,6 +31,8 @@ import gobject
 import time
 from os.path import isfile, dirname
 import gobject
+import logging
+logger = logging.getLogger(__name__)
 
 class ExportOpmlData():
     def __init__(self, parent, listing):
@@ -50,9 +52,9 @@ class ExportOpmlData():
         response = dialog.run()
         dialog.hide()
         if response == gtk.RESPONSE_OK:
-            filename = dialog.get_filename()
-            print filename
-            try:
+                filename = dialog.get_filename()
+                logger.debug("ExportOpmlData: %s" % filename)
+            #try:
 
                 cont = True
                 if isfile(filename):
@@ -71,13 +73,13 @@ class ExportOpmlData():
                     file.write(self.getOpmlText(listing))
                     file.close()
                     note = "Feeds exported to %s" %filename
-            except:
+            #except:
                 note = "Failed to export feeds"
             
-            dialog.destroy()
-            dialog = hildon.Note ("information", parent, note , gtk.STOCK_DIALOG_INFO )
-            dialog.run()
-            dialog.destroy()
+            #dialog.destroy()
+            #dialog = hildon.Note ("information", parent, note , gtk.STOCK_DIALOG_INFO )
+            #dialog.run()
+            #dialog.destroy()
         elif response == gtk.RESPONSE_CANCEL:
             dialog.destroy()  
 
@@ -93,9 +95,15 @@ class ExportOpmlData():
         for key in listing.getListOfFeeds():
             title = listing.getFeedTitle(key)
             url = listing.getFeedUrl(key)
-            opml_text += """\n\t\t<outline  type="rss" text="%s" title="%s" xmlUrl="%s"/>""" % (title, title, url)
+            if not title == "Archived Articles": 
+                opml_text += """\n\t\t<outline  type="rss" text="%s" title="%s" xmlUrl="%s"/>""" % (self.sanitize(title), self.sanitize(title), self.sanitize(url))
         opml_text += """\n</body>\n</opml>\n"""
         return opml_text
+    
+    def sanitize(self, text):
+       from cgi import escape
+        return escape(text).encode('ascii', 'xmlcharrefreplace')
+        
         
 
 class GetOpmlData():
@@ -126,17 +134,17 @@ class GetOpmlData():
         return []
 
     def downloadFile(self):
-        dlg = gtk.Dialog("OPML Import", self.parent, gtk.DIALOG_DESTROY_WITH_PARENT,
-                     (gtk.STOCK_OK, gtk.RESPONSE_OK,
+        dlg = gtk.Dialog("Import OPML from web", self.parent, gtk.DIALOG_DESTROY_WITH_PARENT,
+                     ('Import', gtk.RESPONSE_OK,
                       gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
-        lbl = gtk.Label("Enter the URL of the OPML file:")
-        lbl.show()
-        dlg.vbox.pack_start(lbl)
-        entry = gtk.Entry()
+        hb = gtk.HBox(False, 5)
+        hb.pack_start(gtk.Label('URL:'), expand=False)
+        entry = hildon.Entry(0)
         entry.set_text("http://")
-        entry.select_region(0,-1)
-        entry.show()
-        dlg.vbox.pack_start(entry, False)
+        entry.select_region(-1, -1)
+        hb.pack_start(entry, expand=True)
+        hb.show_all()
+        dlg.vbox.pack_start(hb, False)
 
         resp = dlg.run()
         url = entry.get_text()
@@ -267,7 +275,7 @@ class OpmlDialog(gtk.Dialog):
 
 def showOpmlData(widget, parent, button):
     dialog = GetOpmlData(parent)
-    print dialog.getData()
+    logger.debug("showOpmlData: %s" % dialog.getData())
     #dialog.destroy()
 
 if __name__ == "__main__":