From 509fe0bfa1a1d8c6dccc95c07c8b39e0b05065d4 Mon Sep 17 00:00:00 2001 From: pixDeVl <93949551+pixDeVl@users.noreply.github.com> Date: Fri, 5 Jan 2024 20:20:16 -0500 Subject: [PATCH 1/4] Add support for logging messages from MirahezeRelay bot [Untested] --- modules/irc/files/logbot/adminlogbot.py | 8 ++++++-- modules/irc/templates/logbot/config.py | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/modules/irc/files/logbot/adminlogbot.py b/modules/irc/files/logbot/adminlogbot.py index 3c92186171..29125cc036 100644 --- a/modules/irc/files/logbot/adminlogbot.py +++ b/modules/irc/files/logbot/adminlogbot.py @@ -148,7 +148,11 @@ def on_pubmsg(self, con, event): if author in self.config.author_map: author = self.config.author_map[author] line = event.arguments[0] - + if rest == self.config.relay_host: + import re + parsed = re.search(r'<(?P[a-z0-9._]*)> (?P.*)', line) + discord_author = "@" + parsed.group('discord') + line = parsed.group('message') if (line.startswith(self.config.nick) or line.startswith("!%s" % self.config.nick) or line.lower() == "!log help"): @@ -246,7 +250,7 @@ def on_pubmsg(self, con, event): project = "" message = arr[1] try: - pageurl = adminlog.log(self.config, message, project, author) + pageurl = adminlog.log(self.config, message, project, discord_author or author) if author in self.config.title_map: title = self.config.title_map[author] else: diff --git a/modules/irc/templates/logbot/config.py b/modules/irc/templates/logbot/config.py index e1df49f769..d8ba2c0539 100644 --- a/modules/irc/templates/logbot/config.py +++ b/modules/irc/templates/logbot/config.py @@ -124,3 +124,6 @@ # Whether we "warn" or "error" if the user isn't in the trust list required_users_mode = "warn" + +# Host for to identify Relay bot for relayied log commands +relay_host = "~MirahezeR@miraheze/bot/MirahezeRelay" \ No newline at end of file From 167ed59e05eac0877ef5bd0dbb579315e0e7d9c7 Mon Sep 17 00:00:00 2001 From: pixDeVl <93949551+pixDeVl@users.noreply.github.com> Date: Fri, 5 Jan 2024 20:41:47 -0500 Subject: [PATCH 2/4] Fix author mapping in adminlogbot.py for discord authors --- modules/irc/files/logbot/adminlogbot.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/irc/files/logbot/adminlogbot.py b/modules/irc/files/logbot/adminlogbot.py index 29125cc036..0da0d03193 100644 --- a/modules/irc/files/logbot/adminlogbot.py +++ b/modules/irc/files/logbot/adminlogbot.py @@ -145,14 +145,16 @@ def on_pubmsg(self, con, event): return author, rest = event.source.split('!') cloak = self.get_cloak(event.source) - if author in self.config.author_map: - author = self.config.author_map[author] line = event.arguments[0] if rest == self.config.relay_host: import re parsed = re.search(r'<(?P[a-z0-9._]*)> (?P.*)', line) discord_author = "@" + parsed.group('discord') line = parsed.group('message') + if author in self.config.author_map: + author = self.config.author_map[author] + if discord_author in self.config.author_map: + discord_author = self.config.author_map[discord_author] if (line.startswith(self.config.nick) or line.startswith("!%s" % self.config.nick) or line.lower() == "!log help"): From 58b445d74efcadefe336abf32fd0d3b64d48bd56 Mon Sep 17 00:00:00 2001 From: pixDeVl <93949551+pixDeVl@users.noreply.github.com> Date: Sat, 6 Jan 2024 20:37:47 -0500 Subject: [PATCH 3/4] Fix issue with parsing discord author in replies --- modules/irc/files/logbot/adminlogbot.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/irc/files/logbot/adminlogbot.py b/modules/irc/files/logbot/adminlogbot.py index 0da0d03193..7a1e1aab33 100644 --- a/modules/irc/files/logbot/adminlogbot.py +++ b/modules/irc/files/logbot/adminlogbot.py @@ -148,9 +148,11 @@ def on_pubmsg(self, con, event): line = event.arguments[0] if rest == self.config.relay_host: import re - parsed = re.search(r'<(?P[a-z0-9._]*)> (?P.*)', line) - discord_author = "@" + parsed.group('discord') - line = parsed.group('message') + parsed = re.search(r'<(?P[ a-z0-9._]*)> (?P.*)', line) + if parsed.group('discord') is not None and parsed.group('message') is not None: + discord = parsed.group('discord').split()[0] + discord_author = "@" + discord + line = parsed.group('message') if author in self.config.author_map: author = self.config.author_map[author] if discord_author in self.config.author_map: From 20a57897811cbb9eaed02424df394c001bad5522 Mon Sep 17 00:00:00 2001 From: pixDeVl <93949551+pixDeVl@users.noreply.github.com> Date: Sat, 6 Jan 2024 20:42:27 -0500 Subject: [PATCH 4/4] Fixed parsing discord author in replied messages --- modules/irc/files/logbot/adminlogbot.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/irc/files/logbot/adminlogbot.py b/modules/irc/files/logbot/adminlogbot.py index 0da0d03193..7a1e1aab33 100644 --- a/modules/irc/files/logbot/adminlogbot.py +++ b/modules/irc/files/logbot/adminlogbot.py @@ -148,9 +148,11 @@ def on_pubmsg(self, con, event): line = event.arguments[0] if rest == self.config.relay_host: import re - parsed = re.search(r'<(?P[a-z0-9._]*)> (?P.*)', line) - discord_author = "@" + parsed.group('discord') - line = parsed.group('message') + parsed = re.search(r'<(?P[ a-z0-9._]*)> (?P.*)', line) + if parsed.group('discord') is not None and parsed.group('message') is not None: + discord = parsed.group('discord').split()[0] + discord_author = "@" + discord + line = parsed.group('message') if author in self.config.author_map: author = self.config.author_map[author] if discord_author in self.config.author_map: