X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=package%2Fsrc%2Forg%2Fmaemo%2Fhermes%2Fengine%2Ffriend.py;h=74f96dacae6a103f6b02f0dfd78f2ac963dae294;hb=8cba4541d7533bcbe0eee9b7822c09fc53e66e1a;hp=957819fe701bf35c9efab7f2d9c3814093a4d5f8;hpb=6165e9a0d071203128b398008cf809519f3f6661;p=hermes diff --git a/package/src/org/maemo/hermes/engine/friend.py b/package/src/org/maemo/hermes/engine/friend.py index 957819f..74f96da 100644 --- a/package/src/org/maemo/hermes/engine/friend.py +++ b/package/src/org/maemo/hermes/engine/friend.py @@ -5,41 +5,54 @@ class Friend(): Released under the Artistic Licence.""" - def __init__(self, name=None, source=None): + def __init__(self, name=None, props=None): """ source is source service, such as LinkedIn """ self._attributes = {}; if name: self._set('fn', name) self._multi_attributes = {} - self._source = source + if props: + for key in props: + self._set(key, props[key]) + def __getitem__(self, key): + return self._safe_get(key) + def __unicode__(self): return self.__repr__() def __repr__(self): - return "Friend %s" % self._attributes['fn'] + return "Friend %s" % self.get_name() # public accessors ----------------- + def add_url(self, url): + self._add('url', url) + + def get_birthday_date(self): + return self._safe_get('bday') + def get_contact(self): - return self._attributes['contact'] + return self._safe_get('contact') def get_name(self): - return self._attributes['fn'] + return self._safe_get('fn') + + def get_source(self): + return self._source def get_nickname(self): - return self._attributes["nickname"] + return self._safe_get("nickname") def get_urls(self): try: return self._multi_attributes['url'] except: return [] def get_photo_url(self): - try: return self._attributes['photo-url'] - except: return None + return self._safe_get('photo-url') + + def has_birthday_date(self): + return self._has('bday') - def add_url(self, url): - self._add('url', url) - def is_empty(self): for a in self._attributes: return False @@ -47,9 +60,6 @@ class Friend(): return False return True - def has_birthday_date(self): - return self._has('bday') - def set_name(self, name): self._set('fn', name) @@ -65,7 +75,7 @@ class Friend(): def set_photo_url(self, url): self._set('photo-url', url) - def update(self, other_friend): + def update_friend(self, other_friend, overwrite=False): """ Overwrites any attributes in this friend, with attributes from other_friend """ @@ -96,15 +106,6 @@ class Friend(): # private helpers ----------------------- # - def _if_defined(self, key, callback): - if self._attributes.has_key(key): - callback(self._attributes[key]) - - def _set(self, key, value): - if value is not None: -# print "%s SET %s to %s" % (self, key, value) - self._attributes[key] = value - def _add(self, key, value): if value is not None: if not self._multi_attributes.has_key(key): @@ -112,9 +113,6 @@ class Friend(): # print "%s ADD %s to %s" % (self, key, value) self._multi_attributes[key].append(value) - def _has(self, key): - return self._attributes.has_key(key) or self._multi_attributes.has_key(key) - def _contains(self, key, value): if self._attributes.has_key(key): return value == self._attributes[key] @@ -122,5 +120,19 @@ class Friend(): return value in self._multi_attributes[key] return False - def __getitem__(self, key): - return self._attributes[key] + def _if_defined(self, key, callback): + if self._attributes.has_key(key): + callback(self._attributes[key]) + + def _has(self, key): + return self._attributes.has_key(key) or self._multi_attributes.has_key(key) + + def _safe_get(self, key): + try: return self._attributes[key] + except: return None + + def _set(self, key, value): + if value is not None: +# print "%s SET %s to %s" % (self, key, value) + self._attributes[key] = value +