diff options
author | Krzysztof Klinikowski <kkszysiu@gmail.com> | 2010-01-25 22:36:51 +0100 |
---|---|---|
committer | Krzysztof Klinikowski <kkszysiu@gmail.com> | 2010-01-25 22:36:51 +0100 |
commit | a4949b7363af6f1fb2e48e99ab41f48f20e60df5 (patch) | |
tree | dc74330a9bc86547455cbebbb28e63ab5287eef3 | |
parent | 5ccd0c47c3bd62507ef2ef07193c337aa7b5ee06 (diff) |
Pending messages time should be displayed correctly now.
-rw-r--r-- | sunshine/avatars.py | 67 | ||||
-rw-r--r-- | sunshine/connection.py | 6 |
2 files changed, 17 insertions, 56 deletions
diff --git a/sunshine/avatars.py b/sunshine/avatars.py index 4fdd368..485cd37 100644 --- a/sunshine/avatars.py +++ b/sunshine/avatars.py @@ -54,13 +54,10 @@ class SunshineAvatars(telepathy.server.ConnectionInterfaceAvatars): if handle == self.GetSelfHandle(): #tutaj kiedys trzeba napisac kod odp za naszego avatara contact = None - av_token = handle.name - result[handle] = av_token - #pass + result[handle] = handle.name else: contact = handle.contact - if contact is not None: av_token = str(handle.name) else: @@ -75,18 +72,11 @@ class SunshineAvatars(telepathy.server.ConnectionInterfaceAvatars): def RequestAvatars(self, contacts): for handle_id in contacts: handle = self.handle(telepathy.HANDLE_TYPE_CONTACT, handle_id) - if handle == self.GetSelfHandle(): - url = 'http://api.gadu-gadu.pl/avatars/%s/0.xml' % (str(handle.name)) - d = getPage(url, timeout=10) - d.addCallback(self.on_fetch_avatars_file_ok, url, handle_id) - d.addErrback(self.on_fetch_avatars_file_failed, url, handle_id) - else: - contact = handle.contact - if contact is not None: - url = 'http://api.gadu-gadu.pl/avatars/%s/0.xml' % (str(contact.uin)) - d = getPage(url, timeout=10) - d.addCallback(self.on_fetch_avatars_file_ok, url, handle_id) - d.addErrback(self.on_fetch_avatars_file_failed, url, handle_id) + + url = 'http://api.gadu-gadu.pl/avatars/%s/0.xml' % (str(handle.name)) + d = getPage(url, timeout=10) + d.addCallback(self.on_fetch_avatars_file_ok, url, handle_id) + d.addErrback(self.on_fetch_avatars_file_failed, url, handle_id) def SetAvatar(self, avatar, mime_type): pass @@ -114,11 +104,12 @@ class SunshineAvatars(telepathy.server.ConnectionInterfaceAvatars): if result: logger.info("Avatar file retrieved from %s" % (url)) e = minidom.parseString(result) - data = e.getElementsByTagName('bigAvatar')[0].firstChild.data - - d = getPage(str(data), timeout=20) - d.addCallback(self.on_fetch_avatars_ok, data, handle_id) - d.addErrback(self.on_fetch_avatars_failed, data, handle_id) + if e.getElementsByTagName('avatar')[0].attributes["blank"].value != '1': + data = e.getElementsByTagName('bigAvatar')[0].firstChild.data + + d = getPage(str(data), timeout=20) + d.addCallback(self.on_fetch_avatars_ok, data, handle_id) + d.addErrback(self.on_fetch_avatars_failed, data, handle_id) except: logger.info("Avatar file can't be retrieved from %s" % (url)) @@ -141,37 +132,3 @@ class SunshineAvatars(telepathy.server.ConnectionInterfaceAvatars): def on_fetch_avatars_failed(self, error, url, handle_id): logger.debug("Avatar not retrieved, error: %s" % (error.getErrorMessage())) -# -# # papyon.event.ContactEventInterface -# def on_contact_msn_object_changed(self, contact): -# if contact.msn_object is not None: -# avatar_token = contact.msn_object._data_sha.encode("hex") -# else: -# avatar_token = "" -# handle = ButterflyHandleFactory(self, 'contact', -# contact.account, contact.network_id) -# self.AvatarUpdated(handle, avatar_token) -# -# # papyon.event.ProfileEventInterface -# def on_profile_msn_object_changed(self): -# msn_object = self.msn_client.profile.msn_object -# if msn_object is not None: -# avatar_token = msn_object._data_sha.encode("hex") -# logger.info("Self avatar changed to %s" % avatar_token) -# handle = ButterflyHandleFactory(self, 'self') -# self.AvatarUpdated(handle, avatar_token) -# -# @async -# def _msn_object_retrieved(self, msn_object, handle): -# if msn_object is not None and msn_object._data is not None: -# logger.info("Avatar retrieved %s" % msn_object._data_sha.encode("hex")) -# msn_object._data.seek(0, 0) -# avatar = msn_object._data.read() -# msn_object._data.seek(0, 0) -# type = imghdr.what('', avatar) -# if type is None: type = 'jpeg' -# avatar = dbus.ByteArray(avatar) -# token = msn_object._data_sha.encode("hex") -# self.AvatarRetrieved(handle, token, avatar, 'image/' + type) -# else: -# logger.info("Avatar retrieved but NULL") diff --git a/sunshine/connection.py b/sunshine/connection.py index 0db05bd..0cb0232 100644 --- a/sunshine/connection.py +++ b/sunshine/connection.py @@ -535,7 +535,11 @@ class SunshineConnection(telepathy.server.Connection, handle = SunshineHandleFactory(self, 'contact', str(msg.sender), None) - timestamp = int(time.time()) + + if int(msg.content.klass) == 9: + timestamp = int(msg.time) + else: + timestamp = int(time.time()) type = telepathy.CHANNEL_TEXT_MESSAGE_TYPE_NORMAL logger.info("User %s sent a message" % handle.name) |