Improve message about credential expiry
[hermes] / package / src / org / maemo / hermes / engine / facebook / service.py
index ff46c26..0e5c1c9 100644 (file)
@@ -78,23 +78,28 @@ class Service(org.maemo.hermes.engine.service.Service):
             if key in data and data[key]:
                 callback(data[key])
         
-        friends_data = self.fb.get_friends()
-        for data in friends_data:
-            friend = Friend(data['name'])
-        
-            if 'link' not in data:
-                data['link'] = "http://www.facebook.com/profile.php?id=" + str(data['id'])
-        
-            if_defined(data, 'website', friend.add_url)
-            if_defined(data, 'link', friend.add_url)
-            if_defined(data, 'birthday', friend.set_birthday_date)
-
-            if_defined(data, 'picture', friend.set_photo_url)
+        try:
+            friends_data = self.fb.get_friends()
+            for data in friends_data:
+                friend = Friend(data['name'])
             
-            url = data['link']
-            friend.add_url(url)
-            self._register_friend(friend)
-
+                if 'link' not in data:
+                    data['link'] = "http://www.facebook.com/profile.php?id=" + str(data['id'])
+            
+                if_defined(data, 'website', friend.add_url)
+                if_defined(data, 'link', friend.add_url)
+                if_defined(data, 'birthday', friend.set_birthday_date)
+    
+                if_defined(data, 'picture', friend.set_photo_url)
+                
+                url = data['link']
+                friend.add_url(url)
+                self._register_friend(friend)
+        except Exception, e:
+            if e.message == 'Unauthorised':
+                raise org.maemo.hermes.engine.service.CredentialsExpiredException('Facebook')
+            else:
+                raise e
 
     # -----------------------------------------------------------------------
     def process_contact(self, contact):