Added autocomplete in play command
This commit is contained in:
@@ -21,9 +21,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import discord
|
import discord, voicelink, re, aiohttp, json
|
||||||
import voicelink
|
|
||||||
import re
|
|
||||||
|
|
||||||
from io import StringIO
|
from io import StringIO
|
||||||
from discord import app_commands
|
from discord import app_commands
|
||||||
@@ -87,6 +85,21 @@ class Basic(commands.Cog):
|
|||||||
async def help_autocomplete(self, interaction: discord.Interaction, current: str) -> list:
|
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]
|
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"))
|
@commands.hybrid_command(name="connect", aliases=get_aliases("connect"))
|
||||||
@app_commands.describe(channel="Provide a channel to connect.")
|
@app_commands.describe(channel="Provide a channel to connect.")
|
||||||
@commands.dynamic_cooldown(cooldown_check, commands.BucketType.guild)
|
@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"))
|
return await ctx.send(get_lang(ctx.guild.id, "alreadyConnected"))
|
||||||
|
|
||||||
await ctx.send(player.get_msg('connect').format(player.channel))
|
await ctx.send(player.get_msg('connect').format(player.channel))
|
||||||
|
|
||||||
@commands.hybrid_command(name="play", aliases=get_aliases("play"))
|
@commands.hybrid_command(name="play", aliases=get_aliases("play"))
|
||||||
@app_commands.describe(query="Input a query or a searchable link.")
|
@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)
|
@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."
|
"Loads your input and added it to the queue."
|
||||||
player: voicelink.Player = ctx.guild.voice_client
|
player: voicelink.Player = ctx.guild.voice_client
|
||||||
if not player:
|
if not player:
|
||||||
@@ -127,7 +141,7 @@ class Basic(commands.Cog):
|
|||||||
finally:
|
finally:
|
||||||
if not player.is_playing:
|
if not player.is_playing:
|
||||||
await player.do_next()
|
await player.do_next()
|
||||||
|
|
||||||
@commands.dynamic_cooldown(cooldown_check, commands.BucketType.guild)
|
@commands.dynamic_cooldown(cooldown_check, commands.BucketType.guild)
|
||||||
async def _play(self, interaction: discord.Interaction, message: discord.Message):
|
async def _play(self, interaction: discord.Interaction, message: discord.Message):
|
||||||
query = ""
|
query = ""
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import requests, zipfile, os, shutil, argparse
|
|||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
|
|
||||||
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
|
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"
|
GITHUB_API_URL = "https://api.github.com/repos/ChocoMeow/Vocard/releases/latest"
|
||||||
VOCARD_URL = "https://github.com/ChocoMeow/Vocard/archive/"
|
VOCARD_URL = "https://github.com/ChocoMeow/Vocard/archive/"
|
||||||
|
|||||||
Reference in New Issue
Block a user