Files
discord_bot/cogs/general.py
2024-03-07 02:18:09 +03:00

62 lines
2.2 KiB
Python

import disnake
from disnake import Option, OptionType, Colour
from disnake.ext import commands
from lib import DBReader
from lib import logger
class General(commands.Cog):
def __init__(self, bot):
self.bot = bot # defining bot as global var in class
@commands.Cog.listener() # this is a decorator for events/listeners
async def on_ready(self):
logger.info(f'Cog {__name__.split(".")[1]} is ready!.')
@commands.slash_command(
name="info",
description="Read list of tracks for user",
options=[
Option("user", "Specify any user", OptionType.user),
]
)
async def info(self, inter, user=None):
audio = None
user = user or inter.author
_user = DBReader(inter.guild.id)
for r in _user:
if r.userid == user.id:
audio = r.defaulttracks
rolelist = [r.mention for r in user.roles if r != inter.guild.default_role]
if rolelist:
roles = "\n".join(rolelist)
else:
roles = "Not added any role"
if audio:
audios = "" + "\n".join(sorted(audio.split(", ")))
else:
audios = "Not selected audio"
emb = disnake.Embed(
title=f"General information",
description=f"General information on server about {user}",
color=Colour.random()
)
emb.set_thumbnail(url=user.display_avatar)
emb.add_field(name="General info",
value=f"Username: {user}\n"
f"Nickname: {user.nick}\n"
f"Joined at: {user.joined_at.strftime('%A, %B %d %Y @ %H:%M:%S')}", inline=False)
emb.add_field(name="Default audio list", value=f"{audios}", inline=True)
emb.add_field(name="Roles list", value=f"{roles}", inline=True)
emb.set_footer(text="Information requested by: {}".format(inter.author.display_name))
await inter.response.send_message(embed=emb, ephemeral=True)
def setup(bot): # an extension must have a setup function
bot.add_cog(General(bot)) # adding a cog