summaryrefslogtreecommitdiff
path: root/src/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/common.py')
-rw-r--r--src/common.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/common.py b/src/common.py
index 16fcfba5..987c93a9 100644
--- a/src/common.py
+++ b/src/common.py
@@ -196,6 +196,31 @@ def datetime_tuple(timestamp):
ret -= dst
return ret
+def find_delayed_tag(message):
+ """
+ Check if a message is delayed or not.
+
+ :param sleekxmpp.Message message: The message to check.
+ :return: A tuple containing (True, the datetime) or (False, None)
+ :rtype: :py:class:`tuple`
+ """
+
+ delay_tag = message.find('{urn:xmpp:delay}delay')
+ if delay_tag is not None:
+ delayed = True
+ date = datetime_tuple(delay_tag.attrib['stamp'])
+ else:
+ # 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 = message.find('{jabber:x:delay}x')
+ if delay_tag is not None:
+ delayed = True
+ date = common.datetime_tuple(delay_tag.attrib['stamp'])
+ else:
+ delayed = False
+ date = None
+ return (delayed, date)
+
def shell_split(st):
"""
Split a string correctly according to the quotes