RcGcDb/extensions/base/rcgcdb.py
2023-10-10 21:47:44 +00:00

31 lines
1.5 KiB
Python

import json
from src.discord.message import DiscordMessage
from src.api import formatter
from src.api.context import Context
from src.api.util import embed_helper, compact_author, sanitize_to_markdown
@formatter.embed(event="generic")
def embed_generic(ctx: Context, change: dict):
embed = DiscordMessage(ctx.message_type, ctx.event)
embed_helper(ctx, embed, change)
embed["title"] = ctx._("Unknown event `{event}`").format(
event="{type}/{action}".format(type=change.get("type", ""), action=change.get("action", "")))
embed["url"] = ctx.client.create_article_path("Special:RecentChanges")
change_params = "{support}\n```json\n{params}\n```".format(params=json.dumps(change, indent=2),
support=ctx.settings["support"])
if len(change_params) > 1000:
embed.add_field(_("Report this on the support server"), ctx.settings["support"])
else:
embed.add_field(_("Report this on the support server"), change_params)
return embed
@formatter.compact(event="generic")
def compact_generic(ctx: Context, change: dict):
author, author_url = compact_author(ctx, change)
content = ctx._("Unknown event `{event}` by [{author}]({author_url}), report it on the [support server](<{support}>).").format(
event="{type}/{action}".format(type=change.get("type", ""), action=change.get("action", "")),
author=author, support=ctx.settings["support"], author_url=author_url)
return DiscordMessage(ctx.message_type, ctx.event, content=content)