diff options
-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() |