add basic bot framework
parent
6f0e4d4564
commit
10115d9841
|
@ -0,0 +1,46 @@
|
|||
#!/usr/bin/env python3
|
||||
import imp
|
||||
import os
|
||||
import sys
|
||||
|
||||
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()
|
||||
|
Loading…
Reference in New Issue