1 from friend import Friend
4 """The notional `Service' for a provider. This is responsible for communicating
5 with the backend service and enhancing contacts.
7 Copyright (c) Andrew Flegg <andrew@bleb.org> 2010.
8 Released under the Artistic Licence."""
10 def __init__(self, service_id):
11 """Should make initial calls to the service and retrieve a list of friends."""
13 self._service_id = service_id
16 # -----------------------------------------------------------------------
18 """Return the service ID, as given to the service at creation."""
20 return self._service_id
23 # -----------------------------------------------------------------------
24 def pre_process_contact(self, contact):
25 """If the contact have an URL (or similar) that proves an existing matching
26 to a friend on this service, then this should be remembered to avoid
27 name collision/mapping the same friend to other contacts with the same
33 def process_friends(self):
34 """Called once to signal that it's time to get all friends' data."""
39 # -----------------------------------------------------------------------
40 def process_contact(self, contact):
41 """Called for each contact in the address book. If the contact can be
42 matched to a Friend, than return the Friend object or None."""
47 # -----------------------------------------------------------------------
48 def get_friends_to_create_contacts_for(self):
49 """Returns a list of friends to create contacts for, if user has
50 configured the service to report any."""
55 # -----------------------------------------------------------------------
56 def get_unmatched_friends(self):
57 """Return a list of friends not matched to a contact, or 'None' if manual mapping
63 # -----------------------------------------------------------------------
64 def finalise(self, updated, overwrite=False):
65 """Once all contacts have been processed, allows for any tidy-up/additional
66 enrichment. If any contacts are updated at this stage, 'updated' should