diff options
author | louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13 <louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13> | 2010-07-26 00:51:07 +0000 |
---|---|---|
committer | louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13 <louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13> | 2010-07-26 00:51:07 +0000 |
commit | bee3b7c75c27a7f162f2e745f6d5835ca16b11d6 (patch) | |
tree | b9735b70d20a8a61b0dcaabff135e3b7cd84a15e /src | |
parent | 32925f51f2fc26a447ce8ae29d9653caac8af2c2 (diff) | |
download | poezio-bee3b7c75c27a7f162f2e745f6d5835ca16b11d6.tar.gz poezio-bee3b7c75c27a7f162f2e745f6d5835ca16b11d6.tar.bz2 poezio-bee3b7c75c27a7f162f2e745f6d5835ca16b11d6.tar.xz poezio-bee3b7c75c27a7f162f2e745f6d5835ca16b11d6.zip |
Support old and deprecated XEP 0091 because it's still used on buggy servers like @conference.codingteam.net. Fixed #1677
Diffstat (limited to 'src')
-rw-r--r-- | src/common.py | 5 | ||||
-rw-r--r-- | src/gui.py | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/common.py b/src/common.py index b71f84fc..6cd83248 100644 --- a/src/common.py +++ b/src/common.py @@ -264,7 +264,10 @@ def datetime_tuple(timestamp): """ timestamp = timestamp.split('.')[0] timestamp = timestamp.replace('-', '') - ret = datetime.strptime(timestamp, '%Y%m%dT%H:%M:%SZ') + try: + ret = datetime.strptime(timestamp, '%Y%m%dT%H:%M:%SZ') + except ValueError: # Support the deprecated format, XEP 0091 :( + ret = datetime.strptime(timestamp, '%Y%m%dT%H:%M:%S') # convert UTC to local time, with DST etc. dst = timedelta(seconds=time.altzone) ret -= dst @@ -387,7 +387,14 @@ class Gui(object): delayed = True date = common.datetime_tuple(delay_tag.getAttr('stamp')) else: - delayed = False + # We support the OLD and deprecated XEP: http://xmpp.org/extensions/xep-0091.html + # But it sucks, please, Jabber servers, don't do this :( + delay_tag = stanza.getTag('x', namespace='jabber:x:delay') + if delay_tag: + delayed = True + date = common.datetime_tuple(delay_tag.getAttr('stamp')) + else: + delayed = False if stanza.getType() != 'groupchat': return # ignore all messages not comming from a MUC nick_from = stanza.getFrom().getResource() |