Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/presence
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2007-05-18 14:24:58 (GMT)
committer Simon McVittie <simon.mcvittie@collabora.co.uk>2007-05-18 14:24:58 (GMT)
commitc6ac2873c881455bc0ba1aa6befae9bd44a1d1e4 (patch)
tree608fce04fd8f783e7a2ede4ec337d78ed59ba370 /sugar/presence
parent78356b195669c92c5358c3194cae489e29ac6d09 (diff)
sugar.presence.presenceservice: Add get_buddy_by_telepathy_handle()
Diffstat (limited to 'sugar/presence')
-rw-r--r--sugar/presence/presenceservice.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/sugar/presence/presenceservice.py b/sugar/presence/presenceservice.py
index 1bc9a57..fc9d13e 100644
--- a/sugar/presence/presenceservice.py
+++ b/sugar/presence/presenceservice.py
@@ -317,6 +317,32 @@ class PresenceService(gobject.GObject):
return None
return self._new_object(buddy_op)
+ def get_buddy_by_telepathy_handle(self, tp_conn_name, tp_conn_path,
+ handle):
+ """Retrieve single Buddy object for the given public key
+
+ :Parameters:
+ `tp_conn_name` : str
+ The well-known bus name of a Telepathy connection
+ `tp_conn_path` : dbus.ObjectPath
+ The object path of the Telepathy connection
+ `handle` : int or long
+ The handle of a Telepathy contact on that connection,
+ of type HANDLE_TYPE_CONTACT. This may not be a
+ channel-specific handle.
+ :Returns: the Buddy object, or None if the buddy is not found
+ """
+ try:
+ buddy_op = self._ps.GetBuddyByTelepathyHandle(tp_conn_name,
+ tp_conn_path,
+ handle)
+ except dbus.exceptions.DBusException, err:
+ _logger.warn('Unable to retrieve buddy handle for handle %u at '
+ 'conn %s:%s from presence service: %s',
+ handle, tp_conn_name, tp_conn_path, err)
+ return None
+ return self._new_object(buddy_op)
+
def get_owner(self):
"""Retrieves the laptop "owner" Buddy object."""
try: