From 45e22f01b5f7350d47f8bdc2cc39b9b79682e72b Mon Sep 17 00:00:00 2001 From: mathieui Date: Fri, 24 Feb 2012 02:14:54 +0100 Subject: Fixes #2335 --- plugins/uptime.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 plugins/uptime.py (limited to 'plugins/uptime.py') diff --git a/plugins/uptime.py b/plugins/uptime.py new file mode 100644 index 00000000..ca79ce84 --- /dev/null +++ b/plugins/uptime.py @@ -0,0 +1,22 @@ +from plugin import BasePlugin +import tabs +from common import parse_secs_to_str +from sleekxmpp.xmlstream import ET +from sleekxmpp.xmlstream.stanzabase import JID + +class Plugin(BasePlugin): + def init(self): + self.add_command('uptime', self.command_uptime, '/uptime [jid]\nUptime: Ask for the uptime of a server or component (see XEP-0012).', None) + + def command_uptime(self, arg): + def callback(iq): + for query in iq.xml.getiterator('{jabber:iq:last}query'): + self.core.information('Server %s online since %s' % (iq['from'], parse_secs_to_str(int(query.attrib['seconds']))), 'Info') + return + self.core.information('Could not retrieve uptime', 'Error') + jid = JID(arg) + if not jid.server: + return + iq = self.core.xmpp.makeIqGet(ito=jid.server) + iq.append(ET.Element('{jabber:iq:last}query')) + iq.send(block=False, callback=callback) -- cgit v1.2.3