From 3e07ef0806f9e3ca2b11f7a3cf47cfee45a38c40 Mon Sep 17 00:00:00 2001 From: JISAUAY Date: Fri, 3 Oct 2025 10:17:54 -0500 Subject: [PATCH] removed old player stuff --- app.py | 96 +--------------------------------------------------------- 1 file changed, 1 insertion(+), 95 deletions(-) diff --git a/app.py b/app.py index fe7047a..0c2e565 100644 --- a/app.py +++ b/app.py @@ -89,7 +89,6 @@ class AlbumSongs(Screen): song_index = self._find_selected_song() app.play_song(self.songs[song_index]) app.song_queue = self.songs[song_index + 1:] - app.update_queue_table() def action_queue(self) -> None: app.queue_song(self._find_selected_song()) @@ -110,7 +109,6 @@ class AlbumSongs(Screen): random.shuffle(q) app.play_song(q.pop(0)) app.song_queue = q - app.update_queue_table() class ArtistAlbums(Screen): BINDINGS = [ @@ -686,7 +684,6 @@ class PlaylistSongs(Screen): song_index = self._find_selected_song() app.play_song(self.songs[song_index]) app.song_queue = self.songs[song_index + 1:] - app.update_queue_table() def action_queue(self) -> None: song_id: int = self._find_selected_song() @@ -703,7 +700,6 @@ class PlaylistSongs(Screen): random.shuffle(q) app.play_song(q.pop(0)) app.song_queue = q - app.update_queue_table() class Favourites(Screen): BINDINGS = [ @@ -745,7 +741,6 @@ class Favourites(Screen): song_index = self._find_selected_song() app.play_song(self.songs[song_index]) app.song_queue = self.songs[song_index + 1:] - app.update_queue_table() def action_queue(self) -> None: song_index = self._find_selected_song() @@ -762,7 +757,6 @@ class Favourites(Screen): random.shuffle(q) app.play_song(q.pop(0)) app.song_queue = q - app.update_queue_table() class CoverArtPixels(Container): @@ -881,84 +875,7 @@ class QueueTable(Widget): asyncio.create_task(asyncio.to_thread(conn.star, song.id)) -# Fine to be a static renderable because it's not big enough to need a scroll -class NowPlayingInfo(Container): - song = reactive[SubSonic.Song | None](None, layout=True) - - # Place is from pygame.mixer.music.get_pos and is in ms - place: reactive[int] = reactive(0) - - def render(self) -> RenderResult: - if self.song: - if self.song.title and self.song.artist: - - # Convert seconds to MM:SS - duration_min, duration_sec = divmod(self.song.duration, 60) - duration_formatted = f"{duration_min:02d}:{duration_sec:02d}" - - place_in_seconds = self.place // 1000 - place_min, place_sec = divmod(place_in_seconds, 60) - place_formatted = f"{place_min:02d}:{place_sec:02d}" - - s = f"Song: {self.song.title}\nAlbum: {self.song.album}\nArtist: {self.song.artist}\nProgress: {place_formatted} / {duration_formatted}\n" - - return s - return "Nothing Playing" - -class NowPlaying(Widget): - def compose(self) -> ComposeResult: - yield NowPlayingInfo(id="textinfo") - yield CoverArtPixels(id="coverart") - - def update_song(self, song: SubSonic.Song) -> None: - info = self.query_one(NowPlayingInfo) - info.song = song - - if song.albumId: - cover_art = self.query_one(CoverArtPixels) - - album = conn.getAlbumSongs(song.albumId) - if album: - cover_id: str | None = album[0].coverArtId - if cover_id: - cover_art.get_cover_art(cover_id) - - def set_place(self, place: int) -> None: - info = self.query_one(NowPlayingInfo) - info.place = place - -# https://textual.textualize.io/widgets/data_table/#labeled-rows -# Add this ^ to queue sometime plz -class MainView(Screen): - CSS_PATH = 'main.tcss' - - def compose(self) -> ComposeResult: - yield Header(icon="") - with Horizontal(id="headerbs"): - yield Label(Text("* F1 ", style="bold orange").append_text(Text("Player", style="white")), classes="headerb") - yield Label(Text("F2 ", style="bold orange").append_text(Text("Artists", style="white")), classes="headerb") - yield Label(Text("F3 ", style="bold orange").append_text(Text("Albums", style="white")), classes="headerb") - yield Label(Text("F4 ", style="bold orange").append_text(Text("Favourites", style="white")), classes="headerb") - yield Label(Text("F5 ", style="bold orange").append_text(Text("Playlists", style="white")), classes="headerb") - with Horizontal(): - with Vertical(classes="info", id='info'): - yield NowPlaying(id="now-playing") - # yield ProgressBar() - with Vertical(classes="column"): - yield Label("Queue") - yield QueueTable(id="queue") - yield Footer() - - def on_mount(self) -> None: - app.sub_title = "Overview" - - @on(events.ScreenResume) - def screen_resumed(self, event: events.ScreenResume) -> None: - app.sub_title = "Overview" - queue_table = self.query_one(QueueTable) - queue_table.update_queue() - app.update_now_playing() - +# TODO : https://textual.textualize.io/widgets/data_table/#labeled-rows class QueueScreen(ModalScreen): BINDINGS = [ @@ -1188,7 +1105,6 @@ class SubPy(App): self.check_playing_timer = self.set_interval(1 / 5, self.check_done_playing, pause=False) self.progess_timer = self.set_interval(0.3, self.update_progress, pause=False) - self.update_queue_table() self.update_now_playing() def _music_player_loop(self) -> None: @@ -1261,7 +1177,6 @@ class SubPy(App): song_to_play = self.play_history.pop() self.play_song(song_to_play) - self.update_queue_table() def update_progress(self) -> None: if isinstance(self.screen, Player) and self.currently_playing: @@ -1314,20 +1229,11 @@ class SubPy(App): logging.debug("Updating CoverArtPixels widget") self.screen.update_song(self.currently_playing) - def update_queue_table(self) -> None: - if isinstance(self.screen, MainView): - logging.debug("Updating queue through app") - queue_table = self.screen.query_one(QueueTable) - - queue_table.update_queue() - def update_user_queue(self, song: SubSonic.Song) -> None: self.user_queue.append(song) - self.update_queue_table() def update_song_queue(self, song: SubSonic.Song) -> None: self.song_queue.append(song) - self.update_queue_table() async def action_star_c_song(self) -> None: if self.currently_playing: