Пример #1
0
 def handle_privmsg(self, ievent):
     """ check if PRIVMSG is command, if so dispatch. """
     if ievent.nick in self.nicks401:
         logging.debug("%s - %s is available again" % (self.name, ievent.nick))
         self.nicks401.remove(ievent.nick)
     if not ievent.txt: return
     chat = re.search(dccchatre, ievent.txt)
     if chat:
         if self.users.allowed(ievent.userhost, 'USER'):
             start_new_thread(self._dccconnect, (ievent.nick, ievent.userhost, chat.group(1), chat.group(2))) 
             return
     if '\001' in ievent.txt:
         Irc.handle_privmsg(self, ievent)
         return
     ievent.bot = self
     ievent.sock = self.sock
     chan = ievent.channel
     if chan == self.nick:
         ievent.msg = True
         ievent.speed =  4
         ievent.printto = ievent.nick
         ccs = ['!', '@', self.cfg['defaultcc']]
         self.privwait.check(ievent)
         if ievent.isresponse:
             return
         if self.cfg['noccinmsg'] and self.msg:
             self.put(ievent)
         elif ievent.txt[0] in ccs: 
             self.put(ievent)
         return
     self.put(ievent)
     if not ievent.iscmnd(): self.privwait.check(ievent)
Пример #2
0
 def handle_privmsg(self, ievent):
     """ check if PRIVMSG is command, if so dispatch. """
     if ievent.nick in self.nicks401:
         logging.debug("%s - %s is available again" % (self.cfg,name, ievent.nick))
         self.nicks401.remove(ievent.nick)
     if not ievent.txt: return
     ievent.nodispatch = False
     chat = re.search(dccchatre, ievent.txt)
     if chat:
         if self.users.allowed(ievent.userhost, 'USER'):
             start_new_thread(self._dccconnect, (ievent.nick, ievent.userhost, chat.group(1), chat.group(2))) 
             return
     if '\001' in ievent.txt:
         Irc.handle_privmsg(self, ievent)
         return
     ievent.bot = self
     ievent.sock = self.sock
     chan = ievent.channel
     self.put(ievent)
Пример #3
0
 def handle_privmsg(self, ievent):
     """ check if PRIVMSG is command, if so dispatch. """
     if ievent.nick in self.nicks401:
         logging.debug("%s - %s is available again" % (self.cfg,name, ievent.nick))
         self.nicks401.remove(ievent.nick)
     if not ievent.txt: return
     ievent.nodispatch = False
     chat = re.search(dccchatre, ievent.txt)
     if chat:
         if self.users.allowed(ievent.userhost, 'USER'):
             start_new_thread(self._dccconnect, (ievent.nick, ievent.userhost, chat.group(1), chat.group(2))) 
             return
     if '\001' in ievent.txt:
         Irc.handle_privmsg(self, ievent)
         return
     ievent.bot = self
     ievent.sock = self.sock
     chan = ievent.channel
     self.put(ievent)
