From f6f2c0b7c3d4136c35bb204a24d281c10923c464 Mon Sep 17 00:00:00 2001 From: Choco <94597336+ChocoMeow@users.noreply.github.com> Date: Wed, 21 Feb 2024 10:27:08 +0800 Subject: [PATCH] Added track url in queue view and playlist view --- cogs/basic.py | 7 ++++--- function.py | 2 +- views/list.py | 5 ++--- views/playlist.py | 12 ++++++------ 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/cogs/basic.py b/cogs/basic.py index 7eac7d6..040c763 100644 --- a/cogs/basic.py +++ b/cogs/basic.py @@ -27,12 +27,13 @@ from io import StringIO from discord import app_commands from discord.ext import commands from function import ( + settings, send, time as ctime, formatTime, get_source, get_lang, - settings, + truncate_string, cooldown_check, get_aliases ) @@ -54,11 +55,11 @@ async def nowplay(ctx: commands.Context, player: voicelink.Player): return await send(ctx, 'noTrackPlaying', ephemeral=True) texts = await get_lang(ctx.guild.id, "nowplayingDesc", "nowplayingField", "nowplayingLink") - upnext = "\n".join(f"`{index}.` `[{track.formatted_length}]` [{track.title[:30]}]({track.uri})" for index, track in enumerate(player.queue.tracks()[:2], start=2)) + upnext = "\n".join(f"`{index}.` `[{track.formatted_length}]` [{truncate_string(track.title)}]({track.uri})" for index, track in enumerate(player.queue.tracks()[:2], start=2)) embed = discord.Embed(description=texts[0].format(track.title), color=settings.embed_color) embed.set_author( - name=track.requester, + name=track.requester.display_name, icon_url=track.requester.display_avatar.url ) embed.set_thumbnail(url=track.thumbnail) diff --git a/function.py b/function.py index c9564e6..354c023 100644 --- a/function.py +++ b/function.py @@ -129,7 +129,7 @@ def get_aliases(name: str) -> list: def check_roles() -> tuple[str, int, int]: return 'Normal', 5, 500 -def truncate_string(text: str, length: int = 30) -> str: +def truncate_string(text: str, length: int = 40) -> str: return text[:length - 3] + "..." if len(text) > length else text def get_lang_non_async(guild_id: int, *keys) -> Union[list[str], str]: diff --git a/views/list.py b/views/list.py index 004358c..8ed2eee 100644 --- a/views/list.py +++ b/views/list.py @@ -78,11 +78,10 @@ class ListView(discord.ui.View): embed = discord.Embed(title=texts[0], color=func.settings.embed_color) embed.description=texts[1].format(self.player.current.uri, f"```{self.player.current.title}```") if self.player.current else texts[2].format("None") - queueText = "\n".join([ - f"{track.emoji} `{i}.` `[" + (texts[3] if track.is_stream else func.time(track.length)) + f'`] **{track.title[:30]}** ' + (track.requester.mention) + embed.description += "\n" + (texts[4] if self.is_queue else texts[5]) + "\n" + "\n".join([ + f"{track.emoji} `{i:>2}.` `[" + (texts[3] if track.is_stream else func.time(track.length)) + f'`] **[{func.truncate_string(track.title)}]({track.uri})** ' + (track.requester.mention) for i, track in enumerate(tracks, start=offset-6) ]) - embed.add_field(name=texts[4] if self.is_queue else texts[5], value=queueText) embed.set_footer(text=texts[6].format(self.current_page, self.page, self.time)) return embed diff --git a/views/playlist.py b/views/playlist.py index fc61f0d..97bea86 100644 --- a/views/playlist.py +++ b/views/playlist.py @@ -94,21 +94,21 @@ class PlaylistView(discord.ui.View): texts = await func.get_lang(self.author.guild.id, "playlistView", "playlistViewDesc", "settingsPermTitle", "playlistViewPermsValue", "playlistViewPermsValue2", "playlistViewTrack", "playlistNoTrack", "playlistViewPage") embed = discord.Embed(title=texts[0], color=func.settings.embed_color) - embed.description= texts[1].format(self.current['name'], self.current['id'], len(self.current['tracks']), owner if (owner := self.current.get('owner')) else f"{self.author.id} (You)", self.current['type']) + embed.description = texts[1].format(self.current['name'], self.current['id'], len(self.current['tracks']), owner if (owner := self.current.get('owner')) else f"{self.author.id} (You)", self.current['type']) + "\n" perms = self.current['perms'] if self.current['type'] == 'share': - embed.add_field(name=texts[2], value=texts[3].format('✓' if 'write' in perms and self.author.id in perms['write'] else '✘', '✓' if 'remove' in perms and self.author.id in perms['remove'] else '✘')) + embed.description += texts[2] + "\n" + texts[3].format('✓' if 'write' in perms and self.author.id in perms['write'] else '✘', '✓' if 'remove' in perms and self.author.id in perms['remove'] else '✘') else: - embed.add_field(name=texts[2], value=texts[4].format(', '.join(f'<@{user}>' for user in perms['read']))) + embed.description += texts[2] + "\n" + texts[4].format(', '.join(f'<@{user}>' for user in perms['read'])) if tracks: if self.current.get("type") == "playlist": - embed.add_field(name=texts[5], value="\n".join(f"{func.get_source(track['sourceName'], 'emoji')} `{index}.` `[{func.time(track['length'])}]` **{track['title'][:30]}**" for index, track in enumerate(tracks, start=offset - 6)), inline=False) + embed.description += texts[5] + "\n" + "\n".join(f"{func.get_source(track['sourceName'], 'emoji')} `{index:>2}.` `[{func.time(track['length'])}]` **{track['title'][:30]}**" for index, track in enumerate(tracks, start=offset - 6)) else: - embed.add_field(name=texts[5], value='\n'.join(f"{func.get_source(extract(track.info['uri']).domain, 'emoji')} `{index}.` `[{func.time(track.length)}]` **{track.title[:30]}** " for index, track in enumerate(tracks, start=offset - 6)), inline=False) + embed.description += texts[5] + "\n" + '\n'.join(f"{func.get_source(extract(track.info['uri']).domain, 'emoji')} `{index:>2}.` `[{func.time(track.length)}]` **[{func.truncate_string(track.title)}]({track.uri})** " for index, track in enumerate(tracks, start=offset - 6)) else: - embed.add_field(name=texts[5], value=texts[6].format(self.current['name']), inline=False) + embed.description += texts[5] + "\n" + texts[6].format(self.current['name']) embed.set_footer(text=texts[7].format(self.current_page, self.page, self.current['time']))