Re-implement the GetFriends() of python-twitter with paging logic so that all friends...
[hermes] / package / src / org / maemo / hermes / engine / twitter / service.py
index 7e01452..1343b7a 100644 (file)
@@ -1,6 +1,7 @@
 from org.maemo.hermes.engine.names import canonical
 from org.maemo.hermes.engine.friend import Friend
 import org.maemo.hermes.engine.service
+import urllib2
 
 class Service(org.maemo.hermes.engine.service.Service):
     """Twitter backend for Hermes.
@@ -78,7 +79,15 @@ class Service(org.maemo.hermes.engine.service.Service):
 
     # -----------------------------------------------------------------------
     def _get_tweeters(self):
-        return self._twitter.GetFriends()
+        try:
+            return self._twitter.get_friends()
+        except urllib2.HTTPError, e:
+            if e.code >= 500 and e.code <= 599:
+                print "Twitter down (fail whale): " + e.message
+                return []
+            else:
+                raise e
+        
     
     
     # -----------------------------------------------------------------------
@@ -109,5 +118,6 @@ class Service(org.maemo.hermes.engine.service.Service):
     def _register_match(self, contact, friend):
         friend.set_contact(contact)
         self._friends_by_contact[contact] = friend
-        self._friends.remove(friend)
+        if friend in self._friends:
+            self._friends.remove(friend)