Пример #4
0
    def handle_privmsg(self, ievent):
        """ check if PRIVMSG is command, if so dispatch. """

        if ievent.nick in self.nicks401:
            rlog(10, self.name, "%s is available again" % ievent.nick)
            self.nicks401.remove(ievent.nick)

        if not ievent.txt:
            return

        # check if it is a dcc chat request
        chat = re.search(dccchatre, ievent.txt)
        if chat:
            # check if the user is known
            if users.allowed(ievent.userhost, 'USER'):
                # start connection
                start_new_thread(self._dccconnect,
                                 (ievent.nick, ievent.userhost, chat.group(1),
                                  chat.group(2)))
                return

        # see if base class method would handle it
        if '\001' in ievent.txt:
            Irc.handle_privmsg(self, ievent)
            return

        # set bot and socket in ircevent
        ievent.bot = self
        ievent.sock = self.sock
        chan = ievent.channel.lower()

        # check for /msg
        if chan == self.nick.lower():
            ievent.msg = 1
            ievent.speed = 7
            ievent.printto = ievent.nick
            ccs = ['!', '@', self.cfg['defaultcc']]
            # check for PRIVMSG waiting callback
            self.privwait.check(ievent)
            if ievent.isresponse:
                return
            if not self.cfg['noccinmsg']:
                plugins.trydispatch(self, ievent)
            elif ievent.txt[0] in ccs:
                ievent.txt = ievent.txt[1:]
                plugins.trydispatch(self, ievent)
            return

        ievent.printto = chan

        # see if we can get channel control character
        try:
            cchar = self.channels[chan]['cc']
        except LookupError:
            cchar = self.cfg['defaultcc'] or '!'
        except TypeError:
            cchar = self.cfg['defaultcc'] or '!'

        # see if cchar matches, if so dispatch
        ievent.speed = 5
        if ievent.txt[0] in cchar:
            ievent.cc = ievent.txt[0]
            ievent.txt = ievent.txt[1:]
            plugins.trydispatch(self, ievent)
            return

        # see if were adressed, if so dispatch
        txtlist = ievent.txt.split(':', 1)
        if txtlist[0].lower() == self.nick.lower():
            if len(txtlist) < 2:
                return
            ievent.txt = txtlist[1].strip()
            plugins.trydispatch(self, ievent)
            return

        # habbie addressing mode
        txtlist = ievent.txt.split(',', 1)
        if txtlist[0].lower() == self.nick.lower():
            if len(txtlist) < 2:
                return
            ievent.txt = txtlist[1].strip()
            plugins.trydispatch(self, ievent)
            return

        # check for PRIVMSG waiting callback
        self.privwait.check(ievent)
Пример #5
0
    def handle_privmsg(self, ievent):

        """ check if PRIVMSG is command, if so dispatch. """

        if ievent.nick in self.nicks401:
            rlog(10, self.name, "%s is available again" % ievent.nick)
            self.nicks401.remove(ievent.nick)

        if not ievent.txt:
            return

        # check if it is a dcc chat request
        chat = re.search(dccchatre, ievent.txt)
        if chat:
            # check if the user is known
            if users.allowed(ievent.userhost, 'USER'):
                # start connection
                start_new_thread(self._dccconnect, (ievent.nick, ievent.userhost, chat.group(1), chat.group(2))) 
                return

        # see if base class method would handle it
        if '\001' in ievent.txt:
            Irc.handle_privmsg(self, ievent)
            return

        # set bot and socket in ircevent
        ievent.bot = self
        ievent.sock = self.sock
        chan = ievent.channel.lower()

        # check for /msg
        if chan == self.nick.lower():
            ievent.msg = 1
            ievent.speed =  7
            ievent.printto = ievent.nick
            ccs = ['!', '@', self.cfg['defaultcc']]
            # check for PRIVMSG waiting callback
            self.privwait.check(ievent)
            if ievent.isresponse:
                return
            if not self.cfg['noccinmsg']:
                plugins.trydispatch(self, ievent)
            elif ievent.txt[0] in ccs: 
                ievent.txt = ievent.txt[1:]
                plugins.trydispatch(self, ievent)
            return

        ievent.printto = chan

        # see if we can get channel control character
        try:
            cchar = self.channels[chan]['cc']
        except LookupError:
            cchar = self.cfg['defaultcc'] or '!'
        except TypeError:
            cchar = self.cfg['defaultcc'] or '!'

        # see if cchar matches, if so dispatch
        ievent.speed = 5
        if ievent.txt[0] in cchar:
            ievent.cc = ievent.txt[0]
            ievent.txt = ievent.txt[1:]
            plugins.trydispatch(self, ievent)
            return

        # see if were adressed, if so dispatch
        txtlist = ievent.txt.split(':', 1)
        if txtlist[0].lower() == self.nick.lower():
            if len(txtlist) < 2:
                return
            ievent.txt = txtlist[1].strip()
            plugins.trydispatch(self, ievent)
            return

        # habbie addressing mode
        txtlist = ievent.txt.split(',', 1)
        if txtlist[0].lower() == self.nick.lower():
            if len(txtlist) < 2:
                return
            ievent.txt = txtlist[1].strip()
            plugins.trydispatch(self, ievent)
            return

        # check for PRIVMSG waiting callback
        self.privwait.check(ievent)