Mercurial > repo
diff a/d/DCPUToolBot-master/dcpubot.py @ 2768:730e97409041
<ThatOtherPerson> mv d a
author | HackBot |
---|---|
date | Mon, 22 Apr 2013 15:44:16 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/a/d/DCPUToolBot-master/dcpubot.py Mon Apr 22 15:44:16 2013 +0000 @@ -0,0 +1,119 @@ +#!/usr/bin/env python +import irc +import config +import subprocess +import dcpu +import random + +irc.connect(config.host, config.port, config.nick, config.password) +irc.join(config.chan) + +def onAssemble(nick, user, host, chan, matches): + print "Assembling" + print matches.group() + print matches.group(1) + binary, errors = dcpu.assemble(matches.group(1)) + + if binary: + irc.privmsg(nick, chan, ', '.join(binary)) + if errors: + irc.privmsg(nick, chan, errors) + +irc.onPrivmsg(">>>(.+)", onAssemble) + +def onDisassemble(nick, user, host, chan, matches): + print "Disassembling" + print matches.group() + print matches.group(1) + code = dcpu.disassemble(matches.group(1)) + + if code: + irc.privmsg(nick, chan, code) + +irc.onPrivmsg("<<<(.+)", onDisassemble) + +def onExecute(nick, user, host, chan, matches): + executed, errors = dcpu.execute(matches.group(1)) + + if executed: + irc.privmsg(nick, chan, executed) + if errors: + irc.privmsg(nick, chan, errors) + +irc.onPrivmsg(">>([^>].+)", onExecute) + +def onHex(nick, user, host, chan, matches): + converted = 0 + + if matches.group(1) == "0b": + converted = hex(int(matches.group(2), 2)) + else: + converted = hex(int(matches.group(2))) + + irc.privmsg(nick, chan, converted) + +irc.onPrivmsg(r"^hex\((0b)?(\d+)\)", onHex) + +def onDec(nick, user, host, chan, matches): + converted = 0 + + if matches.group(1) == "0b": + converted = str(int(matches.group(2), 2)) + elif matches.group(1) == "0x": + converted = str(int(matches.group(2), 16)) + else: + converted = str(int(matches.group(2))) + + irc.privmsg(nick, chan, converted) + +irc.onPrivmsg(r"^dec\((0b|0x)?([0-9a-fA-F]+)\)", onDec) + +def onBin(nick, user, host, chan, matches): + converted = 0 + + if matches.group(1) == "0x": + converted = bin(int(matches.group(2), 16)) + else: + converted = bin(int(matches.group(2), 16)) + + irc.privmsg(nick, chan, converted) + +irc.onPrivmsg(r"^bin\((0x)?([0-9a-fA-F]+)\)", onBin) + +def onStinks(nick, user, host, chan, matches): + messages = ["So do you!!!", "Shut up.", "You smell even worse.", "You really shouldn't be talking."] + irc.privmsg(nick, chan, choice(messages)) + +irc.onPrivmsg(".*" + config.nick + r":?( ?is| you)? stink(ing|s)?.*", onStinks) + +def onReload(nick, user, host, chan, matches): + if(host == "unaffiliated/thatotherpersony"): + subprocess.call(["git", "pull", "origin", "master"]); + irc.privmsg(nick, chan, "Pulled latest changes from GitHub. Restarting.") + exit() + elif(host == "unaffiliated/quu"): + irc.privmsg(nick, chan, "wat. Quu. derp.\nReally?\nInitializing spambot mode. >:D") + else: + irc.privmsg(nick, chan, "No. I don't wanna!") + +irc.onMsgToMe(".*reload.*", onReload) + +def onTest(nick, user, host, chan, matches): + irc.privmsg(nick, chan, "lolololol wat derp. ping Quu! ping mrout! Why not!") + +irc.onMsgToMe(".*test.*", onTest) + +def onRudeness(nick, user, host, chan, matches): + irc.privmsg(nick, chan, "Why don't you?") + +irc.onMsgToMe(".*stfu.*", onRudeness) + +def onHello(nick, user, host, chan, matches): + irc.privmsg(nick, chan, "Howdy!") + +irc.onMsgToMe(".*hello.*", onHello) + +def onSup(nick, user, host, chan, matches): + irc.privmsg(nick, chan, "I'm fine. How about you?") + +irc.onMsgToMe(".*(how.*you|sup|what.*up).*", onSup)