From b686b057cd6f6758ae1deca08535f6088339ecfc Mon Sep 17 00:00:00 2001 From: Mylloon Date: Mon, 16 Aug 2021 17:58:02 +0200 Subject: [PATCH] =?UTF-8?q?adding=20=E2=9C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/cogs/music.py | 91 +++++++++++++++++++++++++++++------------------ 1 file changed, 57 insertions(+), 34 deletions(-) diff --git a/src/cogs/music.py b/src/cogs/music.py index f9fea09..3f5a070 100644 --- a/src/cogs/music.py +++ b/src/cogs/music.py @@ -30,7 +30,7 @@ from discord.ext import commands, menus from time import sleep import socket from discord_slash import cog_ext -from utils.core import isSlash, multipleArgsToTuple, mySendHidden +from utils.core import isSlash, multipleArgsToTuple, mySendHidden, addReaction from sys import _getframe # Genius API @@ -159,7 +159,7 @@ class Player(wavelink.Player): embed.set_thumbnail(url=track.thumb) embed.add_field(name="Durée", value=str(datetime.timedelta(milliseconds=int(track.length)))) - embed.add_field(name="Longueur de la file d'attente", value=str(qsize)) + embed.add_field(name="Longueur file d'attente", value=str(qsize)) embed.add_field(name="Volume", value=f"**`{self.volume}%`**") embed.add_field(name="Demandé par", value=track.requester.mention) embed.add_field(name="DJ", value=self.dj.mention) @@ -475,8 +475,7 @@ class Music(commands.Cog, wavelink.WavelinkMixin): player: Player = self.bot.wavelink.get_player(guild_id=ctx.guild.id, cls=Player, context=ctx) if player.is_connected: - mySendHidden(ctx, fromSlash, "Déjà connecté.") - return + return await mySendHidden(ctx, fromSlash, "Déjà connecté.") channel = getattr(ctx.author.voice, 'channel', channel) if channel is None: @@ -484,6 +483,8 @@ class Music(commands.Cog, wavelink.WavelinkMixin): await player.connect(channel.id) await ctx.send(f":thumbsup: **Connecté à __{channel.name}__**") + if fromSlash != True: + return await addReaction(ctx.message, 1) @cog_ext.cog_slash(name="join", description = "Se connecte au salon vocal.") async def _connect(self, ctx, channel = None): return await self.connect(ctx = ctx, channel = channel, fromSlash = True) @@ -530,6 +531,9 @@ class Music(commands.Cog, wavelink.WavelinkMixin): if not player.is_playing: await player.do_next() + + if fromSlash != True: + return await addReaction(ctx.message, 1) @cog_ext.cog_slash(name="play", description = "Joue ou met dans la file d'attente le son demandé.") async def _play(self, ctx, son): return await self.play(ctx = ctx, query = son, fromSlash = True) @@ -541,8 +545,10 @@ class Music(commands.Cog, wavelink.WavelinkMixin): player: Player = self.bot.wavelink.get_player(guild_id=ctx.guild.id, cls=Player, context=ctx) if player.is_paused or not player.is_connected: - await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") - return + return await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") + + if fromSlash != True: + await addReaction(ctx.message, 1) if self.is_privileged(ctx): await ctx.send(f"{ctx.author.mention} a mis la musique en pause.", delete_after=10) @@ -570,8 +576,10 @@ class Music(commands.Cog, wavelink.WavelinkMixin): player: Player = self.bot.wavelink.get_player(guild_id=ctx.guild.id, cls=Player, context=ctx) if not player.is_paused or not player.is_connected: - await mySendHidden(ctx, fromSlash, "Aucune musique en pause n'est en cours.") - return + return await mySendHidden(ctx, fromSlash, "Aucune musique en pause n'est en cours.") + + if fromSlash != True: + await addReaction(ctx.message, 1) if self.is_privileged(ctx): await ctx.send(f"{ctx.author.mention} a relancé la musique.", delete_after=10) @@ -599,8 +607,10 @@ class Music(commands.Cog, wavelink.WavelinkMixin): player: Player = self.bot.wavelink.get_player(guild_id=ctx.guild.id, cls=Player, context=ctx) if not player.is_connected: - await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") - return + return await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") + + if fromSlash != True: + await addReaction(ctx.message, 1) if self.is_privileged(ctx) or ctx.author == player.current.requester: await ctx.send(f"{ctx.author.mention} passe le son.", delete_after=10) @@ -628,8 +638,10 @@ class Music(commands.Cog, wavelink.WavelinkMixin): player: Player = self.bot.wavelink.get_player(guild_id=ctx.guild.id, cls=Player, context=ctx) if not player.is_connected: - await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") - return + return await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") + + if fromSlash != True: + await addReaction(ctx.message, 1) if self.is_privileged(ctx): await ctx.send(f"{ctx.author.mention} a déconnecté le bot et a supprimé la file d'attente.", delete_after=10) @@ -653,18 +665,22 @@ class Music(commands.Cog, wavelink.WavelinkMixin): _, fromSlash, _ = isSlash(multipleArgsToTuple(_getframe(0))) player: Player = self.bot.wavelink.get_player(guild_id=ctx.guild.id, cls=Player, context=ctx) - if not vol: - return await mySendHidden(ctx, fromSlash, f"Le volume est actuellement réglé à **{player.volume}%**.") - if not player.is_connected: - await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") - return + return await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") if not self.is_privileged(ctx): return await mySendHidden(ctx, fromSlash, "Seuls le DJ ou les admins peuvent modifier le volume.") - if not 0 < vol < 101: - return await mySendHidden(ctx, fromSlash, "Veuillez saisir une valeur comprise entre 1 et 100.") + if not vol: + await mySendHidden(ctx, fromSlash, f"Le volume est actuellement réglé à **{player.volume}%**.") + if fromSlash != True: + return await addReaction(ctx.message, 1) + else: + if not 0 < vol < 101: + return await mySendHidden(ctx, fromSlash, "Veuillez saisir une valeur comprise entre 1 et 100.") + + if fromSlash != True: + await addReaction(ctx.message, 1) await player.set_volume(vol) await ctx.send(f"Volume réglé sur **{vol}%** par {ctx.author.mention}", delete_after=7) @@ -679,12 +695,14 @@ class Music(commands.Cog, wavelink.WavelinkMixin): player: Player = self.bot.wavelink.get_player(guild_id=ctx.guild.id, cls=Player, context=ctx) if not player.is_connected: - await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") - return + return await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") if player.queue.qsize() < 3: return await mySendHidden(ctx, fromSlash, "Ajoutez d'autres sons à la file d'attente avant de les mélanger (3 minimum).", delete_after=15) + if fromSlash != True: + await addReaction(ctx.message, 1) + if self.is_privileged(ctx): await ctx.send(f"{ctx.author.mention} a mélangé la liste de lecture.", delete_after=10) player.shuffle_votes.clear() @@ -736,14 +754,13 @@ class Music(commands.Cog, wavelink.WavelinkMixin): await player.set_volume(vol) @commands.command(aliases=['eq']) - async def equalizer(self, ctx: commands.Context, *, equalizer: str, fromSlash = None): + async def equalizer(self, ctx: commands.Context, *, equalizer: str = "", fromSlash = None): """Change l'égaliseur de musique.\n ➡ Syntaxe: {PREFIX}equalizer/eq (flat/boost/metal/piano)""" _, fromSlash, _ = isSlash(multipleArgsToTuple(_getframe(0))) player: Player = self.bot.wavelink.get_player(guild_id=ctx.guild.id, cls=Player, context=ctx) if not player.is_connected: - await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") - return + return await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") if not self.is_privileged(ctx): return await mySendHidden(ctx, fromSlash, "Seul le DJ ou les admins peuvent modifier l'égaliseur.") @@ -760,6 +777,8 @@ class Music(commands.Cog, wavelink.WavelinkMixin): await ctx.send(f"Changement d'état de l'égaliseur en `{equalizer}` par {ctx.author.mention}.", delete_after=15) await player.set_eq(eq) + if fromSlash != True: + return await addReaction(ctx.message, 1) @cog_ext.cog_slash(name="equalizer", description = "Change l'égaliseur de musique. (flat/boost/metal/piano)") async def _equalizer(self, ctx, equalizer: str): return await self.equalizer(ctx = ctx, equalizer = equalizer, fromSlash = True) @@ -771,8 +790,7 @@ class Music(commands.Cog, wavelink.WavelinkMixin): player: Player = self.bot.wavelink.get_player(guild_id=ctx.guild.id, cls=Player, context=ctx) if not player.is_connected: - await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") - return + return await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") if player.queue.qsize() == 0: return await mySendHidden(ctx, fromSlash, "Il n'y a plus de sons dans la file d'attente.", delete_after=15) @@ -783,6 +801,8 @@ class Music(commands.Cog, wavelink.WavelinkMixin): if fromSlash: await ctx.send("Affichage de la liste ci-dessous.", hidden = True) + else: + return await addReaction(ctx.message, 1) await paginator.start(ctx) @cog_ext.cog_slash(name="queue", description = "Affiche les sons en attente.") async def _queue(self, ctx,): @@ -795,12 +815,13 @@ class Music(commands.Cog, wavelink.WavelinkMixin): player: Player = self.bot.wavelink.get_player(guild_id=ctx.guild.id, cls=Player, context=ctx) if not player.is_connected: - await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") - return + return await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") await player.invoke_controller() if fromSlash: await mySendHidden(ctx, fromSlash, "Mise à jour effectuée.") + else: + return await addReaction(ctx.message, 1) @cog_ext.cog_slash(name="nowplaying", description = "Met à jour l'embed qui affiche les informations sur la chanson en cours si besoin.") async def _nowplaying(self, ctx,): return await self.nowplaying(ctx = ctx, fromSlash = True) @@ -812,8 +833,7 @@ class Music(commands.Cog, wavelink.WavelinkMixin): player: Player = self.bot.wavelink.get_player(guild_id=ctx.guild.id, cls=Player, context=ctx) if not player.is_connected: - await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") - return + return await mySendHidden(ctx, fromSlash, "Aucune musique n'est en cours.") if not self.is_privileged(ctx): return await mySendHidden(ctx, fromSlash, "Seuls les admins et le DJ peuvent utiliser cette commande.", delete_after=15) @@ -829,6 +849,9 @@ class Music(commands.Cog, wavelink.WavelinkMixin): if len(members) <= 2: return await mySendHidden(ctx, fromSlash, "Aucun autre membre à qui donner le rôle de DJ.", delete_after=15) + if fromSlash != True: + await addReaction(ctx.message, 1) + if member: player.dj = member return await ctx.send(f"{member.mention} est maintenant le DJ.") @@ -861,13 +884,13 @@ class Music(commands.Cog, wavelink.WavelinkMixin): try: paroles = song_genius.lyrics except: - await ctx.message.add_reaction(emoji = '❌') + await addReaction(ctx.message, 2) return await message.edit(content = f"Pas de résultats trouvés pour `{song}`.") paroles = re.sub(r"3?EmbedShare URLCopyEmbedCopy", "", paroles) # Fix temporaire bug Genius lignetotal = "" premierembed = True if len(paroles) > 7500: - await ctx.message.add_reaction(emoji = '❌') + await addReaction(ctx.message, 2) return await message.edit(content = f"Les paroles sont trop longues pour être affichés (lien vers la page des paroles : {song_genius.url}).") title_first_embed = f"Paroles de {song_genius.title} par {song_genius.artist}." desc_first_embed = f"[Lien vers les paroles sur le site]({song_genius.url})" @@ -891,7 +914,7 @@ class Music(commands.Cog, wavelink.WavelinkMixin): temps_requete = int(round(nowCustom() * 1000)) - temps_requete footer_embed = f"Pour {userOrNick(ctx.author)} par Genius en {round(temps_requete / 1000, 2)} s." - await ctx.message.add_reaction(emoji = '✅') + await addReaction(ctx.message, 1) if premierembed == True: premierembed = False embed = discord.Embed(title = title_first_embed, description = f"{desc_first_embed}{lignetotal}", color = couleur_embed) @@ -902,7 +925,7 @@ class Music(commands.Cog, wavelink.WavelinkMixin): embed.set_footer(icon_url = ctx.author.avatar_url, text = footer_embed) return await ctx.send(embed = embed) else: - await ctx.message.add_reaction(emoji = '❌') + await addReaction(ctx.message, 2) await mySendHidden(ctx, fromSlash, f"Aucune musique demandé... `{ctx.prefix}lyrics/l/lyrics `.") @cog_ext.cog_slash(name="lyrics", description = "Affiche les paroles de la musique en cours, ou de la chanson spécifiée.") async def __lyrics(self, ctx, song: str):