aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2019-02-15 19:58:51 +0000
committerGravatar jesopo2019-02-15 19:58:51 +0000
commite51c653c1e280331b7d540f755fcd6b7aa7a5389 (patch)
tree7f37bee13cade0f04650164486b7f6f1b506c64a
parentActually grab resume timestamp before it's overwritten (resume.py) (diff)
signature
Parse and print when we send QUIT commands (line_handler, print_activity)
-rw-r--r--modules/line_handler.py23
-rw-r--r--modules/print_activity.py10
2 files changed, 24 insertions, 9 deletions
diff --git a/modules/line_handler.py b/modules/line_handler.py
index 8a017ed7..d9ddbaad 100644
--- a/modules/line_handler.py
+++ b/modules/line_handler.py
@@ -290,17 +290,26 @@ class Module(ModuleManager.BaseModule):
# a user has disconnected!
@utils.hook("raw.received.quit")
+ @utils.hook("raw.send.quit")
def quit(self, event):
+ nickname = None
+ if event["direction"] == Direction.RECV:
+ nickname = event["prefix"].nickname
reason = event["args"].get(0)
- if (not event["server"].is_own_nickname(event["prefix"].nickname) and
- not event["prefix"].hostmask == "*"):
- user = event["server"].get_user(event["prefix"].nickname)
- event["server"].remove_user(user)
- self._event(event, "quit", reason=reason, user=user,
- server=event["server"])
+ if event["direction"] == Direction.RECV:
+ nickname = event["prefix"].nickname
+ if (not event["server"].is_own_nickname(nickname) and
+ not event["prefix"].hostmask == "*"):
+ user = event["server"].get_user(nickname)
+ event["server"].remove_user(user)
+ self.events.on("received.quit").call(reason=reason, user=user,
+ server=event["server"])
+ else:
+ event["server"].disconnect()
else:
- event["server"].disconnect()
+ self.events.on("send.quit").call(reason=reason,
+ server=event["server"])
def _match_caps(self, capabilities):
return set(capabilities) & CAPABILITIES
diff --git a/modules/print_activity.py b/modules/print_activity.py
index c0618dd5..43a69533 100644
--- a/modules/print_activity.py
+++ b/modules/print_activity.py
@@ -89,10 +89,16 @@ class Module(ModuleManager.BaseModule):
self.print_line(event, "%s changed nickname to %s" % (
event["old_nickname"], event["new_nickname"]))
+ def _quit(self, event, nickname, reason):
+ self.print_line(event, "%s quit%s" % (nickname,
+ "" if not reason else " (%s)" % reason))
+
@utils.hook("received.quit")
def on_quit(self, event):
- self.print_line(event, "%s quit%s" % (event["user"].nickname,
- "" if not event["reason"] else " (%s)" % event["reason"]))
+ self._quit(event, event["user"].nickname, event["reason"])
+ @utils.hook("send.quit")
+ def send_quit(self, event):
+ self._quit(event, event["server"].nickname, event["reason"])
def _on_kick(self, event, nickname):
self.print_line(event, "%s kicked %s from %s%s" % (