Beispiel #1
0
 def onDiscoInfo(self, iq):
     dl = []
     try:
         room = jid_unescape(jid.internJID(iq['to']).user)
     except:
         room = None
     host = jid.internJID(iq['to']).host
     for c in self.parent:
         if IService.providedBy(c):
             if hasattr(c, "get_disco_info"):
                 dl.append(c.get_disco_info(room=room, host=host, frm=iq['from']))
     iq.handled = True
     d = defer.DeferredList(dl, fireOnOneErrback=1, consumeErrors=1)
     d.addCallback(self._disco_info_results, iq, room)
     d.addErrback(self._error, iq)
     d.addCallback(self.send)
Beispiel #2
0
    def onDiscoItems(self, iq):
        dl = []
        node = iq.query.getAttribute("node")
        try:
            room = jid_unescape(jid.internJID(iq['to']).user)
        except:
            room = None

        host = jid.internJID(iq['to']).host
        nick = jid.internJID(iq['to']).resource

        for c in self.parent:
            if IService.providedBy(c):
                if hasattr(c, "get_disco_items"):
                    dl.append(c.get_disco_items(room=room, host=host, frm=iq['from'], nick=nick, node=node))
        iq.handled = True
        d = defer.DeferredList(dl, fireOnOneErrback=1, consumeErrors=1)
        d.addCallback(self._disco_items_result, iq, room)
        d.addErrback(self._error, iq)
        d.addCallback(self.send)