Log In
New Account
  
Home My Page Project Cloud Code Snippets Project Openings Hermes
Summary Lists News SCM
index eb5987b..f30899c 100644 (file)
@@ -1,35 +1,67 @@
+from friend import Friend
+
 class Service:
     """The notional `Service' for a provider. This is responsible for communicating
        with the backend service and enhancing contacts.
        
        Copyright (c) Andrew Flegg <andrew@bleb.org> 2010.
        Released under the Artistic Licence."""
+       
+    def __init__(self):
+        """Should make initial calls to the service and retrieve a list of friends."""
 
 
     # -----------------------------------------------------------------------
-    def get_friends(self):
-        """Return a list of friends from this service, or 'None' if manual mapping
-           is not supported."""
+    def get_name(self):
+        """Should return the same name as the provider class - debugging only - REMOVE/FIXME"""
+        
+        return None
+
+    
+    # -----------------------------------------------------------------------
+    def pre_process_contact(self, contact):
+        """If the contact have an URL (or similar) that proves an existing matching
+           to a friend on this service, then this should be remembered to avoid
+           name collision/mapping the same friend to other contacts with the same 
+           name."""
          
         return None
 
     
+    def process_friends(self):
+        """Called once to signal that it's time to get all friends' data."""
+        
+        pass
+    
+    
     # -----------------------------------------------------------------------
-    def process_contact(self, contact, overwrite = False, friend = None):
+    def process_contact(self, contact):
         """Called for each contact in the address book. Any friends linked to
-           from the contact should have their matching updated. The backend should 
-           enrich the contact with any meta-data it can; and return 'True' if any
-           information was updated. If 'friend' is provided, the information should
-           be retrieved from friend. This will be one of the entries from 
-           'get_friends' when manual mapping is being done."""
+           from the contact should have their matching updated. The back end should 
+           enrich the friend passed with any meta-data it can."""
            
         pass
     
     
     # -----------------------------------------------------------------------
-    def finalise(self, updated, overwrite = False):
+    def get_unmatched_friends(self):
+        """Return a list of friends not matched to a contact, or 'None' if manual mapping
+           is not supported."""
+         
+        return None
+
+
+    # -----------------------------------------------------------------------
+    def finalise(self, updated, overwrite=False):
         """Once all contacts have been processed, allows for any tidy-up/additional
            enrichment. If any contacts are updated at this stage, 'updated' should
            be added to."""
            
         pass
+
+
+    # -----------------------------------------------------------------------
+    def _create_friend(self, name):
+        """Used to create a Friend object for a contact"""
+        
+        return Friend(name, self.get_name())

Terms of Use    Privacy Policy    Contribution Guidelines    Feedback

Powered By GForge Collaborative Development Environment