예제 #1
0
 def cmdFirstStage(self, conn, event):
     """Build the reply to complete the request"""
     frm = event.getFrom()
     to = event.getTo()
     room = irc_ulower(to.getNode())
     try:
         channel, server = room.split("%", 1)
         channel = JIDDecode(channel)
     except ValueError:
         channel = ""
         server = room
         sys.exc_clear()
     if channel == "":
         if self.transport.irc_disconnect("", server, frm, None):
             self.transport.xmpp_presence_do_update(None, server, frm.getStripped())
             reply = event.buildReply("result")
             form = DataForm(typ="result", data=[DataField(value="Command completed.", typ="fixed")])
             reply.addChild(
                 name="command",
                 namespace=NS_COMMANDS,
                 attrs={
                     "node": event.getTagAttr("command", "node"),
                     "sessionid": self.getSessionID(),
                     "status": "completed",
                 },
                 payload=[form],
             )
             self._owner.send(reply)
             raise NodeProcessed
         else:
             self._owner.send(Error(event, ERR_ITEM_NOT_FOUND))
             raise NodeProcessed
     else:
         self._owner.send(Error(event, ERR_ITEM_NOT_FOUND))
         raise NodeProcessed
예제 #2
0
파일: adhoc.py 프로젝트: brynkng/ChatBot
 def cmdFirstStage(self,conn,event):
     """Build the reply to complete the request"""
     fromjid = event.getFrom().getStripped().__str__()
     to = event.getTo()
     room = irc_ulower(to.getNode())
     try:
         channel, server = room.split('%',1)
         channel = JIDDecode(channel)
     except ValueError:
         channel=''
         server=room
         sys.exc_clear()
     if channel == '':
         if self.transport.users.has_key(fromjid) \
           and self.transport.users[fromjid].has_key(server):
             # TODO: RULES must become pending event, so it can go back to the right resource
             self.transport.users[fromjid][server].ruleshash = ''
             self.transport.users[fromjid][server].send_raw('RULES')
             reply = event.buildReply('result')
             form = DataForm(typ='result',data=[DataField(value='Command completed.',typ='fixed')])
             reply.addChild(name='command',namespace=NS_COMMANDS,attrs={'node':event.getTagAttr('command','node'),'sessionid':self.getSessionID(),'status':'completed'},payload=[form])
             self._owner.send(reply)
             raise NodeProcessed
         else:
             self._owner.send(Error(event,ERR_ITEM_NOT_FOUND))
             raise NodeProcessed
     else:
         self._owner.send(Error(event,ERR_ITEM_NOT_FOUND))
         raise NodeProcessed
예제 #3
0
파일: adhoc.py 프로젝트: brynkng/ChatBot
 def cmdFirstStage(self,conn,event):
     """Build the reply to complete the request"""
     frm = event.getFrom()
     to = event.getTo()
     room = irc_ulower(to.getNode())
     try:
         channel, server = room.split('%',1)
         channel = JIDDecode(channel)
     except ValueError:
         channel=''
         server=room
         sys.exc_clear()
     if channel == '':
         if self.transport.irc_disconnect('',server,frm,None):
             self.transport.xmpp_presence_do_update(None,server,frm.getStripped())
             reply = event.buildReply('result')
             form = DataForm(typ='result',data=[DataField(value='Command completed.',typ='fixed')])
             reply.addChild(name='command',namespace=NS_COMMANDS,attrs={'node':event.getTagAttr('command','node'),'sessionid':self.getSessionID(),'status':'completed'},payload=[form])
             self._owner.send(reply)
             raise NodeProcessed
         else:
             self._owner.send(Error(event,ERR_ITEM_NOT_FOUND))
             raise NodeProcessed
     else:
         self._owner.send(Error(event,ERR_ITEM_NOT_FOUND))
         raise NodeProcessed
예제 #4
0
 def _DiscoHandler(self, conn, event, type):
     """The handler for discovery events"""
     fromjid = event.getFrom().getStripped().__str__()
     to = event.getTo()
     room = irc_ulower(to.getNode())
     try:
         channel, server = room.split("%", 1)
         channel = JIDDecode(channel)
     except ValueError:
         channel = ""
         server = room
         sys.exc_clear()
     if channel == "" and self.transport.users.has_key(fromjid) and self.transport.users[fromjid].has_key(server):
         return xmpp.commands.Command_Handler_Prototype._DiscoHandler(self, conn, event, type)
     else:
         return None
