From d919e5c3451413194600c7ec904c5fc0f1c0cd21 Mon Sep 17 00:00:00 2001 From: jesopo Date: Thu, 23 Jan 2020 13:10:45 +0000 Subject: [PATCH] simplify snotice detection, handle as normal NOTICE --- src/IRCServer.py | 2 +- src/core_modules/format_activity.py | 4 ++-- src/core_modules/line_handler/message.py | 30 ++++++++++-------------- 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/src/IRCServer.py b/src/IRCServer.py index c3460a4b..3549981b 100644 --- a/src/IRCServer.py +++ b/src/IRCServer.py @@ -17,7 +17,7 @@ class Server(IRCObject.Object): self.id = id self.alias = alias self.connection_params = connection_params - self.name = None # type: typing.Optional[str] + self.name = connection_params.hostname self.version = None # type: typing.Optional[str] self.connected = False diff --git a/src/core_modules/format_activity.py b/src/core_modules/format_activity.py index 1e012fc8..27783822 100644 --- a/src/core_modules/format_activity.py +++ b/src/core_modules/format_activity.py @@ -157,9 +157,9 @@ class Module(ModuleManager.BaseModule): @utils.hook("received.server-notice") def server_notice(self, event): - line = "-*{~SOURCE}- {MSG}" + line = "-*{~NAME}- {MSG}" self._event("server-notice", event["server"], line, None, - formatting={"MSG": event["message"], "~SOURCE": event["source"]}) + formatting={"MSG": event["message"], "~NAME": event["server"].name}) @utils.hook("received.invite") def invite(self, event): diff --git a/src/core_modules/line_handler/message.py b/src/core_modules/line_handler/message.py index 944c73a2..87b91c9e 100644 --- a/src/core_modules/line_handler/message.py +++ b/src/core_modules/line_handler/message.py @@ -1,5 +1,5 @@ import uuid -from src import IRCBuffer, utils +from src import IRCBuffer, IRCLine, utils def _from_self(server, source): if source: @@ -20,28 +20,22 @@ def message(events, event): if len(event["line"].args) > 1: message = event["line"].args[1] - if not from_self and ( - not event["line"].source or - not event["server"].name or - event["line"].source.hostmask == event["server"].name or - target_str == "*"): - if event["line"].source: + source = event["line"].source + if (not event["server"].nickname + or not source + or source.hostmask == event["server"].name): + if source: event["server"].name = event["line"].source.hostmask - - source = (event["server"].name or - event["server"].connection_params.hostname) - - events.on("received.server-notice").call(message=message, - message_split=message.split(" "), server=event["server"], - source=source) - return + else: + source = IRCLine.parse_hostmask(event["server"].name) + target_str = event["server"].nickname or "*" if from_self: user = event["server"].get_user(event["server"].nickname) else: - user = event["server"].get_user(event["line"].source.nickname, - username=event["line"].source.username, - hostname=event["line"].source.hostname) + user = event["server"].get_user(source.nickname, + username=source.username, + hostname=source.hostname) # strip prefix_symbols from the start of target, for when people use # e.g. 'PRIVMSG +#channel :hi' which would send a message to only