import TermTk as ttk import SubSonic u = 'pseudo' p = 'telegram9dock-MICHEL' echidna_id = "937004317800a879f0cddd471fb82387" class SubPlayer: conn: SubSonic.SubpyConn artists: list[SubSonic.Artist] selected_artist: SubSonic.Artist selected_album: SubSonic.Album selected_songs: list[SubSonic.Song] def __init__(self, conn: SubSonic.SubpyConn): self.conn = conn def run(self) -> None: self.artists = conn.getArtists() self.root = ttk.TTk(layout=ttk.TTkHBoxLayout()) self.artistList = ttk.TTkList( name="Artists", parent=self.root, items=[artist.name for artist in self.artists] ) self.albumList = ttk.TTkList( name="ArtistAlbums", parent=self.root ) self.songList = ttk.TTkList( name="AlbumSongs", parent=self.root ) self.artistList.itemClicked.connect(self.clickArtist) self.albumList.itemClicked.connect(self.clickAlbum) self.root.mainloop() def _clearSongs(self) -> None: self.songList.removeItems(self.songList.items()) self.songList.setVisible(False) self.songList.setEnabled(False) def _clearAlbums(self) -> None: self.albumList.removeItems(self.albumList.items()) # self.albumList.setVisible(False) # self.albumList.setEnabled(False) @ttk.pyTTkSlot(ttk.TTkWidgets.listwidget.TTkAbstractListItem) def clickArtist(self, v: ttk.TTkWidgets.listwidget.TTkAbstractListItem): # ttk.TTkLog.debug('test') # print(v.text()) artist_name = v.text() for artist in self.artists: if artist.name == artist_name: self.selected_artist = artist self._clearAlbums() self._clearSongs() # self.albumList.setVisible(True) # self.albumList.setEnabled(True) albums = conn.getArtistAlbums(self.selected_artist.id) self.albumList.addItems([album.name for album in albums]) @ttk.pyTTkSlot(ttk.TTkWidgets.listwidget.TTkAbstractListItem) def clickAlbum(self, v: ttk.TTkWidgets.listwidget.TTkAbstractListItem): album_name = v.text() albums = conn.getArtistAlbums(self.selected_artist.id) for album in albums: if album.title == album_name: self.selected_album = album # print('b') self._clearSongs() self.songList.setVisible(True) self.songList.setEnabled(True) self.songList.addItems([song.title for song in conn.getAlbumSongs(self.selected_album.id)]) conn = SubSonic.SubpyConn(u, p, "https://music.0x01fe.net") player = SubPlayer(conn) player.run()