mrDoctorWho/vk4xmpp

View on GitHub
modules/mod_iq_last.py

Summary

Maintainability
A
0 mins
Test Coverage
# coding: utf-8
# This file is a part of VK4XMPP transport
# © simpleApps, 2013 — 2015.

from __main__ import *
import xmpp
import utils


@utils.threaded
def last_handler(cl, iq):
    jidFrom = iq.getFrom()
    jidTo = iq.getTo()
    source = jidFrom.getStripped()
    destination = jidTo.getStripped()
    id = vk2xmpp(destination)
    if id == TransportID:
        last = int(time.time() - startTime)
        name = IDENTIFIER["name"]
    elif source in Users and id in Users[source].friends:
        last = Users[source].vk.method("execute.getLastTime", {"uid": id}) or 0
        last = int(time.time() - last)
        name = Users[source].vk.getName(id)
    else:
        raise xmpp.NodeProcessed()
    result = xmpp.Iq("result", to=jidFrom, frm=destination)
    result.setID(iq.getID())
    result.setTag("query", {"seconds": str(last)}, xmpp.NS_LAST)
    result.setTagData("query", name)
    sender(cl, result)


MOD_TYPE = "iq"
MOD_HANDLERS = ((last_handler, "get", xmpp.NS_LAST, False),)
MOD_FEATURES = [xmpp.NS_LAST]
MOD_FEATURES_USER = [xmpp.NS_LAST]