updating redact method

This commit is contained in:
Frisk 2023-08-20 19:03:55 +02:00
parent 388fd50192
commit 8378ca055c

View file

@ -136,21 +136,21 @@ class Wiki:
else: else:
messagequeue.add_message(QueueEntry(stacked_message, [stacked_message.webhook], self, method="PATCH")) messagequeue.add_message(QueueEntry(stacked_message, [stacked_message.webhook], self, method="PATCH"))
def redact_messages(self, ids: list[int], mode: str, censored_properties: dict): def redact_messages(self, context: Context, ids: list[int], mode: str, censored_properties: dict):
# ids can refer to multiple events, and search does not support additive mode, so we have to loop it for all ids # ids can refer to multiple events, and search does not support additive mode, so we have to loop it for all ids
for revlogid in ids: for revlogid in ids:
for stacked_message, ids in self.search_message_history({mode: revlogid}): # This might not work depending on how Python handles it, but hey, learning experience for stacked_message, ids in self.search_message_history({mode: revlogid}): # This might not work depending on how Python handles it, but hey, learning experience
for message in [message for num, message in enumerate(stacked_message.message_list) if num in ids]: for message in [message for num, message in enumerate(stacked_message.message_list) if num in ids]:
if "user" in censored_properties and "url" in message["author"]: if "user" in censored_properties and "url" in message["author"]:
message["author"]["name"] = _("hidden") message["author"]["name"] = context._("hidden")
message["author"].pop("url") message["author"].pop("url")
if "action" in censored_properties and "url" in message: if "action" in censored_properties and "url" in message:
message["title"] = _("~~hidden~~") message["title"] = context._("~~hidden~~")
message["embed"].pop("url") message["embed"].pop("url")
if "content" in censored_properties and "fields" in message: if "content" in censored_properties and "fields" in message:
message["embed"].pop("fields") message["embed"].pop("fields")
if "comment" in censored_properties: if "comment" in censored_properties:
message["description"] = _("~~hidden~~") message["description"] = context._("~~hidden~~")
messagequeue.add_message(QueueEntry(stacked_message, [stacked_message.webhook], self, method="PATCH")) messagequeue.add_message(QueueEntry(stacked_message, [stacked_message.webhook], self, method="PATCH"))
# async def downtime_controller(self, down, reason=None): # async def downtime_controller(self, down, reason=None):
@ -501,14 +501,14 @@ async def rc_processor(wiki: Wiki, change: dict, changed_categories: dict, displ
elif identification_string == "delete/event": elif identification_string == "delete/event":
logparams = change.get('logparams', {"ids": []}) logparams = change.get('logparams', {"ids": []})
if settings["appearance"]["mode"] == "embed": if settings["appearance"]["mode"] == "embed":
wiki.redact_messages(logparams.get("ids", []), "rev_id", logparams.get("new", {})) wiki.redact_messages(context, logparams.get("ids", []), "rev_id", logparams.get("new", {}))
else: else:
for logid in logparams.get("ids", []): for logid in logparams.get("ids", []):
wiki.delete_messages(dict(logid=logid)) wiki.delete_messages(dict(logid=logid))
elif identification_string == "delete/revision": elif identification_string == "delete/revision":
logparams = change.get('logparams', {"ids": []}) logparams = change.get('logparams', {"ids": []})
if settings["appearance"]["mode"] == "embed": if settings["appearance"]["mode"] == "embed":
wiki.redact_messages(logparams.get("ids", []), "log_id", logparams.get("new", {})) wiki.redact_messages(context, logparams.get("ids", []), "log_id", logparams.get("new", {}))
else: else:
for revid in logparams.get("ids", []): for revid in logparams.get("ids", []):
wiki.delete_messages(dict(revid=revid)) wiki.delete_messages(dict(revid=revid))