def on_mode(self, c, e): if e.target() == self.channel: try: if parse_channel_modes(e.arguments()[0]) == ['+','o',c.get_nickname()]: self.fix_modes() except IndexError: pass
def handle_channel_event(self, bot, event): network = bot.network target = event.target() if not bot.network.is_listening_bot(bot, target): return False # not the channel's listening bot if not self.check_channel(bot, target): return False nickname = irclib.nm_to_n(event.source() or '') if network.is_one_of_us(nickname): return False eventtype = event.eventtype().lower() assert isinstance(eventtype, str) if eventtype not in self.actions: return False elif eventtype in ['mode']: modes = irclib.parse_channel_modes(b' '.join(event.arguments())) if all(_[0] == b'+' and _[1] in b'ov' for _ in modes): return False msg = self.formatter(event, network.get_channel(event.target()), network.encoding) if not msg: return False for target_network in self.networks: if target_network == network: continue self.push_message(target_network, Message(command='privmsg', arguments=(self.channels[target_network], msg))) return True
def on_mode(self, c, e): if e.target() == self.channel: try: if parse_channel_modes( e.arguments()[0]) == ['+', 'o', c.get_nickname()]: self.fix_modes() except IndexError: pass
def on_mode(self, c, e): modes = parse_channel_modes(" ".join(e.arguments())) nick = nm_to_n(e.source()) for mode in modes: signedMode = mode[0] + mode[1] if mode[2] is None: mode[2] = "" else: mode[2] = " " + mode[2] self.log(e.target(), "* " + nick + " sets mode " + signedMode + mode[2])
def _on_mode(self, c, e): """[Internal]""" modes = parse_channel_modes(" ".join(e.arguments())) t = e.target() if is_channel(t): ch = self.channels[t] for mode in modes: if mode[0] == "+": f = ch.set_mode else: f = ch.clear_mode f(mode[1], mode[2]) else: # Mode on self... XXX pass
def _on_mode(self, conn, evt): """[Internal]""" modes = parse_channel_modes(" ".join(evt._params[1:])) t = evt._params[0] if is_channel(t): ch = self.channels[t] for mode in modes: if mode[0] == "+": f = ch.set_mode else: f = ch.clear_mode f(mode[1], mode[2]) else: # Mode on self... XXX pass
def stats_mode(self, e, c): whosets = nm_to_n(e.source()) target = e.target() modes = parse_channel_modes(" ".join(e.arguments())) for mode in modes: modestr = "%s%s" % (mode[0], mode[1]) whogets = mode[2] print "on_mode: %s: %s %s %s" % (whosets, target, modestr, whogets) if modestr == '+b': cursor = self.db.cursor() if stats.nicks == []: load_nick_table(cursor) if whosets in stats.nicks: cursor.execute( "UPDATE users SET banned = banned + 1 WHERE user = %s;", [whosets])
def on_mode(self, c, e): modes = parse_channel_modes(" ".join(e.arguments())) self.logger.logMode(e, modes)