예제 #5
0
파일: adhoc.py 프로젝트: zfortier/yakalope
 def _DiscoHandler(self, conn, event, type):
     """The handler for discovery events"""
     fromjid = event.getFrom().getStripped().__str__()
     to = event.getTo()
     room = irc_ulower(to.getNode())
     try:
         channel, server = room.split('%', 1)
         channel = JIDDecode(channel)
     except ValueError:
         channel = ''
         server = room
         sys.exc_clear()
     if channel == '' and self.transport.users.has_key(
             fromjid) and self.transport.users[fromjid].has_key(server):
         return xmpp.commands.Command_Handler_Prototype._DiscoHandler(
             self, conn, event, type)
     else:
         return None
예제 #6
0
파일: adhoc.py 프로젝트: zfortier/yakalope
 def cmdFirstStage(self, conn, event):
     """Build the reply to complete the request"""
     fromjid = event.getFrom().getStripped().__str__()
     to = event.getTo()
     room = irc_ulower(to.getNode())
     try:
         channel, server = room.split('%', 1)
         channel = JIDDecode(channel)
     except ValueError:
         channel = ''
         server = room
         sys.exc_clear()
     if channel == '':
         if self.transport.users.has_key(fromjid) \
           and self.transport.users[fromjid].has_key(server):
             # TODO: RULES must become pending event, so it can go back to the right resource
             self.transport.users[fromjid][server].ruleshash = ''
             self.transport.users[fromjid][server].send_raw('RULES')
             reply = event.buildReply('result')
             form = DataForm(
                 typ='result',
                 data=[DataField(value='Command completed.', typ='fixed')])
             reply.addChild(name='command',
                            namespace=NS_COMMANDS,
                            attrs={
                                'node': event.getTagAttr('command', 'node'),
                                'sessionid': self.getSessionID(),
                                'status': 'completed'
                            },
                            payload=[form])
             self._owner.send(reply)
             raise NodeProcessed
         else:
             self._owner.send(Error(event, ERR_ITEM_NOT_FOUND))
             raise NodeProcessed
     else:
         self._owner.send(Error(event, ERR_ITEM_NOT_FOUND))
         raise NodeProcessed
예제 #7
0
 def cmdFirstStage(self, conn, event):
     """Build the reply to complete the request"""
     fromjid = event.getFrom().getStripped().__str__()
     to = event.getTo()
     room = irc_ulower(to.getNode())
     try:
         channel, server = room.split("%", 1)
         channel = JIDDecode(channel)
     except ValueError:
         channel = ""
         server = room
         sys.exc_clear()
     if channel == "":
         if self.transport.users.has_key(fromjid) and self.transport.users[fromjid].has_key(server):
             # TODO: RULES must become pending event, so it can go back to the right resource
             self.transport.users[fromjid][server].ruleshash = ""
             self.transport.users[fromjid][server].send_raw("RULES")
             reply = event.buildReply("result")
             form = DataForm(typ="result", data=[DataField(value="Command completed.", typ="fixed")])
             reply.addChild(
                 name="command",
                 namespace=NS_COMMANDS,
                 attrs={
                     "node": event.getTagAttr("command", "node"),
                     "sessionid": self.getSessionID(),
                     "status": "completed",
                 },
                 payload=[form],
             )
             self._owner.send(reply)
             raise NodeProcessed
         else:
             self._owner.send(Error(event, ERR_ITEM_NOT_FOUND))
             raise NodeProcessed
     else:
         self._owner.send(Error(event, ERR_ITEM_NOT_FOUND))
         raise NodeProcessed
예제 #8
0
파일: adhoc.py 프로젝트: zfortier/yakalope
 def cmdFirstStage(self, conn, event):
     """Build the reply to complete the request"""
     frm = event.getFrom()
     to = event.getTo()
     room = irc_ulower(to.getNode())
     try:
         channel, server = room.split('%', 1)
         channel = JIDDecode(channel)
     except ValueError:
         channel = ''
         server = room
         sys.exc_clear()
     if channel == '':
         if self.transport.irc_disconnect('', server, frm, None):
             self.transport.xmpp_presence_do_update(None, server,
                                                    frm.getStripped())
             reply = event.buildReply('result')
             form = DataForm(
                 typ='result',
                 data=[DataField(value='Command completed.', typ='fixed')])
             reply.addChild(name='command',
                            namespace=NS_COMMANDS,
                            attrs={
                                'node': event.getTagAttr('command', 'node'),
                                'sessionid': self.getSessionID(),
                                'status': 'completed'
                            },
                            payload=[form])
             self._owner.send(reply)
             raise NodeProcessed
         else:
             self._owner.send(Error(event, ERR_ITEM_NOT_FOUND))
             raise NodeProcessed
     else:
         self._owner.send(Error(event, ERR_ITEM_NOT_FOUND))
         raise NodeProcessed