def on_join(self, connection, raw_msg): """ called by super() when somebody joins channel """ if raw_msg.source.nick == connection.get_nickname(): self.logger.info('joined to %s' % self.channel) self.whois(connection.get_nickname()) else: self.call_plugins_methods(connection, raw_msg, 'on_join')
def on_join(self, connection, event): """Say hello to other people in the channel. """ welcome_msg = "Hi, I'm " + self.__get_colored_text('3',str(connection.get_nickname())) + " your bot. Send " + self.__get_colored_text(self.color_num,"!help") +" to get a list of commands." if not self.__first_start: connection.privmsg(self.__config.CHANNEL, welcome_msg) self.__on_connect_cb() self.__first_start = True if event.source.nick != connection.get_nickname(): connection.privmsg(event.source.nick, welcome_msg)
def on_invite(self, connection, event): nick = event.target if nick != connection.get_nickname() or len(event.arguments) < 1: return channel = event.arguments[0] logger.info("invited to channel %s" % channel) self.send(channel, u"I'm been invited here.")
def on_whoisuser(self, connection, raw_msg): # workaround here: # /whois me triggers on_me_joined call because when first time on self.on_join (== when bot joins channel) users-list is not updated yet if raw_msg.arguments[0] == connection.get_nickname(): self.call_plugins_methods(connection, raw_msg, 'on_me_joined') self.call_plugins_methods(connection, raw_msg, 'on_whoisuser')
def on_welcome(self, connection, raw_msg): """ called by super() when connected to server """ self.call_plugins_methods(connection, raw_msg, 'on_welcome') self.logger.info('connected to %s:%d using nickname %s' % (self.server, self.port, connection.get_nickname())) self.login(connection) self.join_channel(connection)
def on_part(self, connection, event): """Parted from a channel""" nick = event.source.nick if nick != connection.get_nickname(): return channel = event.target logger.info("parted from channel %s" % channel) self._chans.leave(channel)
def on_join(self, connection, event): """Say hello to other people in the channel. """ connection.privmsg( self.__config.CHANNEL, "Hi, I'm " + Colours('3', str(connection.get_nickname())).get() + " your bot. Send " + Colours(self.num_col, "!help").get() + " to get a list of commands.") self.__on_connect_cb()
def on_join(self, connection, event): """Join a new channel, say what we need""" # Check message is for me nick = event.source.nick if nick != connection.get_nickname(): return channel = event.target logger.info(u"Joined channel %s" % channel) self._chans[channel].mark_joined()
def on_pubmsg(self, connection: ServerConnection, event: Event): if not isinstance(event.source, irc.client.NickMask): return if not irc.client.is_channel(event.target): return self._update_nick_hostmask(event) nick = self._lowercase(event.source.nick) text = event.arguments[0] channel = self._lowercase(event.target) hostmask = self.lower_hostmask(event.source) def reply(message: str): connection.privmsg(channel, '{}: {}'.format(nick, message)) command = None match = re.match( r'{}[:,]\s(\S+)'.format(re.escape(connection.get_nickname())), text) if match: command = match.group(1) if command == 'op': if not self.check_is_admin(hostmask): reply('Unauthorized.') return if not self.channels[channel].is_oper(connection.get_nickname()): reply("I don't have ops.") return _logger.info('Op %s %s', channel, nick) connection.mode(channel, '+o {}'.format(nick)) elif command == "revokeall": if self.channels[channel].is_oper(connection.get_nickname()): _logger.info('Revoke all %s %s', channel, nick) self._priv_tracker.revoke_all(channel.lower()) reply('OK.') else: reply('Unauthorized.')
def on_join(self, connection, event): """Join a new channel, say what we need""" # Check message is for me nick = event.source.nick if nick == connection.get_nickname(): channel = event.target logger.info(u"Joined channel %s" % channel) self._chans[channel].mark_joined() """Run hooks on public messages""" self._hooks.join(self, connection, event)
def on_nicknameinuse(self, connection, event): """Changes the nickname if necessary""" print("Nick in use") if not self.__config.NICKSERV_PASSWORD: connection.nick(connection.get_nickname() + "_") else: print("Ghosting nick") #connection.nick(self.__config.NICK) msg = "GHOST {} {}".format(self.__config.NICK, self.__config.NICKSERV_PASSWORD) connection.privmsg("NICKSERV", msg)
def on_kick(self, connection, event): """Kicked from a channel""" if len(event.arguments) < 1: return nick = event.arguments[0] if nick != connection.get_nickname(): return channel = event.target kicker = event.source logger.info(u"kicked from channel %s by %s" % (channel, kicker)) self.connection.notice(kicker, u"That was mean, I'm just a bot you know") self._chans.leave(channel)
def on_kick(self, connection, raw_msg): self.call_plugins_methods(connection, raw_msg, 'on_kick') if raw_msg.arguments[0] != connection.get_nickname(): return self.logger.warning('kicked by %s' % raw_msg.source.nick) i = None while i != 'Y' and i != 'y' and i != 'N' and i != 'n': print('rejoin to %s? [Y/n]' % self.channel, end=' ') i = input() if i == 'Y' or i == 'y': self.join_channel(connection) else: self.die()
def on_kick(self, connection: ServerConnection, event: Event): channel = self._lowercase(event.target) nick = self._lowercase(event.arguments[0]) _logger.debug('kicked %s from %s', nick, channel) ignore_kick = self._config.getboolean("privileges", "ignore_kick", fallback=False) if not ignore_kick: self._admin_auth.remove(nick) self._priv_tracker.revoke(channel, nick) self._hostmask_map.remove(nick) if nick == self._lowercase(connection.get_nickname()): self._channel_tracker.remove(channel)
def on_nicknameinuse(self, connection, event): """Changes the nickname if necessary""" connection.nick(connection.get_nickname() + "_")