aboutsummaryrefslogtreecommitdiff
path: root/modules/nickserv.py
diff options
context:
space:
mode:
authorGravatar jesopo2018-07-15 23:56:06 +0100
committerGravatar jesopo2018-07-15 23:56:06 +0100
commit2012a388dac6cbb31945ff04d31a11da19f6e4b0 (patch)
tree4d5a8f5f7c8f87aa777ad828c957aeace7126e4e /modules/nickserv.py
parentfix print_activity still using old EventManager priority location (diff)
signature
move sasl logic to it's own module
Diffstat (limited to 'modules/nickserv.py')
-rw-r--r--modules/nickserv.py41
1 files changed, 3 insertions, 38 deletions
diff --git a/modules/nickserv.py b/modules/nickserv.py
index 8e811c65..7abd67e3 100644
--- a/modules/nickserv.py
+++ b/modules/nickserv.py
@@ -1,27 +1,19 @@
import base64
+import EventManager
class Module(object):
def __init__(self, bot):
- bot.events.on("new").on("server").hook(self.on_new_server)
bot.events.on("received").on("numeric").on("001"
- ).hook(self.on_connect)
+ ).hook(self.on_connect, priority=EventManager.PRIORITY_URGENT)
bot.events.on("received").on("command").on("setnickserv"
).hook(self.set_nickserv, min_args=1, permission="setnickserv",
help="Set bot's nickserv password", usage="<password>",
private_only=True)
- bot.events.on("received").on("cap").hook(self.on_cap)
- bot.events.on("received").on("authenticate").hook(self.on_authenticate)
- for code in ["902", "903", "904", "905", "906", "907", "908"]:
- bot.events.on("received").on("numeric").on(code).hook(self.on_90x)
-
- def on_new_server(self, event):
- event["server"].attempted_auth = False
- event["server"].sasl_success = False
def on_connect(self, event):
nickserv_password = event["server"].get_setting(
"nickserv-password")
- if nickserv_password and not event["server"].sasl_success:
+ if nickserv_password:
event["server"].attempted_auth = True
event["server"].send_message("nickserv",
"identify %s" % nickserv_password)
@@ -30,30 +22,3 @@ class Module(object):
nickserv_password = event["args"]
event["server"].set_setting("nickserv-password", nickserv_password)
event["stdout"].write("Nickserv password saved")
-
- def on_cap(self, event):
- if event["subcommand"] == "NAK":
- event["server"].send_capability_end()
- elif event["subcommand"] == "ACK":
- if not "sasl" in event["capabilities"]:
- event["server"].send_capability_end()
- else:
- event["server"].send_authenticate("PLAIN")
- else:
- pass
-
- def on_authenticate(self, event):
- if event["message"] != "+":
- event["server"].send_authenticate("*")
- else:
- nick = event["server"].original_nickname
- password = event["server"].get_setting("nickserv-password")
- event["server"].attempted_auth = True
- event["server"].send_authenticate(
- base64.b64encode(("%s\0%s\0%s" % (nick, nick, password)).encode("utf8")).decode("utf8")
- )
-
- def on_90x(self, event):
- if event["number"]=="903":
- event["server"].sasl_success = True
- event["server"].send_capability_end()