From a92ea598e10314cdcf2eb210567a981ca14b1b97 Mon Sep 17 00:00:00 2001 From: Frisk Date: Mon, 22 Jul 2024 01:22:27 +0200 Subject: [PATCH] Fixes and changed implementation of wiki dump functionality --- src/discord/message.py | 2 +- src/domain.py | 3 +-- src/domain_manager.py | 7 ++++--- src/wiki.py | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/discord/message.py b/src/discord/message.py index bdc17ce..d6159e5 100644 --- a/src/discord/message.py +++ b/src/discord/message.py @@ -218,7 +218,7 @@ class StackedDiscordMessage(): "length": self.length, "message_type": self.message_type, "discord_callback_message_id": self.discord_callback_message_id, - "webhook": self.webhook[-3:] if self.webhook else None, + "webhook": self.webhook.split("/")[0] if self.webhook else None, "messages": [message.json() for message in self.message_list] } return dict_obj diff --git a/src/domain.py b/src/domain.py index d66414c..e024a3c 100644 --- a/src/domain.py +++ b/src/domain.py @@ -150,7 +150,7 @@ class Domain: else: affected = set() for wiki_url, wiki_obj in self.wikis.items(): - if all([x for x in wiki_obj.statistics.filter_by_time(60*60) if x.type in (LogType.CONNECTION_ERROR, LogType.SCAN_REASON, LogType.HTTP_ERROR)]): + if all([x.type in (LogType.CONNECTION_ERROR, LogType.MEDIAWIKI_ERROR, LogType.HTTP_ERROR) for x in wiki_obj.statistics.filter_by_time(60*60)]): affected.add(wiki_url) if affected: return affected @@ -244,7 +244,6 @@ class Domain: discord_message["description"] = "Affected wikis: {}".format(", ".join(wikis)) + "\n" + str(ex) discord_message["description"] = discord_message["description"][0:2000] # discord_message.add_field("Failure count", str(self.failures)) - discord_message.finish_embed_message() header = settings["header"] header['Content-Type'] = 'application/json' header['X-RateLimit-Precision'] = "millisecond" diff --git a/src/domain_manager.py b/src/domain_manager.py index e0e2c9d..215e630 100644 --- a/src/domain_manager.py +++ b/src/domain_manager.py @@ -99,11 +99,12 @@ class DomainManager: json_object["queued_messages"].append({"metadata": str(message.discord_message.metadata), "url": message.wiki.script_url}) await connection.execute("select pg_notify('debugresponse', 'DUMP ' || $1);", json.dumps(json_object)) elif split_payload[1] == "SITE": - domain = self.return_domain(self.get_domain(split_payload[2])) - wiki = domain.get_wiki(split_payload[2]) + req_id = split_payload[2] + domain = self.return_domain(self.get_domain(split_payload[3])) + wiki = domain.get_wiki(split_payload[3]) if wiki is not None: await connection.execute("select pg_notify('debugresponse', 'SITE ' || $1 || ' ' || $2);", - wiki.script_url, json.dumps(wiki.json())) + req_id, json.dumps(wiki.json())) else: raise ValueError("Unknown pub/sub command! Payload: {}".format(payload)) diff --git a/src/wiki.py b/src/wiki.py index e2bec53..bf00f37 100644 --- a/src/wiki.py +++ b/src/wiki.py @@ -70,8 +70,8 @@ class Wiki: "wiki_url": self.script_url, "tags": self.tags, "first_fetch_done": self.first_fetch_done, - "rc_targets": {str(x): [webhook_url[-3:] for webhook_url in y] for x, y in self.rc_targets.items()} if self.rc_targets else None, - "discussion_targets": {str(x): [webhook_url[-3:] for webhook_url in y] for x, y in self.discussion_targets.items()} if self.discussion_targets else None, + "rc_targets": {str(x): [webhook_url.split("/")[0] for webhook_url in y] for x, y in self.rc_targets.items()} if self.rc_targets else None, + "discussion_targets": {str(x): [webhook_url.split("/")[0] for webhook_url in y] for x, y in self.discussion_targets.items()} if self.discussion_targets else None, "namespaces": self.namespaces, "logs": self.statistics.logs, "last_checked_rc": self.statistics.last_checked_rc,