Dependency inject service ID, so that it can be stamped on friends and
[hermes] / package / src / org / maemo / hermes / engine / linkedin / service.py
1 import org.maemo.hermes.engine.facebook.service
2
3 from org.maemo.hermes.engine.names import canonical
4
5
6 class Service(org.maemo.hermes.engine.facebook.service.Service):
7     """LinkedIn backend for Hermes.
8                 
9        Copyright (c) Fredrik Wendt <fredrik@wendt.se> 2010.
10        Released under the Artistic Licence."""
11        
12        
13     # -----------------------------------------------------------------------
14     def __init__(self, service_id, linkedInApi):
15         """Initialize the LinkedIn service, finding LinkedIn API keys in gconf and
16            having a gui_callback available."""
17         
18         org.maemo.hermes.engine.facebook.service.Service.__init__(self, service_id, None)
19         self.linkedInApi = linkedInApi
20
21     
22     # -----------------------------------------------------------------------
23     def process_friends(self):
24         friends = self.linkedInApi.get_friends()
25         for friend in friends:
26             for url in friend.get_urls():
27                 self._friends_by_url[url] = friend
28             if self._allow_friend_to_match_by_name(friend):
29                 key = canonical(friend.get_name())
30                 self._friends_by_name[key] = friend
31
32
33     # -----------------------------------------------------------------------
34     def _allow_friend_to_match_by_name(self, friend):
35         for url in friend.get_urls():
36             if url in self._known_urls:
37                 return False
38         return True
39     
40     
41