You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.6 KiB

13 years ago
from oyoyo.client import IRCClient
from oyoyo.cmdhandler import DefaultCommandHandler, protected
13 years ago
from oyoyo.parse import parse_nick
import logging
import botconfig
import wolfgame
13 years ago
class WolfBotHandler(DefaultCommandHandler):
def __init__(self, client):
super().__init__(client)
def privmsg(self, rawnick, chan, msg):
13 years ago
if chan != botconfig.NICK: #not a PM
for x in wolfgame.COMMANDS.keys():
if msg.lower().startswith(x):
h = msg[len(x):]
if not h or h[0] == " " or not x:
wolfgame.COMMANDS[x](self.client, rawnick, chan, h.lstrip())
13 years ago
else:
for x in wolfgame.PM_COMMANDS.keys():
if msg.lower().startswith(x):
h = msg[len(x):]
if not h or h[0] == " " or not x:
wolfgame.PM_COMMANDS[x](self.client, rawnick, h.lstrip())
13 years ago
@protected
def __unhandled__(self, cmd, *args):
if cmd in wolfgame.HOOKS.keys():
largs = list(args)
for i,arg in enumerate(largs):
if arg: largs[i] = arg.decode('ascii')
13 years ago
wolfgame.HOOKS[cmd](self.client, *largs)
else:
logging.debug('unhandled command %s(%s)' % (cmd, args))
13 years ago
def main():
logging.basicConfig(level=logging.INFO)
cli = IRCClient(WolfBotHandler, host=botconfig.HOST, port=botconfig.PORT, nickname=botconfig.NICK,
connect_cb=wolfgame.connect_callback)
13 years ago
conn = cli.connect()
while True:
next(conn)
13 years ago
if __name__ == "__main__":
main()