Added autocomplete in play command

This commit is contained in:
Choco
2024-02-09 17:25:48 +08:00
parent ca9644bf26
commit 7c4355efce
2 changed files with 21 additions and 7 deletions

View File

@@ -21,9 +21,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
"""
import discord
import voicelink
import re
import discord, voicelink, re, aiohttp, json
from io import StringIO
from discord import app_commands
@@ -87,6 +85,21 @@ class Basic(commands.Cog):
async def help_autocomplete(self, interaction: discord.Interaction, current: str) -> list:
return [app_commands.Choice(name=c.capitalize(), value=c) for c in self.bot.cogs if c not in ["Nodes", "Task"] and current in c]
async def play_autocomplete(self, interaction: discord.Interaction, current: str) -> list:
if current:
async with aiohttp.ClientSession() as session:
try:
async with session.get(f"http://suggestqueries.google.com/complete/search?client=firefox&ds=yt&q={current}") as resp:
if resp.status != 200:
return []
raw_content = await resp.read()
data = raw_content.decode("utf-8")
return [app_commands.Choice(name=result, value=result) for result in json.loads(data)[1]]
except (aiohttp.ClientError, json.JSONDecodeError):
return []
@commands.hybrid_command(name="connect", aliases=get_aliases("connect"))
@app_commands.describe(channel="Provide a channel to connect.")
@commands.dynamic_cooldown(cooldown_check, commands.BucketType.guild)
@@ -98,11 +111,12 @@ class Basic(commands.Cog):
return await ctx.send(get_lang(ctx.guild.id, "alreadyConnected"))
await ctx.send(player.get_msg('connect').format(player.channel))
@commands.hybrid_command(name="play", aliases=get_aliases("play"))
@app_commands.describe(query="Input a query or a searchable link.")
@app_commands.autocomplete(query=play_autocomplete)
@commands.dynamic_cooldown(cooldown_check, commands.BucketType.guild)
async def play(self, ctx: commands.Context, *, query: str) -> None:
async def play(self, ctx: commands.Context, query: str) -> None:
"Loads your input and added it to the queue."
player: voicelink.Player = ctx.guild.voice_client
if not player:
@@ -127,7 +141,7 @@ class Basic(commands.Cog):
finally:
if not player.is_playing:
await player.do_next()
@commands.dynamic_cooldown(cooldown_check, commands.BucketType.guild)
async def _play(self, interaction: discord.Interaction, message: discord.Message):
query = ""

View File

@@ -2,7 +2,7 @@ import requests, zipfile, os, shutil, argparse
from io import BytesIO
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
__version__ = "v2.6.7b1"
__version__ = "v2.6.7b2"
GITHUB_API_URL = "https://api.github.com/repos/ChocoMeow/Vocard/releases/latest"
VOCARD_URL = "https://github.com/ChocoMeow/Vocard/archive/"