From 5129d9b04b3169f71bf3b36571b6f3282b410a26 Mon Sep 17 00:00:00 2001 From: Frisk Date: Sun, 18 Oct 2020 13:25:50 +0200 Subject: [PATCH] Added #147 with few exceptions, switched supported_logs variable to more performant set --- src/misc.py | 4 +++ src/rc.py | 15 ++++++++++- src/rc_formatters.py | 59 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 1 deletion(-) diff --git a/src/misc.py b/src/misc.py index cbe57c7..8025c8d 100644 --- a/src/misc.py +++ b/src/misc.py @@ -134,9 +134,11 @@ class MessageQueue: self.cut_messages(num) misc_logger.debug(self._queue) + messagequeue = MessageQueue() datafile = DataFile() + def weighted_average(value, weight, new_value): """Calculates weighted average of value number with weight weight and new_value with weight 1""" return round(((value * weight) + new_value) / (weight + 1), 2) @@ -146,10 +148,12 @@ def link_formatter(link): """Formats a link to not embed it""" return "<" + quote(link.replace(" ", "_"), "/:?") + ">" + def escape_formatting(data): """Escape Discord formatting""" return re.sub(r"([`_*~<>{}@/|\\])", "\\\\\\1", data, 0) + class ContentParser(HTMLParser): more = _("\n__And more__") current_tag = "" diff --git a/src/rc.py b/src/rc.py index a3b5727..be9b810 100644 --- a/src/rc.py +++ b/src/rc.py @@ -19,7 +19,20 @@ storage = datafile logger = logging.getLogger("rcgcdw.rc") -supported_logs = ["protect/protect", "protect/modify", "protect/unprotect", "upload/overwrite", "upload/upload", "delete/delete", "delete/delete_redir", "delete/restore", "delete/revision", "delete/event", "import/upload", "import/interwiki", "merge/merge", "move/move", "move/move_redir", "protect/move_prot", "block/block", "block/unblock", "block/reblock", "rights/rights", "rights/autopromote", "abusefilter/modify", "abusefilter/create", "interwiki/iw_add", "interwiki/iw_edit", "interwiki/iw_delete", "curseprofile/comment-created", "curseprofile/comment-edited", "curseprofile/comment-deleted", "curseprofile/comment-purged", "curseprofile/profile-edited", "curseprofile/comment-replied", "contentmodel/change", "sprite/sprite", "sprite/sheet", "sprite/slice", "managetags/create", "managetags/delete", "managetags/activate", "managetags/deactivate", "tag/update", "cargo/createtable", "cargo/deletetable", "cargo/recreatetable", "cargo/replacetable", "upload/revert", "newusers/create", "newusers/autocreate", "newusers/create2", "newusers/byemail", "newusers/newusers", "managewiki/settings"] +supported_logs = {"protect/protect", "protect/modify", "protect/unprotect", "upload/overwrite", "upload/upload", + "delete/delete", "delete/delete_redir", "delete/restore", "delete/revision", "delete/event", + "import/upload", "import/interwiki", "merge/merge", "move/move", "move/move_redir", + "protect/move_prot", "block/block", "block/unblock", "block/reblock", "rights/rights", + "rights/autopromote", "abusefilter/modify", "abusefilter/create", "interwiki/iw_add", + "interwiki/iw_edit", "interwiki/iw_delete", "curseprofile/comment-created", + "curseprofile/comment-edited", "curseprofile/comment-deleted", "curseprofile/comment-purged", + "curseprofile/profile-edited", "curseprofile/comment-replied", "contentmodel/change", "sprite/sprite", + "sprite/sheet", "sprite/slice", "managetags/create", "managetags/delete", "managetags/activate", + "managetags/deactivate", "tag/update", "cargo/createtable", "cargo/deletetable", + "cargo/recreatetable", "cargo/replacetable", "upload/revert", "newusers/create", + "newusers/autocreate", "newusers/create2", "newusers/byemail", "newusers/newusers", + "managewiki/settings", "managewiki/delete", "managewiki/lock", "managewiki/unlock", + "managewiki/namespaces", "managewiki/namespaces-delete", "managewiki/rights", "managewiki/undelete"} # Set the proper formatter if settings["appearance"]["mode"] == "embed": diff --git a/src/rc_formatters.py b/src/rc_formatters.py index 619fd87..001192f 100644 --- a/src/rc_formatters.py +++ b/src/rc_formatters.py @@ -364,6 +364,35 @@ def compact_formatter(action, change, parsed_comment, categories, recent_changes content = "🏷️ "+_("[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"").format(author=author, author_url=author_url, tag=change["logparams"]["tag"], tag_url=link) elif action == "managewiki/settings": # Miraheze's ManageWiki extension https://github.com/miraheze/ManageWiki content = "⚙️ "+_("[{author}]({author_url}) changed wiki settings ({reason})".format(author=author, author_url=author_url, reason=parsed_comment)) + elif action == "managewiki/delete": + content = "🗑️ "+_("[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})").format(author=author, author_url=author_url, + wiki_name=change["logparams"].get("wiki", {"wiki": _("Unknown")}), comment=parsed_comment) + elif action == "managewiki/lock": + content = "🔒 "+_("[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})").format( + author=author, author_url=author_url, wiki_name=change["logparams"].get("wiki", {"wiki": _("Unknown")}), comment=parsed_comment) + elif action == "managewiki/namespaces": + content = "📦 "+_("[{author}]({author_url}) modified a namespace *{namespace_name}* on *{wiki_name}* ({comment})").format( + author=author, author_url=author_url, namespace_name=change["logparams"].get("namespace", {"namespace": _("Unknown")}), + wiki_name=change["logparams"].get("wiki", {"wiki": _("Unknown")}), comment=parsed_comment) + elif action == "managewiki/namespaces-delete": + content = "🗑️ " + _( + "[{author}]({author_url}) deleted a namespace *{namespace_name}* on *{wiki_name}* ({comment})").format( + author=author, author_url=author_url, + namespace_name=change["logparams"].get("namespace", {"namespace": _("Unknown")}), + wiki_name=change["logparams"].get("wiki", {"wiki": _("Unknown")}), comment=parsed_comment) + elif action == "managewiki/rights": + content = "🏅 " + _("[{author}]({author_url}) modified user group *{group_name}* ({comment})").format( + author=author, author_url=author_url, group_name=change["title"][32:], comment=parsed_comment + ) + elif action == "managewiki/undelete": + content = "🏅 " + _("[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})").format( + author=author, author_url=author_url, wiki_name=change["logparams"].get("wiki", {"wiki": _("Unknown")}), comment=parsed_comment + ) + elif action == "managewiki/unlock": + content = "🏅 " + _("[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})").format( + author=author, author_url=author_url, wiki_name=change["logparams"].get("wiki", {"wiki": _("Unknown")}), + comment=parsed_comment + ) elif action == "suppressed": content = "👁️ "+_("An action has been hidden by administration.") else: @@ -791,6 +820,36 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): embed["title"] = _("Changed wiki settings") if change["logparams"].get("changes", ""): embed.add_field("Setting", change["logparams"].get("changes")) + elif action == "managewiki/delete": + embed["title"] = _("Deleted a \"{wiki}\" wiki".format(wiki=change["logparams"].get("wiki", {"wiki": _("Unknown")}))) + link = create_article_path("") + elif action == "managewiki/lock": + embed["title"] = _( + "Locked a \"{wiki}\" wiki".format(wiki=change["logparams"].get("wiki", {"wiki": _("Unknown")}))) + link = create_article_path("") + elif action == "managewiki/namespaces": + embed["title"] = _( + "Modified a \"{namespace_name}\" namespace".format(namespace_name=change["logparams"].get("namespace", {"namespace": _("Unknown")}))) + link = create_article_path("") + embed.add_field(_('Wiki'), change["logparams"].get("wiki", {"wiki": _("Unknown")})) + elif action == "managewiki/namespaces-delete": + embed["title"] = _( + "Deleted a \"{namespace_name}\" namespace".format( + namespace_name=change["logparams"].get("namespace", {"namespace": _("Unknown")}))) + link = create_article_path("") + embed.add_field(_('Wiki'), change["logparams"].get("wiki", {"wiki": _("Unknown")})) + elif action == "managewiki/rights": + embed["title"] = _( + "Modified \"{usergroup_name}\" usergroup".format(usergroup_name=change["title"][32:])) + link = create_article_path("") + elif action == "managewiki/undelete": + embed["title"] = _( + "Restored a \"{wiki}\" wiki".format(wiki=change["logparams"].get("wiki", {"wiki": _("Unknown")}))) + link = create_article_path("") + elif action == "managewiki/unlock": + embed["title"] = _( + "Unlocked a \"{wiki}\" wiki".format(wiki=change["logparams"].get("wiki", {"wiki": _("Unknown")}))) + link = create_article_path("") elif action == "suppressed": link = create_article_path("") embed["title"] = _("Action has been hidden by administration")