Beispiel #1
0
    def HandlePRIVMSG(self, msg):
        parts = irc.SplitPRIVMSG(msg)
        if len(parts) < 2 or not parts[1]:
            logging.warning('Got invalid PRIVMSG: %r', msg)
            return False

        command = self._SkipNickname(parts[1])
        if not command:
            return False

        command = command.lower()
        if self._HandleHelp(command):
            return True

        # Special handling for save.
        #if command == 'save':
        #    self._SAVE_CMD()
        #    return True

        key_func = self._COMMANDS.get(command)
        if key_func:
            key_func()
            return True

        return False
Beispiel #2
0
    def HandlePRIVMSG(self, msg):
        parts = irc.SplitPRIVMSG(msg)
        if len(parts) < 2 or not parts[1]:
            logging.warning('Got invalid PRIVMSG: %r', msg)
            return False

        command = self._SkipNickname(parts[1])
        if not command:
            return False

        return self.HandleCommand(command.lower())
Beispiel #3
0
    def HandlePRIVMSG(self, msg):
        """The entry point into this plugin, handle a chat message."""
        parts = irc.SplitPRIVMSG(msg)
        if len(parts) < 2 or not parts[1]:
            logging.warning('Got invalid PRIVMSG: %r', msg)
            return False

        command = parts[1].strip().split(' ', maxsplit=1)
        if not command[0]:
            return False

        if command[0] == self._command:
            self._HandleCommand(msg, command[1])
            # The command was handled, even if it might have failed.
            return True

        return False
Beispiel #4
0
    def HandlePRIVMSG(self, msg):
        """The entry point into this plugin, handle a chat message."""
        parts = irc.SplitPRIVMSG(msg)
        if len(parts) < 2 or not parts[1]:
            logging.warning('Got invalid PRIVMSG: %r', msg)
            return False

        command = parts[1].strip()
        if not command:
            return False

        match = self._QUESTION_RE.match(command)
        if match:
            return self._HandleQuestion(msg)

        match = self._ANSWER_RE.match(command)
        if match:
            return self._HandleAnswer(msg, match)

        return False
Beispiel #5
0
    def HandlePRIVMSG(self, msg):
        """The entry point into this plugin, handle a chat message."""
        parts = irc.SplitPRIVMSG(msg)
        if len(parts) < 2 or not parts[1]:
            logging.warning('Got invalid PRIVMSG: %r', msg)
            return False

        command = parts[1].strip()
        if not command:
            return False

        match = self._GET_QUOTE_RE.match(command)
        if match:
            return self._HandleGetQuote(match)
        match = self._ADD_QUOTE_RE.match(command)
        if match:
            return self._HandleAddQuote(msg, match)
        match = self._DEL_QUOTE_RE.match(command)
        if match:
            return self._HandleDelQuote(msg, match)

        return False
Beispiel #6
0
    def HandlePRIVMSG(self, msg):
        parts = irc.SplitPRIVMSG(msg)
        if len(parts) < 2 or not parts[1]:
            logging.warning('Got invalid PRIVMSG: %r', msg)
            return False

        msg = _Message(msg.sender, parts[1])
        # If a filter is defined then any message not matching is ignored.
        if self._text_filter and not self._text_filter.match(msg.data):
            return False

        if (self._sender_rate
                and self._pool.CountBySender(msg.sender) >= self._sender_rate):
            self._Log('REJECT:sender-over-limit:%s', msg)
            return True
        if (self._text_rate
                and self._pool.CountByText(msg.data) >= self._text_rate):
            self._Log('REJECT:text-over-limit:%s', msg)
            return True

        self._Log('PASS:%s', msg)
        self._pool.RecordMessage(msg)
        return False