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