Esempio n. 1
0
    async def queue(self, ctx, page=1):
        await ctx.channel.purge(limit=1)
        voice = get(bot.voice_clients, guild=ctx.guild)
        playing, content, pg, iterator, queueSize = "", "", 0, 0, 5
        page = page - 1

        if voice and voice.is_playing:
            playing = f"[{self.songQueue[ctx.guild.id][0]['title']}]({self.songQueue[ctx.guild.id][0]['webpage_url']})"
        else:
            await ctx.send("Nothing playing", delete_after=10)

        if len(self.songQueue[ctx.guild.id]) > 1:
            for i in self.songQueue[ctx.guild.id][1:]:
                iterator += 1
                pg = iterator // queueSize + 1

                if page == iterator // queueSize:
                    content += "\n".join(
                        [f" **{self.songQueue[ctx.guild.id].index(i)}:** [{i['title']}]({i['webpage_url']})\n"
                         f"**Requested by:** {ctx.author.mention}   "
                         f"**Duration:** {TimeManager.parseDuration(i['duration'])}\n"])
            if pg > 1:
                content += "\n".join([f"**Page:** {page + 1}/{pg}"])
        else:
            content = "No queued songs"

        embed = (discord.Embed(title="Music queue", color=self.embedColor)
                 .add_field(name="Playing now: ", value=playing, inline=False)
                 .add_field(name="Requested by", value=f"{ctx.author.mention}", inline=True)
                 .add_field(name="Duration",
                            value=TimeManager.parseDuration(self.songQueue[ctx.guild.id][0]['duration']),
                            inline=True)
                 .add_field(name="Queued: ", value=content, inline=False)
                 .set_thumbnail(url=self.songQueue[ctx.guild.id][0]["thumbnail"]))
        await ctx.send(embed=embed)
Esempio n. 2
0
    async def edit_message(self, ctx):
        currentSong = self.songQueue[ctx.guild.id][0]
        embed = (discord.Embed(title="Currently playing",
                               description=f"[{currentSong['title']}]({currentSong['webpage_url']})",
                               color=self.embedColor)
                 .add_field(name="Duration", value=TimeManager.parseDuration(currentSong["duration"]))
                 .add_field(name="Requested by", value=ctx.author.mention)
                 .add_field(name="Uploader", value=f"[{currentSong['uploader']}]({currentSong['channel_url']})")
                 .add_field(name="Queue", value="No song queued")
                 .set_thumbnail(url=currentSong["thumbnail"]))
        content = "\n".join([f"**{self.songQueue[ctx.guild.id].index(i)}:**"
                             f"[{i['title']}]({i['webpage_url']})\n**Requested by:** {ctx.author.mention} "
                             f"**Duration:** {TimeManager.parseDuration(i['duration'])}"
                             for i in self.songQueue[ctx.guild.id][1:5]]) if len(self.songQueue[ctx.guild.id]) > 1 \
            else "No songs are queued"
        embed.set_field_at(index=3, name="Queue", value=content, inline=False)

        if ctx.guild.id in self.message:
            await self.message[ctx.guild.id].edit(embed=embed)
        else:
            self.message[ctx.guild.id] = await ctx.send(embed=embed)