diff options
Diffstat (limited to 'autoexec.py')
-rw-r--r-- | autoexec.py | 55 |
1 files changed, 27 insertions, 28 deletions
diff --git a/autoexec.py b/autoexec.py index a1fa52b..978501e 100644 --- a/autoexec.py +++ b/autoexec.py @@ -1,12 +1,13 @@ #!/usr/bin/python import re +import irc class Autoexec(object): def __init__(self): self.networks = {} - def onModuleAdd(self, IRC, label, onconnect=None, onregister=None, autojoin=None, usermodes=None, wallet=None, opername=None, opermodes=None, snomasks=None, operexec=None, operjoin=None): + def onAddonAdd(self, IRC, label, onconnect=None, onregister=None, autojoin=None, usermodes=None, wallet=None, opername=None, opermodes=None, snomasks=None, operexec=None, operjoin=None): labels = [v[0] for v in self.networks.values()] if label in labels: raise BaseException("Label already exists") @@ -14,7 +15,7 @@ class Autoexec(object): raise BaseException("Network already exists") self.networks[IRC] = (label, onconnect, onregister, autojoin, usermodes, wallet, opername, opermodes, snomasks, operexec, operjoin) - def onModuleRem(self, IRC): + def onAddonRem(self, IRC): del self.networks[IRC] def onConnect(self, IRC): @@ -36,30 +37,24 @@ class Autoexec(object): if autojoin: IRC.raw("JOIN %s"%(",".join(autojoin)), origin=self) - def onRecv(self, IRC, line, data): - if data is None: - return + def on381(self, IRC, line, origin, target, params, extinfo): (label, onconnect, onregister, autojoin, usermodes, wallet, opername, opermodes, snomasks, operexec, operjoin) = self.networks[IRC] - (origin, ident, host, cmd, target, params, extinfo) = data - if cmd == "381" and opermodes: - if operexec: - for line in operexec: - IRC.raw(line, origin=self) - if opermodes: - IRC.raw("MODE %s %s"%(IRC.identity.nick, - opermodes), origin=self) - if snomasks: - IRC.raw("MODE %s +s %s"%( - IRC.identity.nick, snomasks), origin=self) - if operjoin: - IRC.raw("JOIN %s"%(",".join(operjoin)), origin=self) + if operexec: + for line in operexec: + IRC.raw(line, origin=self) + if opermodes: + IRC.raw("MODE %s %s"%(IRC.identity.nick, opermodes), origin=self) + if snomasks: + IRC.raw("MODE %s +s %s"%(IRC.identity.nick, snomasks), origin=self) + if operjoin: + IRC.raw("JOIN %s"%(",".join(operjoin)), origin=self) class NickServ(object): def __init__(self): self.networks = {} - def onModuleAdd(self, IRC, label, wallet=None, autojoin=None): + def onAddonAdd(self, IRC, label, wallet=None, autojoin=None): labels = [v[0] for v in self.networks.values()] #print labels if label in labels: @@ -68,16 +63,20 @@ class NickServ(object): raise BaseException("Network already exists") self.networks[IRC] = (label, wallet, autojoin) - def onModuleRem(self, IRC): + def onAddonRem(self, IRC): del self.networks[IRC] - def onRecv(self, IRC, line, data): - if data is None: - return - (origin, ident, host, cmd, target, params, extinfo) = data + def onPrivNotice(self, IRC, origin, msg): + label, wallet, autojoin = self.networks[IRC] + if type(origin) == irc.User and origin.nick.lower() == "nickserv": + if re.match("This nickname is registered( and protected)?", msg) and wallet and "%s/NickServ/%s"%(label, IRC.identity.nick.lower()) in wallet.keys(): + origin.msg("identify %s" % wallet["%s/NickServ/%s" % + (label, IRC.identity.nick.lower())]) + if re.match("You are now identified", msg): + if autojoin: + IRC.raw("JOIN %s"%(",".join(autojoin)), origin=self) + + def on900(self, IRC, line, origin, target, params, extinfo): label, wallet, autojoin = self.networks[IRC] - if target == IRC.identity.nick and origin == "NickServ" and re.match("This nickname is registered( and protected)?.", extinfo) and wallet and "%s/NickServ/%s"%(label, target.lower()) in wallet.keys(): - IRC.user("NickServ").msg("identify %s" % wallet[ - "%s/NickServ/%s"%(label, target.lower())]) - if cmd == "900" and autojoin: + if autojoin: IRC.raw("JOIN %s"%(",".join(autojoin)), origin=self) |