refactor(commands/voice): clean up some code

This commit is contained in:
Ryan 2025-05-01 18:28:53 -04:00
parent 1316fb593c
commit f4b7e0f5ce

View File

@ -82,18 +82,19 @@ async def queue_or_play(message, edited=False):
players[message.guild.id] = audio.queue.Player() players[message.guild.id] = audio.queue.Player()
if edited: if edited:
found = None found = next(
for queued in players[message.guild.id].queue: filter(
if queued.trigger_message.id == message.id: lambda queued: queued.trigger_message.id == message.id,
found = queued players[message.guild.id].queue,
break ),
None,
)
if found: if found:
players[message.guild.id].queue.remove(found) players[message.guild.id].queue.remove(found)
if args.clear: if args.clear:
players[message.guild.id].queue.clear() players[message.guild.id].queue.clear()
await utils.add_check_reaction(message) await utils.add_check_reaction(message)
return
elif indices := args.remove_index: elif indices := args.remove_index:
targets = [] targets = []
for i in indices: for i in indices:
@ -114,15 +115,15 @@ async def queue_or_play(message, edited=False):
f"removed **{len(targets)}** queued {'song' if len(targets) == 1 else 'songs'}", f"removed **{len(targets)}** queued {'song' if len(targets) == 1 else 'songs'}",
) )
elif args.remove_title or args.remove_queuer: elif args.remove_title or args.remove_queuer:
targets = [] targets = set()
for queued in players[message.guild.id].queue: for queued in players[message.guild.id].queue:
if t := args.remove_title: if t := args.remove_title:
if t in queued.player.title: if t in queued.player.title:
targets.append(queued) targets.add(queued)
continue
if q := args.remove_queuer: if q := args.remove_queuer:
if q == queued.trigger_message.author.id: if q == queued.trigger_message.author.id:
targets.append(queued) targets.add(queued)
targets = list(targets)
if not args.match_multiple: if not args.match_multiple:
targets = targets[:1] targets = targets[:1]