[sugar] [PATCH] sugar.presence.presenceservice: Add get_buddy_by_telepathy_handle()

Simon McVittie simon.mcvittie
Mon May 21 07:26:11 EDT 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

- ---
 sugar/presence/presenceservice.py |   26 ++++++++++++++++++++++++++
 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:
- -- 
1.5.2-rc3.GIT

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: OpenPGP key: http://www.pseudorandom.co.uk/2003/contact/ or pgp.net

iD8DBQFGUYHTWSc8zVUw7HYRAhnpAJ0WQ/tz+XSggqetV5Om0NYtKBgh6wCgx0qY
Y6dUeC761Cf0cejs1qaQHgM=
=1nJJ
-----END PGP SIGNATURE-----



More information about the Sugar-devel mailing list