From 216ab23f5b2d28a0692c069addbeb8ef8b3a2241 Mon Sep 17 00:00:00 2001 From: Slava Date: Sat, 2 Jul 2022 09:25:20 +0300 Subject: [PATCH] Added base cog files --- cogs/audio.py | 16 ++++++++++++++ cogs/general.py | 57 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 cogs/audio.py create mode 100644 cogs/general.py diff --git a/cogs/audio.py b/cogs/audio.py new file mode 100644 index 0000000..4ceca0f --- /dev/null +++ b/cogs/audio.py @@ -0,0 +1,16 @@ +import logging + +from discord.ext import commands + + +class Audio(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): + logging.info(f'Cog {__name__.split(".")[1]} is ready!.') + + +def setup(bot): # a extension must have a setup function + bot.add_cog(Audio(bot)) # adding a cog diff --git a/cogs/general.py b/cogs/general.py new file mode 100644 index 0000000..a5e2d8b --- /dev/null +++ b/cogs/general.py @@ -0,0 +1,57 @@ +import logging + +import discord +from discord.ext import commands +from dislash import Option, OptionType + +from test import DB + + +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): + logging.info(f'Cog {__name__.split(".")[1]} is ready!.') + + @cog_ext.cog_slash( + name="info", + description="Read list of tracks for user", + options=[ + Option("user", "Specify any user", OptionType.USER), + ] + ) + async def info(ctx, user=None): + user = user or ctx.author + audio = DB.read_db(ctx.guild.id, user.id) + rolelist = [r.mention for r in user.roles if r != ctx.guild.default_role] + if rolelist: + roles = "\n".join(rolelist) + else: + roles = "Not added any role" + + if audio is None: + audios = "Not selected audio" + else: + audios = "• " + "\n• ".join(sorted(audio.split(", "))) + + emb = discord.Embed( + title=f"General information", + description=f"General information on server about {user}", + icon=user.avatar_url + ) + emb.set_thumbnail(url=user.avatar_url) + 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="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(ctx.author.display_name)) + + await ctx.reply(embed=emb, ephemeral=True) + + +def setup(bot): # a extension must have a setup function + bot.add_cog(General(bot)) # adding a cog