diff --git a/modules/commands/__init__.py b/modules/commands/__init__.py index 6e7258fd..bfea9588 100644 --- a/modules/commands/__init__.py +++ b/modules/commands/__init__.py @@ -124,7 +124,7 @@ class Module(ModuleManager.BaseModule): return hook, args_split def command(self, server, target, is_channel, user, command, args_split, - tags, statusmsg, hook, **kwargs): + tags, target_str, hook, **kwargs): if self._is_ignored(server, user, command): return False @@ -137,8 +137,8 @@ class Module(ModuleManager.BaseModule): if msgid: send_tags["+draft/reply"] = msgid - stdout = outs.StdOut(server, module_name, target, send_tags, statusmsg) - stderr = outs.StdErr(server, module_name, target, send_tags, statusmsg) + stdout = outs.StdOut(server, module_name, target, target_str, send_tags) + stderr = outs.StdErr(server, module_name, target, target_str, send_tags) command_method = self._command_method(target, server) if hook.kwargs.get("remove_empty", True): @@ -235,7 +235,7 @@ class Module(ModuleManager.BaseModule): if hook: self.command(event["server"], event["channel"], True, event["user"], command, args_split, event["tags"], - "".join(event["statusmsg"]), hook) + event["target_str"], hook) event["channel"].buffer.skip_next() else: regex_hook = self.events.on("command.regex").get_hooks() @@ -250,7 +250,7 @@ class Module(ModuleManager.BaseModule): command = hook.get_kwarg("command", "") res = self.command(event["server"], event["channel"], True, event["user"], command, "", event["tags"], - "".join(event["statusmsg"]), hook, match=match, + event["target_str"], hook, match=match, message=event["message"]) if res: @@ -267,7 +267,8 @@ class Module(ModuleManager.BaseModule): if hook: self.command(event["server"], event["user"], False, - event["user"], command, args_split, event["tags"], "", hook) + event["user"], command, args_split, event["tags"], + event["target_str"], hook) event["user"].buffer.skip_next() def _get_help(self, hook): @@ -461,7 +462,7 @@ class Module(ModuleManager.BaseModule): @utils.hook("send.stdout") def send_stdout(self, event): stdout = outs.StdOut(event["server"], event["module_name"], - event["target"], {}, event.get("statusmsg", "")) + event["target"], {}, event.get("target_str", "")) if event.get("hide_prefix", False): stdout.hide_prefix() @@ -473,7 +474,7 @@ class Module(ModuleManager.BaseModule): @utils.hook("send.stderr") def send_stderr(self, event): stderr = outs.StdErr(event["server"], event["module_name"], - event["target"], {}, event.get("statusmsg", "")) + event["target"], {}, event.get("target_str", "")) if event.get("hide_prefix", False): stderr.hide_prefix() diff --git a/modules/commands/outs.py b/modules/commands/outs.py index acd67a7f..7df60436 100644 --- a/modules/commands/outs.py +++ b/modules/commands/outs.py @@ -5,15 +5,15 @@ STR_MORE = " (more...)" STR_CONTINUED = "(...continued) " class Out(object): - def __init__(self, server, module_name, target, tags, statusmsg): + def __init__(self, server, module_name, target, target_str, tags): self.server = server self.module_name = module_name self._hide_prefix = False self.target = target + self._target_str = target_str self._text = "" self.written = False self._tags = tags - self._statusmsg = statusmsg def write(self, text): self._text += text @@ -26,13 +26,12 @@ class Out(object): if not self._hide_prefix: prefix = utils.consts.RESET + "[%s] " % self.prefix() - target_str = "%s%s" % (self._statusmsg, self.target.name) full_text = "%s%s" % (prefix, self._text) if method == "PRIVMSG": - line = self.server.send_message(target_str, full_text, + line = self.server.send_message(self._target_str, full_text, tags=self._tags) elif method == "NOTICE": - line = self.server.send_notice(target_str, full_text, + line = self.server.send_notice(self._target_str, full_text, tags=self._tags) else: raise ValueError("Unknown command method '%s'" % method) diff --git a/modules/line_handler/message.py b/modules/line_handler/message.py index 3e54e5b8..2f86ac40 100644 --- a/modules/line_handler/message.py +++ b/modules/line_handler/message.py @@ -23,15 +23,12 @@ def privmsg(events, event): user = event["server"].get_user(event["prefix"].nickname) message = event["args"][1] - target = event["args"][0] + target_str = event["args"][0] # strip prefix_symbols from the start of target, for when people use # e.g. 'PRIVMSG +#channel :hi' which would send a message to only # voiced-or-above users - statusmsg = [] - while target[0] in event["server"].prefix_symbols.keys(): - statusmsg.append(target[0]) - target = target[1:] + target = target_str.lstrip("".join(event["server"].prefix_symbols.keys())) channel = None if target[0] in event["server"].channel_types: @@ -57,7 +54,7 @@ def privmsg(events, event): kwargs = {"message": message, "message_split": message.split(" "), "server": event["server"], "tags": event["tags"], - "action": action} + "action": action, "target_str": target_str} direction = "send" if from_self else "received" context = "channel" if channel else "private" @@ -68,7 +65,7 @@ def privmsg(events, event): user_nickname = None if from_self else user.nickname if channel: - hook.call(user=user, channel=channel, statusmsg=statusmsg, **kwargs) + hook.call(user=user, channel=channel, **kwargs) channel.buffer.add_message(user_nickname, message, action, event["tags"], user==None) elif event["server"].is_own_nickname(target):