4 from org.maemo.hermes.engine.contact import Contact
5 from org.maemo.hermes.engine.friend import Friend
6 from org.maemo.hermes.gui.console import ConsoleUICallback
7 import org.maemo.hermes.engine.facebook.provider
8 import org.maemo.hermes.engine.twitter.provider
9 import org.maemo.hermes.engine.gravatar.provider
10 import org.maemo.hermes.engine.linkedin.provider
14 org.maemo.hermes.engine.facebook.provider.Provider(),
15 org.maemo.hermes.engine.twitter.provider.Provider(),
16 org.maemo.hermes.engine.gravatar.provider.Provider(),
17 org.maemo.hermes.engine.linkedin.provider.Provider(),
20 ui = ConsoleUICallback()
22 # assemble services, least important (prioritized) first
23 print "+++ Initialising Services"
25 for provider in providers:
26 print "Using %s" % (provider.get_name())
27 services.append(provider.service(ui))
30 updated_contacts = set()
31 unmatched_contacts = set()
34 print "\n+++ Pre processing"
35 addresses = evolution.ebook.open_addressbook('default')
36 for econtact in addresses.get_all_contacts():
37 contact = Contact(addresses, econtact)
38 contacts.append(contact)
39 for service in services:
40 print " Pre processing %s with %s" % (contact, service.get_name())
41 service.pre_process_contact(contact)
43 print "\n+++ Processing"
44 for contact in contacts:
45 friend = Friend(contact.get_name())
46 for service in services:
47 print " Processing %s with %s" % (friend, service.get_name())
48 service.process_contact(contact, friend)
50 print "No service matched %s\n" % friend
51 unmatched_contacts.add(contact)
53 print " Updating contact data for %s\n" % friend
54 friend.update_contact(contact, overwrite)
55 updated_contacts.add(contact)
57 print "\n+++ Finalising"
58 for service in services:
59 print " Finalising service %s" % service.get_name()
60 service.finalise(updated_contacts)