1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-27 21:44:21 +00:00

!remove supports a list of videos

This commit is contained in:
Steffo 2018-06-20 19:46:35 +02:00
parent 308fae3a46
commit 8022ac2cd3

View file

@ -194,49 +194,14 @@ async def on_message(message: discord.Message):
"discriminator": message.author.discriminator "discriminator": message.author.discriminator
} }
}) })
if message.content.startswith("!ping"): if message.content.startswith("!"):
await cmd_ping(channel=message.channel, data = message.content.split(" ")
author=message.author, if data[0] not in commands:
params=["/ping"]) await client.send_message(message.channel, ":warning: Comando non riconosciuto.")
elif message.content.startswith("!cv"):
await cmd_cv(channel=message.channel,
author=message.author,
params=message.content.split(" "))
elif message.content.startswith("!play"):
await cmd_play(channel=message.channel,
author=message.author,
params=message.content.split(" "))
elif message.content.startswith("!skip"):
await cmd_skip(channel=message.channel,
author=message.author,
params=message.content.split(" "))
elif message.content.startswith("!remove"):
await cmd_remove(channel=message.channel,
author=message.author,
params=message.content.split(" "))
elif message.content.startswith("!queue"):
await cmd_queue(channel=message.channel,
author=message.author,
params=message.content.split(" "))
elif message.content.startswith("!shuffle"):
await cmd_shuffle(channel=message.channel,
author=message.author,
params=message.content.split(" "))
elif message.content.startswith("!cast"):
try:
spell = message.content.split(" ", 1)[1]
except IndexError:
await client.send_message(message.channel, "⚠️ Non hai specificato nessun incantesimo!\n"
"Sintassi corretta: `!cast <nome_incantesimo>`")
return return
target: discord.Member = random.sample(list(message.server.members), 1)[0] await commands[data[0]](channel=client.get_channel(config["Discord"]["main_channel"]),
await client.send_message(message.channel, cast.cast(spell_name=spell, target_name=target.name, author=message.author,
platform="discord")) params=data)
elif message.content.startswith("!smecds"):
ds = random.sample(stagismo.listona, 1)[0]
await client.send_message(message.channel, f"Secondo me, è colpa {ds}.", tts=True)
elif __debug__ and message.content.startswith("!exception"):
raise Exception("!exception was called")
async def update_users_pipe(users_connection): async def update_users_pipe(users_connection):
@ -253,7 +218,7 @@ async def update_users_pipe(users_connection):
continue continue
await commands[data[0]](channel=client.get_channel(config["Discord"]["main_channel"]), await commands[data[0]](channel=client.get_channel(config["Discord"]["main_channel"]),
author=None, author=None,
params=data[1:] if len(data) > 1 else []) params=data)
users_connection.send("success") users_connection.send("success")
@ -411,21 +376,51 @@ async def cmd_remove(channel: discord.Channel, author: discord.Member, params: t
if len(voice_queue) == 0: if len(voice_queue) == 0:
await client.send_message(channel, "⚠ Non c'è nessun video in coda.") await client.send_message(channel, "⚠ Non c'è nessun video in coda.")
return return
if len(params) < 2: if len(params) == 1:
index = len(voice_queue) - 1 index = len(voice_queue) - 1
else: elif len(params) == 2:
try: try:
index = int(params[1]) - 1 index = int(params[1]) - 1
except ValueError: except ValueError:
await client.send_message(channel, "⚠ Il numero inserito non è valido.\n" await client.send_message(channel, "⚠ Il numero inserito non è valido.\n"
"Sintassi: `!remove [numerovideo]`") "Sintassi: `!remove [numerovideoiniziale] [numerovideofinale]`")
return return
if len(params) < 3:
if abs(index) >= len(voice_queue): if abs(index) >= len(voice_queue):
await client.send_message(channel, "⚠ Il numero inserito non corrisponde a nessun video nella playlist.\n" await client.send_message(channel, "⚠ Il numero inserito non corrisponde a nessun video nella playlist.\n"
"Sintassi: `!remove [numerovideo]`") "Sintassi: `!remove [numerovideoiniziale] [numerovideofinale]`")
return return
video = voice_queue.pop(index) del voice_queue[index]
await client.send_message(channel, f":regional_indicator_x: {str(video)} è stato rimosso dalla coda.") await client.send_message(channel, f":regional_indicator_x: {str(video)} è stato rimosso dalla coda.")
return
try:
start = int(params[1]) - 1
except ValueError:
await client.send_message(channel, "⚠ Il numero iniziale inserito non è valido.\n"
"Sintassi: `!remove [numerovideoiniziale] [numerovideofinale]`")
return
if start >= len(voice_queue):
await client.send_message(channel, "⚠ Il numero iniziale inserito non corrisponde a nessun video nella"
" playlist.\n"
"Sintassi: `!remove [numerovideoiniziale] [numerovideofinale]`")
return
try:
end = int(params[2]) - 2
except ValueError:
await client.send_message(channel, "⚠ Il numero finale inserito non è valido.\n"
"Sintassi: `!remove [numerovideoiniziale] [numerovideofinale]`")
return
if end >= len(voice_queue):
await client.send_message(channel, "⚠ Il numero finale inserito non corrisponde a nessun video nella"
" playlist.\n"
"Sintassi: `!remove [numerovideoiniziale] [numerovideofinale]`")
return
if start > end:
await client.send_message(channel, "⚠ Il numero iniziale è maggiore del numero finale.\n"
"Sintassi: `!remove [numerovideoiniziale] [numerovideofinale]`")
return
del voice_queue[start:end]
await client.send_message(channel, f":regional_indicator_x: {end - start} video rimossi dalla coda.")
@command @command
@ -460,7 +455,7 @@ async def cmd_clear(channel: discord.Channel, author: discord.Member, params: ty
await client.send_message(channel, "⚠ Non ci sono video in coda!") await client.send_message(channel, "⚠ Non ci sono video in coda!")
return return
voice_queue = [] voice_queue = []
await client.send_message(channel, " Tutti i video in coda rimossi.") await client.send_message(channel, ":regional_indicator_x: Tutti i video in coda rimossi.")
async def queue_predownload_videos(): async def queue_predownload_videos():
@ -534,6 +529,7 @@ commands = {
"!skip": cmd_skip, "!skip": cmd_skip,
"!s": cmd_skip, "!s": cmd_skip,
"!remove": cmd_remove, "!remove": cmd_remove,
"!cancel": cmd_remove,
"!queue": cmd_queue, "!queue": cmd_queue,
"!q": cmd_queue, "!q": cmd_queue,
"!shuffle": cmd_shuffle, "!shuffle": cmd_shuffle,