annotate t/DCPUToolBot-master/dcpubot.py @ 2781:8a8906c68e49

<ThatOtherPerson> t/DCPUToolBot-master/dcpubot.py
author HackBot
date Mon, 22 Apr 2013 16:12:13 +0000
parents 1b37a020ba4b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2777
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
1 #!/usr/bin/env python
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
2 import irc
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
3 import config
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
4 import subprocess
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
5 import dcpu
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
6 import random
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
7
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
8 irc.connect(config.host, config.port, config.nick, config.password)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
9 irc.join(config.chan)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
10
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
11 def onAssemble(nick, user, host, chan, matches):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
12 print "Assembling"
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
13 print matches.group()
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
14 print matches.group(1)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
15 binary, errors = dcpu.assemble(matches.group(1))
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
16
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
17 if binary:
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
18 irc.privmsg(nick, chan, ', '.join(binary))
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
19 if errors:
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
20 irc.privmsg(nick, chan, errors)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
21
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
22 irc.onPrivmsg(">>>(.+)", onAssemble)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
23
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
24 def onDisassemble(nick, user, host, chan, matches):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
25 print "Disassembling"
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
26 print matches.group()
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
27 print matches.group(1)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
28 code = dcpu.disassemble(matches.group(1))
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
29
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
30 if code:
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
31 irc.privmsg(nick, chan, code)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
32
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
33 irc.onPrivmsg("<<<(.+)", onDisassemble)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
34
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
35 def onExecute(nick, user, host, chan, matches):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
36 executed, errors = dcpu.execute(matches.group(1))
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
37
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
38 if executed:
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
39 irc.privmsg(nick, chan, executed)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
40 if errors:
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
41 irc.privmsg(nick, chan, errors)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
42
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
43 irc.onPrivmsg(">>([^>].+)", onExecute)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
44
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
45 def onHex(nick, user, host, chan, matches):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
46 converted = 0
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
47
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
48 if matches.group(1) == "0b":
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
49 converted = hex(int(matches.group(2), 2))
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
50 else:
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
51 converted = hex(int(matches.group(2)))
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
52
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
53 irc.privmsg(nick, chan, converted)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
54
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
55 irc.onPrivmsg(r"^hex\((0b)?(\d+)\)", onHex)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
56
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
57 def onDec(nick, user, host, chan, matches):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
58 converted = 0
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
59
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
60 if matches.group(1) == "0b":
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
61 converted = str(int(matches.group(2), 2))
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
62 elif matches.group(1) == "0x":
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
63 converted = str(int(matches.group(2), 16))
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
64 else:
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
65 converted = str(int(matches.group(2)))
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
66
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
67 irc.privmsg(nick, chan, converted)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
68
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
69 irc.onPrivmsg(r"^dec\((0b|0x)?([0-9a-fA-F]+)\)", onDec)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
70
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
71 def onBin(nick, user, host, chan, matches):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
72 converted = 0
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
73
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
74 if matches.group(1) == "0x":
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
75 converted = bin(int(matches.group(2), 16))
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
76 else:
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
77 converted = bin(int(matches.group(2), 16))
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
78
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
79 irc.privmsg(nick, chan, converted)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
80
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
81 irc.onPrivmsg(r"^bin\((0x)?([0-9a-fA-F]+)\)", onBin)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
82
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
83 def onStinks(nick, user, host, chan, matches):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
84 messages = ["So do you!!!", "Shut up.", "You smell even worse.", "You really shouldn't be talking."]
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
85 irc.privmsg(nick, chan, choice(messages))
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
86
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
87 irc.onPrivmsg(".*" + config.nick + r":?( ?is| you)? stink(ing|s)?.*", onStinks)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
88
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
89 def onReload(nick, user, host, chan, matches):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
90 if(host == "unaffiliated/thatotherpersony"):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
91 subprocess.call(["git", "pull", "origin", "master"]);
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
92 irc.privmsg(nick, chan, "Pulled latest changes from GitHub. Restarting.")
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
93 exit()
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
94 elif(host == "unaffiliated/quu"):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
95 irc.privmsg(nick, chan, "wat. Quu. derp.\nReally?\nInitializing spambot mode. >:D")
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
96 else:
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
97 irc.privmsg(nick, chan, "No. I don't wanna!")
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
98
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
99 irc.onMsgToMe(".*reload.*", onReload)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
100
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
101 def onTest(nick, user, host, chan, matches):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
102 irc.privmsg(nick, chan, "lolololol wat derp. ping Quu! ping mrout! Why not!")
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
103
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
104 irc.onMsgToMe(".*test.*", onTest)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
105
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
106 def onRudeness(nick, user, host, chan, matches):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
107 irc.privmsg(nick, chan, "Why don't you?")
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
108
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
109 irc.onMsgToMe(".*stfu.*", onRudeness)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
110
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
111 def onHello(nick, user, host, chan, matches):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
112 irc.privmsg(nick, chan, "Howdy!")
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
113
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
114 irc.onMsgToMe(".*hello.*", onHello)
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
115
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
116 def onSup(nick, user, host, chan, matches):
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
117 irc.privmsg(nick, chan, "I'm fine. How about you?")
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
118
1b37a020ba4b <ThatOtherPerson> cp -r d/DCPUToolBot-master t
HackBot
parents:
diff changeset
119 irc.onMsgToMe(".*(how.*you|sup|what.*up).*", onSup)