From 51d881c18b4dd78eb33284ca158de004b6f6ebac Mon Sep 17 00:00:00 2001 From: Frisk Date: Sat, 15 May 2021 13:04:30 +0200 Subject: [PATCH] Removed old formatting files --- src/discussion_formatters.py | 69 ----- src/rc_formatters.py | 551 ----------------------------------- 2 files changed, 620 deletions(-) delete mode 100644 src/discussion_formatters.py delete mode 100644 src/rc_formatters.py diff --git a/src/discussion_formatters.py b/src/discussion_formatters.py deleted file mode 100644 index 1465263..0000000 --- a/src/discussion_formatters.py +++ /dev/null @@ -1,69 +0,0 @@ -# This file is part of Recent changes Goat compatible Discord webhook (RcGcDw). - -# RcGcDw is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# RcGcDw is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with RcGcDw. If not, see . - - - - -def compact_formatter(post_type, post, article_paths): - """Compact formatter for Fandom discussions.""" - message = None - - if post_type == "FORUM": - - - event_type = "discussion" - if post_type == "FORUM": - - elif post_type == "WALL": - - elif post_type == "ARTICLE_COMMENT": - - else: - discussion_logger.warning("No entry for {event} with params: {params}".format(event=post_type, params=post)) - if not settings["support"]: - return - else: - message = _("Unknown event `{event}` by [{author}]({author_url}), report it on the [support server](<{support}>).").format( - event=post_type, author=author, author_url=author_url, support=settings["support"]) - event_type = "unknown" - send_to_discord(DiscordMessage("compact", event_type, settings["fandom_discussions"]["webhookURL"], content=message), meta=DiscordMessageMetadata("POST")) - - -def embed_formatter(post_type, post, article_paths): - """Embed formatter for Fandom discussions.""" - if post_type == "FORUM": - pass - el - if post_type == "FORUM": - - elif post_type == "WALL": - - elif post_type == "ARTICLE_COMMENT": - - else: - discussion_logger.warning("No entry for {event} with params: {params}".format(event=post_type, params=post)) - embed["title"] = _("Unknown event `{event}`").format(event=post_type) - embed.event_type = "unknown" - if settings.get("support", None): - change_params = "[```json\n{params}\n```]({support})".format(params=json.dumps(post, indent=2), - support=settings["support"]) - if len(change_params) > 1000: - embed.add_field(_("Report this on the support server"), settings["support"]) - else: - embed.add_field(_("Report this on the support server"), change_params) - embed.finish_embed() - send_to_discord(embed, meta=DiscordMessageMetadata("POST")) - - diff --git a/src/rc_formatters.py b/src/rc_formatters.py deleted file mode 100644 index 0826a1e..0000000 --- a/src/rc_formatters.py +++ /dev/null @@ -1,551 +0,0 @@ -# -*- coding: utf-8 -*- - -# This file is part of Recent changes Goat compatible Discord webhook (RcGcDw). - -# RcGcDw is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# RcGcDw is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with RcGcDw. If not, see . - -import ipaddress -import math -import re -import time -import logging -import datetime -import json -from urllib.parse import quote_plus, quote - -from bs4 import BeautifulSoup - -from src.configloader import settings -from src.misc import WIKI_SCRIPT_PATH, safe_read, \ - WIKI_API_PATH, ContentParser, profile_field_name, LinkParser -from src.api.util import link_formatter, create_article_path -from src.discord.queue import send_to_discord -from src.discord.message import DiscordMessage, DiscordMessageMetadata - -if AUTO_SUPPRESSION_ENABLED: - from src.discord.redaction import delete_messages, redact_messages - -from src.i18n import formatters_i18n -#from src.rc import recent_changes, pull_comment -_ = formatters_i18n.gettext -ngettext = formatters_i18n.ngettext - -logger = logging.getLogger("rcgcdw.rc_formatters") -#from src.rcgcdw import recent_changes, ngettext, logger, profile_field_name, LinkParser, pull_comment - - -LinkParser = LinkParser() - -def format_user(change, recent_changes, action): - if "anon" in change: - author_url = create_article_path("Special:Contributions/{user}".format( - user=change["user"].replace(" ", "_"))) # Replace here needed in case of #75 - logger.debug("current user: {} with cache of IPs: {}".format(change["user"], recent_changes.map_ips.keys())) - if change["user"] not in list(recent_changes.map_ips.keys()): - contibs = safe_read(recent_changes._safe_request( - "{wiki}?action=query&format=json&list=usercontribs&uclimit=max&ucuser={user}&ucstart={timestamp}&ucprop=".format( - wiki=WIKI_API_PATH, user=change["user"], timestamp=change["timestamp"])), "query", "usercontribs") - if contibs is None: - logger.warning( - "WARNING: Something went wrong when checking amount of contributions for given IP address") - if settings.get("hide_ips", False): - change["user"] = _("Unregistered user") - change["user"] = change["user"] + "(?)" - else: - recent_changes.map_ips[change["user"]] = len(contibs) - logger.debug( - "Current params user {} and state of map_ips {}".format(change["user"], recent_changes.map_ips)) - if settings.get("hide_ips", False): - change["user"] = _("Unregistered user") - change["user"] = "{author} ({contribs})".format(author=change["user"], contribs=len(contibs)) - else: - logger.debug( - "Current params user {} and state of map_ips {}".format(change["user"], recent_changes.map_ips)) - if action in ("edit", "new"): - recent_changes.map_ips[change["user"]] += 1 - change["user"] = "{author} ({amount})".format(author=change["user"] if settings.get("hide_ips", False) is False else _("Unregistered user"), - amount=recent_changes.map_ips[change["user"]]) - else: - author_url = create_article_path("User:{}".format(change["user"].replace(" ", "_"))) - return change["user"], author_url - - -def compact_formatter(action, change, parsed_comment, categories, recent_changes): - request_metadata = DiscordMessageMetadata("POST", rev_id=change.get("revid", None), log_id=change.get("logid", None), page_id=change.get("pageid", None)) - if action != "suppressed": - author_url = link_formatter(create_article_path("User:{user}".format(user=change["user"]))) - if "anon" in change: - change["user"] = _("Unregistered user") - author = change["user"] - else: - author = change["user"] - parsed_comment = "" if parsed_comment is None else " *("+parsed_comment+")*" - if action in ["edit", "new"]: - elif action =="upload/upload": - - elif action == "upload/revert": - - elif action == "upload/overwrite": - - elif action == "delete/delete": - - elif action == "delete/delete_redir": - - elif action == "move/move": - - elif action == "move/move_redir": - - elif action == "protect/move_prot": - - elif action == "block/block": - - elif action == "block/reblock": - - elif action == "block/unblock": - - elif action == "curseprofile/comment-created": - link = link_formatter(create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"]))) - target_user = change["title"].split(':', 1)[1] - if target_user != author: - content = _("[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile".format(author=author, author_url=author_url, comment=link, target=target_user)) - else: - content = _("[{author}]({author_url}) left a [comment]({comment}) on their own profile".format(author=author, author_url=author_url, comment=link)) - elif action == "curseprofile/comment-replied": - link = link_formatter(create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"]))) - target_user = change["title"].split(':', 1)[1] - if target_user != author: - content = _( - "[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s profile".format(author=author, - author_url=author_url, - comment=link, - target=target_user)) - else: - content = _( - "[{author}]({author_url}) replied to a [comment]({comment}) on their own profile".format(author=author, - comment=link, - author_url=author_url)) - elif action == "curseprofile/comment-edited": - link = link_formatter(create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"]))) - target_user = change["title"].split(':', 1)[1] - if target_user != author: - content = _( - "[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile".format(author=author, - author_url=author_url, - comment=link, - target=target_user)) - else: - content = _( - "[{author}]({author_url}) edited a [comment]({comment}) on their own profile".format(author=author, - comment=link, - author_url=author_url)) - elif action == "curseprofile/comment-purged": - target_user = change["title"].split(':', 1)[1] - if target_user != author: - content = _("[{author}]({author_url}) purged a comment on {target}'s profile".format(author=author, author_url=author_url,target=target_user)) - else: - content = _("[{author}]({author_url}) purged a comment on their own profile".format(author=author, author_url=author_url)) - elif action == "curseprofile/comment-deleted": - if "4:comment_id" in change["logparams"]: - link = link_formatter(create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"]))) - else: - link = link_formatter(create_article_path(change["title"])) - target_user = change["title"].split(':', 1)[1] - if target_user != author: - content = _("[{author}]({author_url}) deleted a [comment]({comment}) on {target}'s profile".format(author=author,author_url=author_url, comment=link, target=target_user)) - else: - content = _("[{author}]({author_url}) deleted a [comment]({comment}) on their own profile".format(author=author, author_url=author_url, comment=link)) - elif action == "curseprofile/profile-edited": - target_user = change["title"].split(':', 1)[1] - link = link_formatter(create_article_path("UserProfile:{user}".format(user=target_user))) - if target_user != author: - content = _("[{author}]({author_url}) edited the {field} on [{target}]({target_url})'s profile. *({desc})*").format(author=author, - author_url=author_url, - target=target_user, - target_url=link, - field=profile_field_name(change["logparams"]['4:section'], False), - desc=BeautifulSoup(change["parsedcomment"], "lxml").get_text()) - else: - content = _("[{author}]({author_url}) edited the {field} on [their own]({target_url}) profile. *({desc})*").format( - author=author, - author_url=author_url, - target_url=link, - field=profile_field_name(change["logparams"]['4:section'], False), - desc=BeautifulSoup(change["parsedcomment"], "lxml").get_text()) - elif action in ("rights/rights", "rights/autopromote"): - - elif action == "protect/protect": - - elif action == "protect/modify": - - elif action == "protect/unprotect": - - elif action == "delete/revision": - - elif action == "import/upload": - - elif action == "delete/restore": - - elif action == "delete/event": - - elif action == "import/interwiki": - - elif action == "abusefilter/modify": - elif action == "abusefilter/create": - - elif action == "merge/merge": - - elif action == "newusers/autocreate": - elif action == "newusers/create": - elif action == "newusers/create2": - elif action == "newusers/byemail": - elif action == "newusers/newusers": - elif action == "interwiki/iw_add": - elif action == "interwiki/iw_edit": - - elif action == "interwiki/iw_delete": - link = link_formatter(create_article_path("Special:Interwiki")) - elif action == "contentmodel/change": - - elif action == "contentmodel/new": - - elif action == "sprite/sprite": - - elif action == "sprite/sheet": - - elif action == "sprite/slice": - - elif action == "cargo/createtable": - - elif action == "cargo/deletetable": - - elif action == "cargo/recreatetable": - - elif action == "cargo/replacetable": - - elif action == "managetags/create": - - elif action == "managetags/delete": - - elif action == "managetags/activate": - - elif action == "managetags/deactivate": - link = link_formatter(create_article_path(change["title"])) - elif action == "managewiki/settings": # Miraheze's ManageWiki extension https://github.com/miraheze/ManageWiki - - elif action == "managewiki/delete": - - elif action == "managewiki/lock": - - elif action == "managewiki/namespaces": - - elif action == "managewiki/namespaces-delete": - - elif action == "managewiki/rights": - - elif action == "managewiki/undelete": - - elif action == "managewiki/unlock": - - elif action == "datadump/generate": - elif action == "datadump/delete": - - elif action == "pagetranslation/mark": - - elif action == "pagetranslation/unmark": - - elif action == "pagetranslation/moveok": - - elif action == "pagetranslation/movenok": - - elif action == "pagetranslation/deletefok": - - elif action == "pagetranslation/deletefnok": - - elif action == "pagetranslation/deletelok": - - elif action == "pagetranslation/deletelnok": - - elif action == "pagetranslation/encourage": - - elif action == "pagetranslation/discourage": - - elif action == "pagetranslation/prioritylanguages": - - elif action == "pagetranslation/associate": - - elif action == "pagetranslation/dissociate": - - elif action == "translationreview/message": - - elif action == "translationreview/group": - - elif action == "pagelang/pagelang": - - elif action == "renameuser/renameuser": - - elif action == "suppressed": - - else: - logger.warning("No entry for {event} with params: {params}".format(event=action, params=change)) - if not settings.get("support", None): - return - else: - content = _( - "Unknown event `{event}` by [{author}]({author_url}), report it on the [support server](<{support}>).").format( - event=action, author=author, author_url=author_url, support=settings["support"]) - action = "unknown" - send_to_discord(DiscordMessage("compact", action, settings["webhookURL"], content=content), meta=request_metadata) - - -def embed_formatter(action, change, parsed_comment, categories, recent_changes): - embed = DiscordMessage("embed", action, settings["webhookURL"]) - request_metadata = DiscordMessageMetadata("POST", rev_id=change.get("revid", None), log_id=change.get("logid", None), page_id=change.get("pageid", None)) - if parsed_comment is None: - parsed_comment = _("No description provided") - if action != "suppressed": - change["user"], author_url = format_user(change, recent_changes, action) - embed.set_author(change["user"], author_url) - if action in ("edit", "new"): # edit or new page - - elif action in ("upload/overwrite", "upload/upload", "upload/revert"): # sending files - - elif action == "delete/delete": - - elif action == "delete/delete_redir": - - elif action == "move/move": - - elif action == "move/move_redir": - - elif action == "protect/move_prot": - - elif action == "block/block": - - elif action == "block/reblock": - - elif action == "block/unblock": - - elif action == "curseprofile/comment-created": - if settings["appearance"]["embed"]["show_edit_changes"]: - parsed_comment = recent_changes.pull_comment(change["logparams"]["4:comment_id"]) - link = create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"])) - target_user = change["title"].split(':', 1)[1] - if target_user != change["user"]: - embed["title"] = _("Left a comment on {target}'s profile").format(target=target_user) - else: - embed["title"] = _("Left a comment on their own profile") - elif action == "curseprofile/comment-replied": - if settings["appearance"]["embed"]["show_edit_changes"]: - parsed_comment = recent_changes.pull_comment(change["logparams"]["4:comment_id"]) - link = create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"])) - target_user = change["title"].split(':', 1)[1] - if target_user != change["user"]: - embed["title"] = _("Replied to a comment on {target}'s profile").format(target=target_user) - else: - embed["title"] = _("Replied to a comment on their own profile") - elif action == "curseprofile/comment-edited": - if settings["appearance"]["embed"]["show_edit_changes"]: - parsed_comment = recent_changes.pull_comment(change["logparams"]["4:comment_id"]) - link = create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"])) - target_user = change["title"].split(':', 1)[1] - if target_user != change["user"]: - embed["title"] = _("Edited a comment on {target}'s profile").format(target=target_user) - else: - embed["title"] = _("Edited a comment on their own profile") - elif action == "curseprofile/profile-edited": - target_user = change["title"].split(':', 1)[1] - link = create_article_path("UserProfile:{target}".format(target=target_user)) - if target_user != change["user"]: - embed["title"] = _("Edited {target}'s profile").format(target=target_user) - else: - embed["title"] = _("Edited their own profile") - if not change["parsedcomment"]: # If the field is empty - parsed_comment = _("Cleared the {field} field").format(field=profile_field_name(change["logparams"]['4:section'], True)) - else: - parsed_comment = _("{field} field changed to: {desc}").format(field=profile_field_name(change["logparams"]['4:section'], True), desc=BeautifulSoup(change["parsedcomment"], "lxml").get_text()) - elif action == "curseprofile/comment-purged": - link = create_article_path(change["title"]) - target_user = change["title"].split(':', 1)[1] - if target_user != change["user"]: - embed["title"] = _("Purged a comment on {target}'s profile").format(target=target_user) - else: - embed["title"] = _("Purged a comment on their own profile") - elif action == "curseprofile/comment-deleted": - if "4:comment_id" in change["logparams"]: - link = create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"])) - else: - link = create_article_path(change["title"]) - target_user = change["title"].split(':', 1)[1] - if target_user != change["user"]: - embed["title"] = _("Deleted a comment on {target}'s profile").format(target=target_user) - else: - embed["title"] = _("Deleted a comment on their own profile") - elif action in ("rights/rights", "rights/autopromote"): - - elif action == "protect/protect": - - elif action == "protect/modify": - - elif action == "protect/unprotect": - - elif action == "delete/revision": - - elif action == "import/upload": - - elif action == "delete/restore": - - elif action == "delete/event": - - elif action == "import/interwiki": - - elif action == "abusefilter/modify": - - elif action == "abusefilter/create": - - elif action == "merge/merge": - elif action == "newusers/autocreate": - - elif action == "newusers/create": - - elif action == "newusers/create2": - - elif action == "newusers/byemail": - - elif action == "newusers/newusers": - - elif action == "interwiki/iw_add": - - elif action == "interwiki/iw_edit": - - elif action == "interwiki/iw_delete": - - elif action == "contentmodel/change": - - elif action == "contentmodel/new": - - elif action == "sprite/sprite": - - elif action == "sprite/sheet": - - elif action == "sprite/slice": - - elif action == "cargo/createtable": - - elif action == "cargo/deletetable": - - elif action == "cargo/recreatetable": - - elif action == "cargo/replacetable": - - elif action == "managetags/create": - - elif action == "managetags/delete": - - elif action == "managetags/activate": - - elif action == "managetags/deactivate": - - elif action == "managewiki/settings": # Miraheze's ManageWiki extension https://github.com/miraheze/ManageWiki - - elif action == "managewiki/delete": - - elif action == "managewiki/lock": - - elif action == "managewiki/namespaces": - - elif action == "managewiki/namespaces-delete": - - elif action == "managewiki/rights": - - elif action == "managewiki/undelete": - - elif action == "managewiki/unlock": - - elif action == "datadump/generate": - elif action == "datadump/delete": - - elif action == "pagetranslation/mark": - - elif action == "pagetranslation/unmark": - - elif action == "pagetranslation/moveok": - - elif action == "pagetranslation/movenok": - - elif action == "pagetranslation/deletefok": - - elif action == "pagetranslation/deletefnok": - - elif action == "pagetranslation/deletelok": - - elif action == "pagetranslation/deletelnok": - - elif action == "pagetranslation/encourage": - - elif action == "pagetranslation/discourage": - - elif action == "pagetranslation/prioritylanguages": - - elif action == "pagetranslation/associate": - - elif action == "pagetranslation/dissociate": - - elif action == "translationreview/message": - - elif action == "translationreview/group": - - elif action == "pagelang/pagelang": - link = create_article_path(change["title"]) - - elif action == "renameuser/renameuser": - - elif action == "suppressed": - - else: - logger.warning("No entry for {event} with params: {params}".format(event=action, params=change)) - link = create_article_path("Special:RecentChanges") - embed["title"] = _("Unknown event `{event}`").format(event=action) - embed.event_type = "unknown" - if settings.get("support", None): - change_params = "[```json\n{params}\n```]({support})".format(params=json.dumps(change, indent=2), - support=settings["support"]) - if len(change_params) > 1000: - embed.add_field(_("Report this on the support server"), settings["support"]) - else: - embed.add_field(_("Report this on the support server"), change_params) - embed["url"] = quote(link.replace(" ", "_"), "/:?=&") - if parsed_comment is not None: - embed["description"] = parsed_comment - if settings["appearance"]["embed"]["show_footer"]: - embed["timestamp"] = change["timestamp"] - if "tags" in change and change["tags"]: - tag_displayname = [] - for tag in change["tags"]: - if tag in recent_changes.tags: - if recent_changes.tags[tag] is None: - continue # Ignore hidden tags - else: - tag_displayname.append(recent_changes.tags[tag]) - else: - tag_displayname.append(tag) - embed.add_field(_("Tags"), ", ".join(tag_displayname)) - if len(embed["title"]) > 254: - embed["title"] = embed["title"][0:253]+"…" - logger.debug("Current params in edit action: {}".format(change)) - if categories is not None and not (len(categories["new"]) == 0 and len(categories["removed"]) == 0): - new_cat = (_("**Added**: ") + ", ".join(list(categories["new"])[0:16]) + ("\n" if len(categories["new"])<=15 else _(" and {} more\n").format(len(categories["new"])-15))) if categories["new"] else "" - del_cat = (_("**Removed**: ") + ", ".join(list(categories["removed"])[0:16]) + ("" if len(categories["removed"])<=15 else _(" and {} more").format(len(categories["removed"])-15))) if categories["removed"] else "" - embed.add_field(_("Changed categories"), new_cat + del_cat) - embed.finish_embed() - send_to_discord(embed, meta=request_metadata)