6 class ButterflyAvatars(telepathy.server.ConnectionInterfaceAvatars):
9 self._avatar_known = False
10 telepathy.server.ConnectionInterfaceAvatars.__init__(self)
12 def GetAvatarRequirements(self):
13 mime_types = ("image/png","image/jpeg","image/gif")
14 return (mime_types, 96, 96, 192, 192, 500 * 1024)
16 def GetKnownAvatarTokens(self, contacts):
18 for handle_id in contacts:
19 handle = self.handle(telepathy.HANDLE_TYPE_CONTACT, handle_id)
20 if handle == self.GetSelfHandle():
21 contact = handle.profile
23 contact = handle.contact
25 if contact is not None:
26 msn_object = contact.msn_object
30 if msn_object is not None:
31 result[handle] = msn_object._data_sha.encode("hex")
32 elif self._avatar_known:
36 def RequestAvatars(self, contacts):
37 for handle_id in contacts:
38 handle = self.handle(telepathy.HANDLE_TYPE_CONTACT, handle_id)
39 if handle == self.GetSelfHandle():
40 msn_object = self.msn_client.profile.msn_object
41 self._msn_object_retrieved(msn_object, handle)
43 contact = handle.contact
44 if contact is not None:
45 msn_object = contact.msn_object
48 if msn_object is not None:
49 self.msn_client.msn_object_store.request(msn_object,\
50 (self._msn_object_retrieved, handle))
52 def SetAvatar(self, avatar, mime_type):
53 self._avatar_known = True
54 if not isinstance(avatar, str):
55 avatar = "".join([chr(b) for b in avatar])
57 logging.info("Setting self avatar to %s" % avatarToken)
60 def ClearAvatar(self):
61 self.msn_client.profile.msn_object = None
62 self._avatar_known = True