Merge branch 'master' of git@83.233.175.44:hermes
authorAndrew Flegg <andrew@bleb.org>
Tue, 8 Jun 2010 21:44:42 +0000 (22:44 +0100)
committerAndrew Flegg <andrew@bleb.org>
Tue, 8 Jun 2010 21:44:42 +0000 (22:44 +0100)
Conflicts:

package/src/org/maemo/hermes/engine/hermes.py

1  2 
package/src/org/maemo/hermes/engine/facebook/service.py
package/src/org/maemo/hermes/engine/hermes.py
package/src/org/maemo/hermes/engine/service.py

@@@ -44,11 -47,9 +47,11 @@@ class Hermes
              def get_name(self):
                  return "Fredrik Wendt"
              def get_emails(self):
-                 return ["fredrik@wendt.se","maemohermes@wendt.se"]
+                 return ["fredrik@wendt.se", "maemohermes@wendt.se"]
              def get_photo(self):
                  return None
 +            def get_mapped_to(self):
 +                return set(["facebook", "gravatar"])
          self.matched = [FakeContact()]
   
  #        self._sync_job = SyncJob(services, [FakeContact()], self.progress)
  #        self._sync_job.get_updated_contacts()
  #        self._sync_job.get_matched_contacts()
          pass
+     
+     
+     # -----------------------------------------------------------------------
+     def run_alt(self, overwrite_existing_fields=False):
+         print "+++ Syncing contacts..."
+         self.addresses = evolution.ebook.open_addressbook('default')
+         print "+++ Contact store created..."
+         contacts = self.addresses.get_all_contacts()
  
+         # warm up
+         for service in self._services:
+             for contact in contacts:
+                 service.pre_process_contact(contact)
+                 
+         # fetch data
+         for service in self._services:
+             service.process_friends()
+         
+         # combine results into one friend
+         for contact in contacts:
+             result = Friend()
+             for service in self._services:
+                 friend = service.process_contact(contact)
+                 if (friend):
+                     friend.decorate(result)
+             
+             self.update_contact(friend, overwrite_existing_fields)
+         
  
      # -----------------------------------------------------------------------
-     def update_contact(self, contact, friend, resync = False):
+     def update_contact(self, contact, friend, resync=False):
          """Update the given contact with information from the given friend."""
          
-         friend.update_contact(contact, resync)
-     
- """        
-  friends = ()
-  for service in services:
-    for friend in service.get_friends():
-      friends.add(friend)
+         print "updating contact ", contact, " with friend ", friend
  
-  all_contacts = get_contacts_as_set()
-  contacts = set()
-  updated_contacts = set()
-  for econtact in addressbook.get_all_contacts():
-    contact = Contact(addressbook, econtact)
-    contacts.add(contact)
-    for service in something.get_services_by_prioritisation():
-      if service.process_contact(contact):
-        updated_contacts.add(contact)
 -
+     def create_contact_from_friend(self, friend):
+         contact = evolution.ebook.EContact()
+         contact.props.full_name = friend['name']
+         contact.props.given_name = friend['first_name']
+         contact.props.family_name = friend['last_name']
+         
+         self.update_contact(contact, friend)
+         
+         self.addresses.add_contact(contact)
+         self.updated.append(contact)
+         self.addresses.commit_contact(contact)
+         
+         print "Created [%s]" % (contact.get_name())
+         self.matched.append(contact)
  
-  for service in something.get_services_by_prioritisation():
-    service.finalise(updated_contacts)
  
-  for contact in updated_contacts:
-    contact.save()
- """
+     def commit(self):
+         self.store.close()