Started working on content of compact messages themselves (#61)

This commit is contained in:
Frisk 2019-04-16 15:05:40 +02:00
parent 5311d3f2ca
commit e03362ad26
No known key found for this signature in database
GPG key ID: 0E9A7D3C0A01586C

View file

@ -155,12 +155,44 @@ def send_to_discord(data):
pass pass
def compact_formatter(action, change, parsed_comment, categories): def compact_formatter(action, change, parsed_comment, categories):
pass author_url = "https://{wiki}.gamepedia.com/User:{user}".format(wiki=settings["wiki"], user=change["user"].replace(" ", "_"))
author = change["user"]
parsed_comment = "" if parsed_comment is None else " (*"+parsed_comment+"*)"
content = "[{author}]({author_url}) {action} ".format(author=author, author_url=author_url, action=action_list[action])
if action in ["edit", "new"]:
edit_link = "https://{wiki}.gamepedia.com/index.php?title={article}&curid={pageid}&diff={diff}&oldid={oldrev}".format(
wiki=settings["wiki"], pageid=change["pageid"], diff=change["revid"], oldrev=change["old_revid"],
article=change["title"].replace(" ", "_"))
edit_size = change["newlen"] - change["oldlen"]
if edit_size > 0:
sign = "+"
elif edit_size == 0:
sign = ""
else:
sign = "-"
content += "[{article}]({edit_link}){comment} ({sign}{edit_size})".format(article=change["title"], edit_link=edit_link, comment=parsed_comment, edit_size=edit_size)
elif action in ("upload/overwrite", "upload/upload"):
file_link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"],
article=change["title"].replace(" ", "_"))
content += "[{file}]({file_link}){comment}".format(file=change["title"], file_link=file_link, comment=parsed_comment)
elif action == "delete/delete":
page_link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"],
article=change["title"].replace(" ", "_"))
content += "[{page}]({page_link}){comment}".format(page=change["title"], page_link=page_link,
comment=parsed_comment)
elif action == "delete/delete_redir":
page_link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"],
article=change["title"].replace(" ", "_"))
content += "[{page}]({page_link}){comment}".format(page=change["title"], page_link=page_link,
comment=parsed_comment)
def webhook_formatter(action, change, parsed_comment, categories): def embed_formatter(action, change, parsed_comment, categories):
data = {"embeds": []} data = {"embeds": []}
embed = defaultdict(dict) embed = defaultdict(dict)
colornumber = None
if parsed_comment is None:
parsed_comment = _("No description provided")
if "anon" in change: if "anon" in change:
author_url = "https://{wiki}.gamepedia.com/Special:Contributions/{user}".format(wiki=settings["wiki"], author_url = "https://{wiki}.gamepedia.com/Special:Contributions/{user}".format(wiki=settings["wiki"],
user=change["user"]) user=change["user"])
@ -275,7 +307,7 @@ def webhook_formatter(action, change, parsed_comment, categories):
embed["title"] = _("Deleted redirect {article} by overwriting").format(article=change["title"]) embed["title"] = _("Deleted redirect {article} by overwriting").format(article=change["title"])
elif action == "move/move": elif action == "move/move":
link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"],
article=change["target"].replace(" ", "_")) article=change["logparams"]['target_title'].replace(" ", "_"))
parsed_comment = "{supress}. {desc}".format(desc=parsed_comment, parsed_comment = "{supress}. {desc}".format(desc=parsed_comment,
supress=_("No redirect has been made") if "suppressredirect" in change["logparams"] else _( supress=_("No redirect has been made") if "suppressredirect" in change["logparams"] else _(
"A redirect has been made")) "A redirect has been made"))
@ -572,19 +604,16 @@ def essential_info(change, changed_categories):
"""Prepares essential information for both embed and compact message format.""" """Prepares essential information for both embed and compact message format."""
logging.debug(change) logging.debug(change)
if ("actionhidden" in change or "suppressed" in change) and "suppressed" not in settings["ignored"]: # if event is hidden using suppression if ("actionhidden" in change or "suppressed" in change) and "suppressed" not in settings["ignored"]: # if event is hidden using suppression
# webhook_formatter("suppressed",
# {"timestamp": change["timestamp"], "color": settings["appearance"]["suppressed"]["color"],
# "icon": settings["appearance"]["suppressed"]["icon"]}, user=change["user"])
appearance_mode("supressed", change, "", []) appearance_mode("supressed", change, "", [])
if "commenthidden" not in change: if "commenthidden" not in change:
LinkParser.feed(change["parsedcomment"]) LinkParser.feed(change["parsedcomment"])
parsed_comment = LinkParser.new_string parsed_comment = LinkParser.new_string
LinkParser.new_string = "" LinkParser.new_string = ""
parsed_comment = re.sub(r"(`|_|\*|~|<|>|{|}|\|\|)", "\\\\\\1", parsed_comment, 0)
else: else:
parsed_comment = _("~~hidden~~") parsed_comment = _("~~hidden~~")
if not parsed_comment: if not parsed_comment:
parsed_comment = _("No description provided") parsed_comment = None
parsed_comment = re.sub(r"(`|_|\*|~|<|>|{|}|\|\|)", "\\\\\\1", parsed_comment, 0)
if change["type"] in ["edit", "new"]: if change["type"] in ["edit", "new"]:
logging.debug("List of categories in essential_info: {}".format(changed_categories)) logging.debug("List of categories in essential_info: {}".format(changed_categories))
if "userhidden" in change: if "userhidden" in change:
@ -1018,9 +1047,10 @@ class Recent_Changes_Class(object):
recent_changes = Recent_Changes_Class() recent_changes = Recent_Changes_Class()
# Set the proper formatter # Set the proper formatter
if settings["appearance"]["mode"] == "embed": if settings["appearance"]["mode"] == "embed":
appearance_mode = webhook_formatter appearance_mode = embed_formatter
elif settings["appearance"]["mode"] == "compact": elif settings["appearance"]["mode"] == "compact":
appearance_mode = compact_formatter appearance_mode = compact_formatter
action_list = {"edit": _("edited"), "new": _("created"), "upload/upload": _("uploaded"), "upload/overwrite": _("uploaded a new version of"), "delete/delete": _("deleted"), "delete/delete_redir": _("deleted redirect by overwriting")}
else: else:
logging.critical("Unknown formatter!") logging.critical("Unknown formatter!")
sys.exit(1) sys.exit(1)