diff options
author | Simon McVittie <smcv@debian.org> | 2010-04-21 18:11:06 +0100 |
---|---|---|
committer | Simon McVittie <smcv@debian.org> | 2010-04-21 18:11:06 +0100 |
commit | 1dccdf7d3576175f922467ffd4bf17f56f0cf9b2 (patch) | |
tree | a0562d65c69285706e331638af5d3f486c050e8b | |
parent | 24f28734e7587674356559663736636d10b362c3 (diff) |
fd.o #27776: Avatars: implement the properties from spec 0.17.22
The recommended height/width are set to the minimum (96) based on a quick
web search for the canonical sizes. Anyone who uses the official MSN
client and knows how big its avatars are is welcome to change them.
-rw-r--r-- | butterfly/avatars.py | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/butterfly/avatars.py b/butterfly/avatars.py index 0f568eb..922158b 100644 --- a/butterfly/avatars.py +++ b/butterfly/avatars.py @@ -33,6 +33,12 @@ __all__ = ['ButterflyAvatars'] logger = logging.getLogger('Butterfly.Avatars') +SUPPORTED_AVATAR_MIME_TYPES = dbus.Array(["image/png", "image/jpeg", + "image/gif"], signature='s') +MINIMUM_AVATAR_PIXELS = dbus.UInt32(96) +RECOMMENDED_AVATAR_PIXELS = dbus.UInt32(96) +MAXIMUM_AVATAR_PIXELS = dbus.UInt32(192) +MAXIMUM_AVATAR_BYTES = dbus.UInt32(500 * 1024) class ButterflyAvatars(\ telepathy.server.ConnectionInterfaceAvatars, @@ -45,9 +51,24 @@ class ButterflyAvatars(\ papyon.event.ContactEventInterface.__init__(self, self.msn_client) papyon.event.ProfileEventInterface.__init__(self, self.msn_client) + dbus_interface = telepathy.CONNECTION_INTERFACE_AVATARS + self._implement_property_get(dbus_interface, { + 'SupportedAvatarMIMETypes': + lambda: SUPPORTED_AVATAR_MIME_TYPES, + 'MinimumAvatarHeight': lambda: MINIMUM_AVATAR_PIXELS, + 'MinimumAvatarWidth': lambda: MINIMUM_AVATAR_PIXELS, + 'RecommendedAvatarHeight': lambda: RECOMMENDED_AVATAR_PIXELS, + 'RecommendedAvatarWidth': lambda: RECOMMENDED_AVATAR_PIXELS, + 'MaximumAvatarHeight': lambda: MAXIMUM_AVATAR_PIXELS, + 'MaximumAvatarWidth': lambda: MAXIMUM_AVATAR_PIXELS, + 'MaximumAvatarBytes': lambda: MAXIMUM_AVATAR_BYTES, + }) + def GetAvatarRequirements(self): - mime_types = ("image/png","image/jpeg","image/gif") - return (mime_types, 96, 96, 192, 192, 500 * 1024) + return (SUPPORTED_AVATAR_MIME_TYPES, + MINIMUM_AVATAR_PIXELS, MINIMUM_AVATAR_PIXELS, + MAXIMUM_AVATAR_PIXELS, MAXIMUM_AVATAR_PIXELS, + MAXIMUM_AVATAR_BYTES) def GetKnownAvatarTokens(self, contacts): result = {} |