From d43e96f7e7ea7fd7add6eae1367ceefbed82dd14 Mon Sep 17 00:00:00 2001 From: jesopo Date: Mon, 11 Nov 2019 12:20:27 +0000 Subject: add bot-wide option to colorize nicknames in formatted output --- modules/format_activity.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'modules/format_activity.py') diff --git a/modules/format_activity.py b/modules/format_activity.py index 3bf921b4..6ed6b8cc 100644 --- a/modules/format_activity.py +++ b/modules/format_activity.py @@ -1,7 +1,14 @@ import datetime from src import EventManager, ModuleManager, utils +@utils.export("botset", utils.BoolSetting("colorize-nicknames", + "Whether or not to format nicknames with calculated colors")) class Module(ModuleManager.BaseModule): + def _colorize(self, nickname): + if self.bot.get_setting("colorize-nicknames", False): + return utils.irc.hash_colorize(nickname) + return nickname + def _event(self, type, server, line, context, minimal=None, channel=None, user=None, **kwargs): self.events.on("formatted").on(type).call(server=server, @@ -21,6 +28,8 @@ class Module(ModuleManager.BaseModule): if channel: symbols = self._mode_symbols(user, channel, event["server"]) + nickname = self._colorize(nickname) + if event["action"]: return "* %s%s %s" % (symbols, nickname, event["message"]) else: @@ -43,16 +52,17 @@ class Module(ModuleManager.BaseModule): event["channel"].name, channel=event["channel"], user=user, parsed_line=event["line"]) - def _on_notice(self, event, sender): - return "(notice) <%s> %s" % (sender, event["message"]) - def _channel_notice(self, event, sender, channel): - line = self._on_notice(event, sender) + def _on_notice(self, event, nickname): + nickname = self._colorize(nickname) + return "(notice) <%s> %s" % (nickname, event["message"]) + def _channel_notice(self, event, nickname, channel): + line = self._on_notice(event, nickname) self._event("notice.channel", event["server"], line, event["channel"].name, parsed_line=event["line"], channel=channel, user=event["user"]) - def _private_notice(self, event, sender, target): - line = self._on_notice(event, sender) + def _private_notice(self, event, nickname, target): + line = self._on_notice(event, nickname) self._event("notice.private", event["server"], line, None, parsed_line=event["line"], user=event["user"]) -- cgit v1.3.1-10-gc9f91