Extend commands
This commit is contained in:
51
cogs/test.py
51
cogs/test.py
@@ -1,6 +1,12 @@
|
||||
from typing import List
|
||||
|
||||
import disnake
|
||||
from disnake import Option, OptionType, OptionChoice
|
||||
from disnake.ext import commands
|
||||
|
||||
from lib import ListGenerator
|
||||
from lib import logger
|
||||
from lib import play_audio
|
||||
|
||||
|
||||
class Testing(commands.Cog, name='Testing'):
|
||||
@@ -11,6 +17,51 @@ class Testing(commands.Cog, name='Testing'):
|
||||
async def on_ready(self):
|
||||
logger.info(f'Cog {__name__.split(".")[1]} is ready!.')
|
||||
|
||||
@commands.slash_command(name="play_audio",
|
||||
description="Make possible playing audio by command",
|
||||
options=[
|
||||
Option(name="audio",
|
||||
type=OptionType.string,
|
||||
required=True
|
||||
)
|
||||
])
|
||||
async def playaudio(self, inter: disnake.ApplicationCommandInteraction,
|
||||
audio: str
|
||||
):
|
||||
if inter.author.voice is not None:
|
||||
await inter.response.send_message(f'Played {audio}', ephemeral=True)
|
||||
await play_audio(audio, self.bot, inter.author.voice.channel)
|
||||
else:
|
||||
await inter.response.send_message('You`re not in voice', ephemeral=True)
|
||||
|
||||
@playaudio.autocomplete('audio')
|
||||
async def list_to_play(self, inter: disnake.ApplicationCommandInteraction, current: str) -> List[OptionChoice]:
|
||||
_def_iter = ListGenerator('audio')
|
||||
_def_dict: dict = {}
|
||||
for f in _def_iter:
|
||||
_def_dict[f.name] = f'{f.path}/{f.name}'
|
||||
|
||||
_user_dict: dict = {}
|
||||
try:
|
||||
_user_iter = ListGenerator(f'audio/{inter.author.id}')
|
||||
for f in _user_iter:
|
||||
_user_dict[f.name] = f'{f.path}/{f.name}'
|
||||
|
||||
# user_dict = []
|
||||
# for _track in user_list:
|
||||
|
||||
except IndexError:
|
||||
pass
|
||||
|
||||
_dict = {}
|
||||
_dict.update(_def_dict)
|
||||
_dict.update(_user_dict)
|
||||
return [
|
||||
OptionChoice(name=choice, value=f'{_dict[choice]}')
|
||||
for choice in _dict if current.lower() in choice.lower()
|
||||
|
||||
]
|
||||
|
||||
|
||||
def setup(bot): # an extension must have a setup function
|
||||
bot.add_cog(Testing(bot)) # adding a cog
|
||||
|
||||
Reference in New Issue
Block a user