From b3bcc959dbbed554d2da821767ed3574878edbc1 Mon Sep 17 00:00:00 2001 From: Frisk Date: Sun, 13 Oct 2024 15:51:34 +0200 Subject: [PATCH] Added buttons functionality for file reverts with majority code added by MarkusRost on RcGcDw repo --- extensions/base/mediawiki.py | 1 + extensions/hooks/buttons.py | 9 +++++++ locale/templates/buttons.pot | 46 ++++++++++++++++++++++++++++++++ scripts/generate_translations.sh | 3 ++- src/api/context.py | 3 +++ 5 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 locale/templates/buttons.pot diff --git a/extensions/base/mediawiki.py b/extensions/base/mediawiki.py index 096cfa6..424ae3a 100644 --- a/extensions/base/mediawiki.py +++ b/extensions/base/mediawiki.py @@ -159,6 +159,7 @@ def embed_upload_upload(ctx: Context, change: dict) -> DiscordMessage: # Make a request for file revisions so we can get direct URL to the image for embed if request_for_image_data is not None: try: + ctx.image_data = image_data urls = image_data["imageinfo"] for num, revision in enumerate(urls): if revision["timestamp"] == change["logparams"][ diff --git a/extensions/hooks/buttons.py b/extensions/hooks/buttons.py index 050ba9b..896b840 100644 --- a/extensions/hooks/buttons.py +++ b/extensions/hooks/buttons.py @@ -63,6 +63,15 @@ def buttons_hook(message: DiscordMessage, metadata: DiscordMessageMetadata, cont # if "filerevert" in action_buttons and context.event in ("upload/overwrite", "upload/revert"): # add_button(message, BUTTON_PREFIX + " file " + str(change["pageid"]) + " " + revision["archivename"].split("!")[0], # action_buttons["filerevert"], 2, {"id": None, "name": "🔂"}) + if "filerevert" in action_buttons and context.event in ("upload/overwrite", "upload/revert") and context.image_data: + found_cur = False + for revision in context.image_data.get("imageinfo", []): + if found_cur: + add_button(message, BUTTON_PREFIX + " file " + str(change["pageid"]) + " " + revision["archivename"].split("!")[0], + context.gettext("Revert"), 2, {"id": None, "name": "🔂"}) + break + if revision["timestamp"] == change["logparams"]["img_timestamp"]: # find the correct revision corresponding for this log entry + found_cur = True if "move" in action_buttons and context.event in ("move/move", "move/move_redir"): add_button(message, BUTTON_PREFIX + " move " + str(change["pageid"]) + " " + change["title"], context.gettext("Move back"), 2, {"id": None, "name": "🔂"}) diff --git a/locale/templates/buttons.pot b/locale/templates/buttons.pot new file mode 100644 index 0000000..78d3a5a --- /dev/null +++ b/locale/templates/buttons.pot @@ -0,0 +1,46 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDb package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: RcGcDb\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-10-12 15:15+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: extensions/hooks/buttons.py:57 +msgid "Block user" +msgstr "" + +#: extensions/hooks/buttons.py:62 +msgid "Delete" +msgstr "" + +#: extensions/hooks/buttons.py:71 +msgid "Revert" +msgstr "" + +#: extensions/hooks/buttons.py:77 +msgid "Move back" +msgstr "" + +#: extensions/hooks/buttons.py:81 +msgid "Rollback" +msgstr "" + +#: extensions/hooks/buttons.py:84 +msgid "Undo" +msgstr "" + +#: extensions/hooks/buttons.py:88 extensions/hooks/buttons.py:91 +msgid "Thank user" +msgstr "" diff --git a/scripts/generate_translations.sh b/scripts/generate_translations.sh index 721cadc..7990075 100755 --- a/scripts/generate_translations.sh +++ b/scripts/generate_translations.sh @@ -7,7 +7,7 @@ for language in de pl pt-br hi ru uk zh-hans zh-hant fr es it # msgmerge -U locale/$language/LC_MESSAGES/formatters.po locale/templates/formatters.pot done - +xgettext -L Python --package-name=RcGcDb -o locale/templates/buttons.pot extensions/hooks/buttons.py xgettext -L Python --package-name=RcGcDb -o locale/templates/wiki.pot src/wiki.py xgettext -L Python --package-name=RcGcDb -o locale/templates/misc.pot src/misc.py @@ -18,6 +18,7 @@ do msgmerge -U locale/$language/LC_MESSAGES/$file.po locale/templates/$file.pot done msgmerge -o locale/$language/LC_MESSAGES/wiki.po ~/Projects/RcGcDw/locale/$language/LC_MESSAGES/rc.po locale/$language/LC_MESSAGES/wiki.po + msgmerge -o locale/$language/LC_MESSAGES/formatters.po locale/$language/LC_MESSAGES/formatters.po locale/$language/LC_MESSAGES/buttons.po msgmerge -o locale/$language/LC_MESSAGES/wiki.po ~/Projects/RcGcDw/locale/$language/LC_MESSAGES/rcgcdw.po locale/$language/LC_MESSAGES/wiki.po msgmerge -o locale/$language/LC_MESSAGES/misc.po ~/Projects/RcGcDw/locale/$language/LC_MESSAGES/misc.po locale/$language/LC_MESSAGES/misc.po for file in wiki misc formatters diff --git a/src/api/context.py b/src/api/context.py index bd56574..b701077 100644 --- a/src/api/context.py +++ b/src/api/context.py @@ -31,6 +31,8 @@ class Context: self.feed_type = feed_type self.categories = None self.parsedcomment = None + self.changed_content = None + self.image_data = None self.event = None self.comment_page = None self._ = language.gettext # Singular translations (ex. ctx._("Large goat")) @@ -40,6 +42,7 @@ class Context: self.npgettext = language.npgettext # Plural translation with context (ex. ctx.npgettext("From mediawiki module", "Edited {} time", "Edited {} times", edit_amoint) self.settings = settings self.buttons = buttons + self.custom_data = {} def set_categories(self, cats): self.categories = cats