summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Sherson <caretaker82@euclid.shersonb.net>2013-08-27 21:36:29 -0700
committerBrian Sherson <caretaker82@euclid.shersonb.net>2013-08-27 21:36:29 -0700
commit55197c410ebc673545c162f0dffe381369a451ba (patch)
tree832547f0c53aeb308f93fc49333f8a4ef32ef086
parent780b66f5e5b2c01c9c1453ad8992f26e9d38ee18 (diff)
-rwxr-xr-xstartirc.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/startirc.py b/startirc.py
new file mode 100755
index 0000000..00c53b0
--- /dev/null
+++ b/startirc.py
@@ -0,0 +1,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/PyIRC")
+
+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()