diff options
| author | 2018-07-14 09:50:12 +0100 | |
|---|---|---|
| committer | 2018-07-14 09:50:12 +0100 | |
| commit | 718da307289ffaac90daf3ca61cfcd470972d15c (patch) | |
| tree | 3d4ddd730d45ead76f2065a72b02dfd40f28068c | |
| parent | Allow translate source/target languages to be more than 2 chars (diff) | |
| signature | ||
skip !more's out/err, added a way to split messages from their prefixes for
logging purposes
| -rw-r--r-- | IRCChannel.py | 4 | ||||
| -rw-r--r-- | IRCServer.py | 14 | ||||
| -rw-r--r-- | IRCUser.py | 4 | ||||
| -rw-r--r-- | modules/commands.py | 15 |
4 files changed, 21 insertions, 16 deletions
diff --git a/IRCChannel.py b/IRCChannel.py index 7863c2b2..51fb8f41 100644 --- a/IRCChannel.py +++ b/IRCChannel.py @@ -75,8 +75,8 @@ class Channel(object): self.bot.database.del_channel_setting(self.server.id, self.name, setting) - def send_message(self, text): - self.server.send_message(self.name, text) + def send_message(self, text, prefix=None): + self.server.send_message(self.name, text, prefix=prefix) def send_mode(self, mode=None, target=None): self.server.send_mode(self.name, mode, target) def send_kick(self, target, reason=None): diff --git a/IRCServer.py b/IRCServer.py index a14dd258..31bba9da 100644 --- a/IRCServer.py +++ b/IRCServer.py @@ -233,12 +233,16 @@ class Server(object): "" if reason == None else " %s" % reason)) def send_quit(self, reason="Leaving"): self.send("QUIT :%s" % reason) - def send_message(self, target, message): - self.send("PRIVMSG %s :%s" % (target, message)) - action = message.startswith("\01ACTION ") and message.endswith( - "\01") + def send_message(self, target, message, prefix=None): + full_message = message if not prefix else prefix+message + + self.send("PRIVMSG %s :%s" % (target, full_message)) + action = full_message.startswith("\01ACTION " + ) and full_message.endswith("\01") + if action: - message = message.split("\01ACTION ", 1)[1][:-1] + message = full_message.split("\01ACTION ", 1)[1][:-1] + if self.has_channel(target): self.get_channel(target).log.add_line(None, message, action, True) else: @@ -33,8 +33,8 @@ class User(object): self.bot.database.del_user_setting(self.server.id, self.nickname, setting) - def send_message(self, message): - self.server.send_message(self.nickname, message) + def send_message(self, message, prefix=None): + self.server.send_message(self.nickname, message, prefix=prefix) def send_notice(self, message): self.server.send_notice(self.nickname, message) def send_ctcp_response(self, command, args): diff --git a/modules/commands.py b/modules/commands.py index 5c5d8d1d..b6bdddcc 100644 --- a/modules/commands.py +++ b/modules/commands.py @@ -20,14 +20,14 @@ class Out(object): return self def send(self): if self.has_text(): - text = "[%s] %s" % (self.prefix(), self._text) + text = self._text text_encoded = text.encode("utf8") if len(text_encoded) > OUT_CUTOFF: text = "%s%s" % (text_encoded[:OUT_CUTOFF].decode("utf8" ).rstrip(), STR_MORE) self._text = "%s%s" % (STR_CONTINUED, text_encoded[OUT_CUTOFF: ].decode("utf8").lstrip()) - self.target.send_message(text) + self.target.send_message(text, prefix="[%s] " % self.prefix()) def set_prefix(self, prefix): self.module_name = prefix def has_text(self): @@ -55,7 +55,7 @@ class Module(object): help="Show usage help for commands", min_args=1, usage="<command>") bot.events.on("received").on("command").on("more").hook(self.more, - help="Get more output from the last command") + help="Get more output from the last command", skip_out=True) bot.events.on("postboot").on("configure").on( "channelset").call(setting="command-prefix", @@ -131,10 +131,11 @@ class Module(object): 1, user=user, server=server, target=target, log=log, args=args, args_split=args_split, stdout=stdout, stderr=stderr, command=command.lower(), is_channel=is_channel) - stdout.send() - target.last_stdout = stdout - stderr.send() - target.last_stderr = stderr + if not hook.kwargs.get("skip_out", False): + stdout.send() + stderr.send() + target.last_stdout = stdout + target.last_stderr = stderr log.skip_next() |
