Added proxy support
authorYves <ymarcoz@n900-sdk.(none)>
Wed, 17 Mar 2010 05:05:26 +0000 (22:05 -0700)
committerYves <ymarcoz@n900-sdk.(none)>
Wed, 17 Mar 2010 05:05:26 +0000 (22:05 -0700)
debian/changelog
src/FeedingIt.py
src/config.py
src/rss.py

index b95c796..ac13232 100644 (file)
@@ -1,3 +1,11 @@
+feedingit (0.5.2-2) unstable; urgency=low
+
+  * Fixed horizontal scrolling
+  * Use theme color for unread items
+  * Added proxy support for feed download
+  
+ -- Yves <yves@marcoz.org>  Wed, 10 Mar 2010 19:05:19 -0800
+
 feedingit (0.5.2-0) unstable; urgency=low
 
   * Fixed AddFeed from dbus (feedhandler)
index 56e9d17..727fc2b 100644 (file)
@@ -162,7 +162,11 @@ class Download(threading.Thread):
         self.config = config
         
     def run (self):
-        self.listing.updateFeed(self.key, self.config.getExpiry())
+        (use_proxy, proxy) = self.config.getProxy()
+        if use_proxy:
+            self.listing.updateFeed(self.key, self.config.getExpiry(), proxy=proxy)
+        else:
+            self.listing.updateFeed(self.key, self.config.getExpiry())
 
         
 class DownloadBar(gtk.ProgressBar):
@@ -435,7 +439,7 @@ class DisplayArticle(hildon.StackableWindow):
         self.destroyId = self.connect("destroy", self.destroyWindow)
         
         self.view.connect("button_press_event", self.button_pressed)
-        self.view.connect("button_release_event", self.button_released)
+        self.gestureId = self.view.connect("button_release_event", self.button_released)
         #self.timeout_handler_id = gobject.timeout_add(300, self.reloadArticle)
 
     def button_pressed(self, window, event):
@@ -560,7 +564,9 @@ class DisplayFeed(hildon.StackableWindow):
             else:
                 #print self.listing.getFont() + " bold"
                 label.modify_font(pango.FontDescription(self.config.getUnreadFont()))
-                label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("SkyBlue"))
+                #label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse("SkyBlue"))
+                fg_color = fg_button.child.get_children()[0].get_children()[0].get_children()[1].get_style().fg[gtk.STATE_NORMAL]
+                label.modify_fg(gtk.STATE_NORMAL, fg_color)
                 #label.modify_font(pango.FontDescription("sans bold 23"))
                 #"sans bold 16"
             label.set_line_wrap(True)
@@ -815,6 +821,9 @@ class FeedingIt:
             button.connect("clicked", self.buttonFeedClicked, self, self.window, key)
             self.vboxListing.pack_start(button, expand=False)
             self.buttons[key] = button
+            global fg_button
+            fg_button = button
+            #fg_color = button.child.get_children()[0].get_children()[0].get_children()[1].get_style().fg[gtk.STATE_NORMAL]
             
         #if type(self.downloadDialog).__name__=="DownloadBar":
         #    self.vboxListing.pack_start(self.downloadDialog)
index fbfb365..cb7aaa0 100644 (file)
@@ -27,6 +27,8 @@ import gtk
 import hildon
 import ConfigParser
 import gobject
+import gconf
+import urllib2
 
 section = "FeedingIt"
 ranges = { "updateInterval":[0.5, 1, 2, 4, 12, 24], "expiry":[24, 48, 72], "fontSize":range(12,24), "orientation":["Automatic", "Landscape", "Portrait"], "artFontSize":[10, 12, 14, 16, 18, 20]}
@@ -179,4 +181,11 @@ class Config():
         if self.has_webkit:
             return self.config["webkit"]
         else:
-            return False
\ No newline at end of file
+            return False
+    def getProxy(self):
+        if gconf.client_get_default().get_bool('/system/http_proxy/use_http_proxy'):
+            port = gconf.client_get_default().get_int('/system/http_proxy/port')
+            http = gconf.client_get_default().get_string('/system/http_proxy/host')
+            proxy = proxy = urllib2.ProxyHandler( {"http":"http://%s:%s/"% (http,port)} )
+            return (True, proxy)
+        return (False, None)
\ No newline at end of file
index 4dc3b78..8ac1e9a 100644 (file)
@@ -145,9 +145,12 @@ class Feed:
             pass
         return self.countUnread
 
-    def updateFeed(self, configdir, expiryTime=24):
+    def updateFeed(self, configdir, expiryTime=24, proxy=None):
         # Expiry time is in hours
-        tmp=feedparser.parse(self.url)
+        if proxy == None:
+            tmp=feedparser.parse(self.url)
+        else:
+            tmp=feedparser.parse(self.url, handlers = [proxy])
         # Check if the parse was succesful (number of entries > 0, else do nothing)
         if len(tmp["entries"])>0:
            #reversedEntries = self.getEntries()
@@ -337,7 +340,7 @@ class ArchivedArticles(Feed):
         self.saveFeed(configdir)
         self.saveUnread(configdir)
         
-    def updateFeed(self, configdir, expiryTime=24):
+    def updateFeed(self, configdir, expiryTime=24, proxy=None):
         for id in self.getIds():
             entry = self.entries[id]
             if not entry["downloaded"]:
@@ -473,16 +476,16 @@ class Listing:
                     feed = Feed(getId(title), title, url, self.imageHandler)
             return feed
         
-    def updateFeeds(self, expiryTime=24):
+    def updateFeeds(self, expiryTime=24, proxy=None):
         for key in self.getListOfFeeds():
             feed = self.loadFeed(key)
-            feed.updateFeed(self.configdir, expiryTime)
+            feed.updateFeed(self.configdir, expiryTime, proxy)
             self.listOfFeeds[key]["unread"] = feed.getNumberOfUnreadItems()
             self.listOfFeeds[key]["updateTime"] = feed.getUpdateTime()
             
-    def updateFeed(self, key, expiryTime=24):
+    def updateFeed(self, key, expiryTime=24, proxy=None):
         feed = self.getFeed(key)
-        feed.updateFeed(self.configdir, expiryTime)
+        feed.updateFeed(self.configdir, expiryTime, proxy)
         self.listOfFeeds[key]["unread"] = feed.getNumberOfUnreadItems()
         self.listOfFeeds[key]["updateTime"] = feed.getUpdateTime()