friends = []
if self._create_birthday_only:
for friend in self._friends_without_contact:
- if friend.has_birthday_date():
- friends.append(friend)
+ friends.append(friend)
return friends
return "Friend %s" % self.get_name()
# public accessors -----------------
-
+
+ def is_interesting(self):
+ """A friend is interesting if there's more info than URLs
+ and photos."""
+ return self._attributes.has_key('bday') or self._multi_attributes.has_key('phone')
+
def add_url(self, url):
if url:
if not isinstance(url, basestring):
tick_increment = len(contacts) / (len(to_create) or 1)
print tick_increment, to_create
for friend in to_create:
- friend.set_source(service.get_id())
self._progress("Creating contacts...", current_tick, total_ticks)
current_tick += tick_increment
- self.create_contact_from_friend(friend)
+ if friend.is_interesting():
+ friend.set_source(service.get_id())
+ self.create_contact_from_friend(friend)
# finalisation
for service in self._services:
return (self.REQUEST_TOKEN_URL, self.ACCESS_TOKEN_URL, self.AUTHORIZE_URL)
+
+ # -----------------------------------------------------------------------
+ def additional_prefs(self, dialog):
+ self._checkbox = hildon.CheckButton(gtk.HILDON_SIZE_FINGER_HEIGHT)
+ self._checkbox.set_label(_('Import new contacts'))
+ self._checkbox.set_active(self._gc.get_bool('/apps/maemo/hermes/linkedin_create_new'))
+
+ dialog.vbox.add(self._checkbox)
+ dialog.vbox.add(gtk.Label(""))
+
+
+ # -----------------------------------------------------------------------
+ def handle_prefs_response(self, result):
+ self._gc.set_bool('/apps/maemo/hermes/linkedin_create_new', self._checkbox.get_active())
+ self._checkbox = None
+
# -----------------------------------------------------------------------
def service(self, gui_callback):
"""Return the service backend."""
- return org.maemo.hermes.engine.linkedin.service.Service(self.get_id(), self._api)
+ return org.maemo.hermes.engine.linkedin.service.Service(self.get_id(), self._api, self._gc.get_bool('/apps/maemo/hermes/linkedin_create_new'))
# -----------------------------------------------------------------------
# -----------------------------------------------------------------------
- def __init__(self, service_id, linkedInApi):
- org.maemo.hermes.engine.facebook.service.Service.__init__(self, service_id, None)
+ def __init__(self, service_id, linkedInApi, create_new = False):
+ org.maemo.hermes.engine.facebook.service.Service.__init__(self, service_id, None, create_new)
self.linkedInApi = linkedInApi
friends = self.linkedInApi.get_friends()
for friend in friends:
self._register_friend(friend)
-
+
# -----------------------------------------------------------------------
def is_profile_url(self, url):
result = dialog.run()
dialog.hide()
- self.handle_prefs_response(result)
if result == gtk.RESPONSE_CANCEL or result == gtk.RESPONSE_DELETE_EVENT:
return None
+ self.handle_prefs_response(result)
return result == gtk.RESPONSE_YES
try:
return oauth.OAuthToken.from_string(token_str)
except KeyError, e:
- print token_str
- import traceback
- traceback.print_exc()
+ print "Invalid: ", token_str
return None
from org.maemo.hermes.gui.accountsdialogue import AccountsDialogue
from org.bleb.wimpworks import HildonMainScreenLayout
from org.maemo.hermes.engine.hermes import Hermes
+from org.maemo.hermes.engine.service import CredentialsExpiredException
class HermesGUI(WimpWorks):
"""Provides the GUI for Hermes, allowing the syncing of Facebook and
except urllib2.URLError, e:
traceback.print_exc()
gobject.idle_add(self.report_error, _('Network connection error. Check connectivity.'))
+
+ except CredentialsExpiredException, e:
+ gobject.idle_add(self.report_error, _('Credentials expired. Please reauthorise: ') + e.message)
except Exception, e:
traceback.print_exc()
friend.update_contact(contact, False)
assert 'http://chitter.com/bob.smith' in contact.get_urls()
assert 'http://www.friendface.com/bob.smith' in contact.get_urls()
+
+
+ def test_interesting_friends(self):
+ friend = Friend(name = 'Bob Smith', source = 'test')
+ assert not friend.is_interesting()
+
+ friend.add_url('http://chitter.com/bob.smith')
+ assert not friend.is_interesting()
+
+ friend.add_phone(PhoneNumber("01234 567890"))
+ assert friend.is_interesting()
+ friend = Friend(name = 'Bob Smith', source = 'test')
+ friend.set_birthday_date("01/01/2010")
+ assert friend.is_interesting()
+
if __name__ == '__main__':
unittest.main()