From 55197c410ebc673545c162f0dffe381369a451ba Mon Sep 17 00:00:00 2001 From: Brian Sherson Date: Tue, 27 Aug 2013 21:36:29 -0700 Subject: --- startirc.py | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 startirc.py (limited to 'startirc.py') 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() -- cgit v1.2.3