1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#!/usr/bin/python -i
import os, re, time, logger, signal, figlet, cannon, wallet, autoexec, sys, irc, bouncer, readline
readline.parse_and_bind("tab: complete")
networks={}
def quit(quitmsg="Goodbye!"):
global networks
modules=[]
for IRC in networks.values():
if IRC.isAlive():
IRC.quit(quitmsg)
while any([IRC.isAlive() for IRC in networks.values()]):
time.sleep(0.25)
for IRC in networks.values():
for module in list(IRC.modules):
IRC.rmModule(module)
if module not in modules:
modules.append(module)
for module in modules:
if "stop" in dir(module) and callable(module.stop) and "isAlive" in dir(module) and callable(module.isAlive) and module.isAlive():
try:
module.stop()
except:
pass
print "Goodbye!"
sys.exit()
termcaught=False
def sigterm(signum, frame):
global termcaught
if not termcaught:
termcaught=True
quit("Caught SIGTERM")
signal.signal(signal.SIGTERM, sigterm)
logroot=os.path.join(os.environ["HOME"], "IRC")
insomnialog=open(os.path.join(logroot, "insomnia.log"), "a")
InsomniaIRC=networks["InsomniaIRC"]=irc.Connection(server="irc.insomniairc.net", ipv6=False, ssl=True, log=insomnialog)
ax=autoexec.Autoexec()
log=logger.Logger(logroot)
BNC=bouncer.Bouncer("", 16698, ssl=True, certfile="cert.pem", keyfile="key.pem")
for (label, IRC) in networks.items():
IRC.addModule(log, label=label)
### The password is 'hunter2'
IRC.addModule(BNC, label=label, passwd="6b97ed68d14eb3f1aa959ce5d49c7dc612e1eb1dafd73b1e705847483fd6a6c809f2ceb4e8df6ff9984c6298ff0285cace6614bf8daa9f0070101b6c89899e22", hashtype="sha512")
InsomniaIRC.addModule(ax, label="InsomniaIRC", autojoin=["#chat"])
for (label, IRC) in networks.items():
IRC.start()
|