sugar.presence.presenceservice: Add get_buddy_by_telepathy_handle()

This commit is contained in:
Simon McVittie 2007-05-18 15:24:58 +01:00
parent b96de811d3
commit b33dd7cfab

View File

@ -312,6 +312,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: