parent
b9e02f200c
commit
2002c3cf74
|
@ -30,6 +30,7 @@ from gajim.common import app
|
||||||
from gajim.common import i18n
|
from gajim.common import i18n
|
||||||
from gajim.common.i18n import _
|
from gajim.common.i18n import _
|
||||||
from gajim.common.modules import dataforms
|
from gajim.common.modules import dataforms
|
||||||
|
from gajim.common.modules.misc import parse_idle
|
||||||
from gajim.common.const import KindConstant, SSLError
|
from gajim.common.const import KindConstant, SSLError
|
||||||
from gajim.common.pep import SUPPORTED_PERSONAL_USER_EVENTS
|
from gajim.common.pep import SUPPORTED_PERSONAL_USER_EVENTS
|
||||||
from gajim.common.jingle_transport import JingleTransportSocks5
|
from gajim.common.jingle_transport import JingleTransportSocks5
|
||||||
|
@ -254,12 +255,7 @@ PresenceHelperEvent):
|
||||||
if delay_tag:
|
if delay_tag:
|
||||||
self._generate_timestamp(self.stanza.timestamp)
|
self._generate_timestamp(self.stanza.timestamp)
|
||||||
# XEP-0319
|
# XEP-0319
|
||||||
self.idle_time = None
|
self.idle_time = parse_idle(self.stanza)
|
||||||
idle_tag = self.stanza.getTag('idle', namespace=nbxmpp.NS_IDLE)
|
|
||||||
if idle_tag:
|
|
||||||
time_str = idle_tag.getAttr('since')
|
|
||||||
tim = helpers.datetime_tuple(time_str)
|
|
||||||
self.idle_time = timegm(tim)
|
|
||||||
|
|
||||||
xtags = self.stanza.getTags('x')
|
xtags = self.stanza.getTags('x')
|
||||||
for x in xtags:
|
for x in xtags:
|
||||||
|
|
|
@ -139,3 +139,24 @@ def parse_xhtml(stanza):
|
||||||
if app.config.get('ignore_incoming_xhtml'):
|
if app.config.get('ignore_incoming_xhtml'):
|
||||||
return None
|
return None
|
||||||
return stanza.getXHTML()
|
return stanza.getXHTML()
|
||||||
|
|
||||||
|
|
||||||
|
# XEP-0319: Last User Interaction in Presence
|
||||||
|
|
||||||
|
def parse_idle(stanza):
|
||||||
|
idle_tag = stanza.getTag('idle', namespace=nbxmpp.NS_IDLE)
|
||||||
|
if idle_tag is None:
|
||||||
|
return
|
||||||
|
|
||||||
|
since = idle_tag.getAttr('since')
|
||||||
|
if since is None:
|
||||||
|
log.warning('No since attr in idle node')
|
||||||
|
log.warning(stanza)
|
||||||
|
return
|
||||||
|
|
||||||
|
timestamp = parse_datetime(since, convert='utc', epoch=True)
|
||||||
|
if timestamp is None:
|
||||||
|
log.warning('Invalid timestamp received: %s', since)
|
||||||
|
log.warning(stanza)
|
||||||
|
|
||||||
|
return timestamp
|
||||||
|
|
Loading…
Reference in New Issue