From 0ae846f7cc2b1e572cf66f5c97ddef4af5700900 Mon Sep 17 00:00:00 2001 From: Stepan Oksanichenko Date: Mon, 11 Nov 2024 14:37:21 +0200 Subject: [PATCH] - New command `/info`: information about a Discord server --- sources/scripts/main.py | 61 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 6 deletions(-) diff --git a/sources/scripts/main.py b/sources/scripts/main.py index 56ddcb6..e91c106 100644 --- a/sources/scripts/main.py +++ b/sources/scripts/main.py @@ -5,7 +5,7 @@ import asyncio import discord -from discord import utils +from discord import utils, Color from discord.ext.commands import Bot from sources.config import config @@ -55,16 +55,65 @@ async def sync_tree(context: discord.ext.commands.Context): @bot.tree.command( - name='ping', - description='Test ping command', + name='info', + description='Get info about your server', ) -async def ping(interaction: discord.Interaction): +async def info(interaction: discord.Interaction): """ - Test ping command + Get info about your server :param interaction: the command's interaction :return: None """ - await interaction.response.send_message('pong', ephemeral=True) + guild = interaction.guild + embed_var = discord.Embed( + title="Server info", + description=f"Total information about {guild.name}", + color=Color.brand_green(), + ) + if guild.banner: + embed_var.set_image(url=guild.banner.url) + embed_var.add_field( + name='Owner', + value=guild.owner.mention, + inline=False, + ) + embed_var.add_field( + name="Creation date", + value=guild.created_at.strftime('%Y-%M-%d %H:%M:%S'), + inline=False, + ) + embed_var.add_field( + name="Members count", + value=guild.member_count, + inline=False, + ) + embed_var.add_field( + name='Nitro boost', + value=f'Tier {guild.premium_tier}: ' + f'{guild.premium_subscription_count} boost out of 14', + inline=False, + ) + embed_var.add_field( + name='Bitrate limit', + value=f'{int(guild.bitrate_limit // 1000)} Kbps', + inline=False, + ) + embed_var.add_field( + name='Emoji limit', + value=guild.emoji_limit, + inline=False, + ) + embed_var.add_field( + name='Sticker limit', + value=guild.sticker_limit, + inline=False, + ) + embed_var.add_field( + name='File size limit', + value=f'{guild.filesize_limit // 1024 // 1024} MB', + inline=False, + ) + await interaction.response.send_message(embed=embed_var, ephemeral=True) @bot.tree.command(