mirror of
https://github.com/PluralKit/PluralKit.git
synced 2026-02-14 01:30:13 +00:00
Massive refactor/update/UX improvement dump. Closes #6.
This commit is contained in:
parent
f8e92375b0
commit
72590ec92c
20 changed files with 588 additions and 512 deletions
|
|
@ -1,62 +1,18 @@
|
|||
from pluralkit.bot import help
|
||||
from pluralkit.bot.commands import *
|
||||
|
||||
logger = logging.getLogger("pluralkit.commands")
|
||||
|
||||
|
||||
async def get_message_contents(client: discord.Client, channel_id: int, message_id: int):
|
||||
channel = client.get_channel(channel_id)
|
||||
if channel:
|
||||
try:
|
||||
original_message = await channel.get_message(message_id)
|
||||
return original_message.content or None
|
||||
except (discord.errors.Forbidden, discord.errors.NotFound):
|
||||
pass
|
||||
|
||||
return None
|
||||
|
||||
async def message_info(ctx: CommandContext):
|
||||
mid_str = ctx.pop_str(CommandError("You must pass a message ID.", help=help.message_lookup))
|
||||
mid_str = ctx.pop_str(CommandError("You must pass a message ID."))
|
||||
|
||||
try:
|
||||
mid = int(mid_str)
|
||||
except ValueError:
|
||||
raise CommandError("You must pass a valid number as a message ID.", help=help.message_lookup)
|
||||
raise CommandError("You must pass a valid number as a message ID.")
|
||||
|
||||
# Find the message in the DB
|
||||
message = await db.get_message(ctx.conn, mid)
|
||||
if not message:
|
||||
raise CommandError("Message with ID '{}' not found.".format(mid))
|
||||
raise CommandError(
|
||||
"Message with ID '{}' not found. Are you sure it's a message proxied by PluralKit?".format(mid))
|
||||
|
||||
# Get the original sender of the messages
|
||||
try:
|
||||
original_sender = await ctx.client.get_user_info(message.sender)
|
||||
except discord.NotFound:
|
||||
# Account was since deleted - rare but we're handling it anyway
|
||||
original_sender = None
|
||||
|
||||
embed = discord.Embed()
|
||||
embed.timestamp = discord.utils.snowflake_time(mid)
|
||||
embed.colour = discord.Colour.blue()
|
||||
|
||||
if message.system_name:
|
||||
system_value = "{} (`{}`)".format(message.system_name, message.system_hid)
|
||||
else:
|
||||
system_value = "`{}`".format(message.system_hid)
|
||||
embed.add_field(name="System", value=system_value)
|
||||
|
||||
embed.add_field(name="Member", value="{} (`{}`)".format(message.name, message.hid))
|
||||
|
||||
if original_sender:
|
||||
sender_name = "{}#{}".format(original_sender.name, original_sender.discriminator)
|
||||
else:
|
||||
sender_name = "(deleted account {})".format(message.sender)
|
||||
|
||||
embed.add_field(name="Sent by", value=sender_name)
|
||||
|
||||
message_content = await get_message_contents(ctx.client, message.channel, message.mid)
|
||||
embed.description = message_content or "(unknown, message deleted)"
|
||||
|
||||
embed.set_author(name=message.name, icon_url=message.avatar_url or discord.Embed.Empty)
|
||||
|
||||
await ctx.reply_ok(embed=embed)
|
||||
await ctx.reply_ok(embed=await embeds.message_card(ctx.client, message))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue