#!/usr/bin/env python3 import irc.bot irc.client.ServerConnection.buffer_class.errors = 'replace' class Bot(irc.bot.SingleServerIRCBot): def __init__(self, channels, nickname, server, port=6667, ops=[]): irc.bot.SingleServerIRCBot.__init__(self, [(server, port)], nickname, nickname) self.chanlist = channels self.bot_nick = nickname self.ops = ops def on_welcome(self, c, e): for channel in self.chanlist: c.join(channel) def on_pubmsg(self, c, e): self.process_command(c, e, e.arguments[0]) def on_privmsg(self, c, e): self.process_command(c, e, e.arguments[0]) def process_command(self, c, e, text): nick = e.source.nick if e.target == self.bot_nick: chan = nick else: chan = e.target cmd = text.split(' ')[0] if len(text.split(' ')) > 1: arg = ''.join([i + ' ' for i in text.split(' ')[1:]]).strip() else: arg = '' output = () if cmd == '!join' and nick in self.ops: c.join(arg) c.privmsg(chan, '{}: joined {}'.format(nick, arg)) elif cmd == '!quit' and nick in self.ops: c.quit("See y'all later!") quit()