summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2010-04-21 18:11:06 +0100
committerSimon McVittie <smcv@debian.org>2010-04-21 18:11:06 +0100
commit1dccdf7d3576175f922467ffd4bf17f56f0cf9b2 (patch)
treea0562d65c69285706e331638af5d3f486c050e8b
parent24f28734e7587674356559663736636d10b362c3 (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.py25
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 = {}