working with reactive stuff
This commit is contained in:
1 parent
7ad56fa4be
commit
6c4e9c40b1
25 files changed
+20867
-20649
No files matched your search
+99
-99
@@ -1,99 +1,99 @@
|
||||
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()
|
||||
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()
|
||||
Reference in new issue
Block a user