def command_parser(self, message, requester, room_jid, **attrs): for body in message.children("body"): matcher, start, end = parse_command(body, "historian") if matcher is None: continue self.log.info("Got command %r, responding to %r", body.text, requester) counter = 0 for etime, eroom, event in self.history.find(room_jid, start, end): if not matcher(event): continue body = Element("body") body.text = "%s %s\n" % (format_time(etime), eroom) for key in event.keys(): vals = ", ".join(event.values(key)) body.text += "%s: %s\n" % (key, vals) elements = [body] self.xmpp.core.message(requester, *elements, **attrs) counter += 1 self.log.info("Returned %i events.", counter)
def delay_element(timestamp): if time.daylight: timestamp = timestamp + time.altzone else: timestamp = timestamp + time.timezone delay = Element("delay") delay.text = "Greetings earthlings" delay.set_attr("xmlns", 'urn:xmpp:delay') # delay.set_attr("from", 'historian') delay.set_attr("stamp", format_time(timestamp, '%Y-%m-%dT%H:%M:%SZ')) # delay = Element("x") # delay.set_attr("xmlns", 'jabber:x:delay') # delay.set_attr("from", 'historian') # delay.set_attr("stamp", format_time(timestamp, '%Y%m%dT%H:%M:%S')) return delay