summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2024-01-19 07:34:32 +0100
committerRobert Honz <exislow+github@gmail.com>2024-01-19 07:34:32 +0100
commit53c8db80f8884c0e08e4f2908caaaf1a8e0e5697 (patch)
treec46d9076935864da638880f70ca24dc7003f60ab
parent8e9e2c1794c44033438d9808fd4487f5b822725f (diff)
downloadtidal-dl-ng-53c8db80f8884c0e08e4f2908caaaf1a8e0e5697.tar.gz
♻️ Refactoring of tidal related function. Cleaned up TODOs.
-rw-r--r--tidal_dl_ng/gui.py19
-rw-r--r--tidal_dl_ng/helper/tidal.py10
2 files changed, 13 insertions, 16 deletions
diff --git a/tidal_dl_ng/gui.py b/tidal_dl_ng/gui.py
index de963b0..e1be127 100644
--- a/tidal_dl_ng/gui.py
+++ b/tidal_dl_ng/gui.py
@@ -3,7 +3,7 @@ import sys
from collections.abc import Callable
from tidal_dl_ng.helper.path import get_format_template
-from tidal_dl_ng.helper.tidal import items_results_all, search_results_all
+from tidal_dl_ng.helper.tidal import items_results_all, search_results_all, user_media_lists
try:
import qdarktheme
@@ -69,7 +69,6 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
self.settings = Settings()
self.threadpool = QtCore.QThreadPool()
- # TODO: Show GUI, create a progress bar showing the TIDAL querying progress.
self._init_tree_results(self.tr_results)
self._init_tree_lists(self.tr_lists_user)
self._init_progressbar()
@@ -145,14 +144,11 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
tree.setColumnHidden(5, True)
tree.sortByColumn(0, QtCore.Qt.SortOrder.AscendingOrder)
- # TODO: Refactor to own TIDAL file or so.
def tidal_user_lists(self):
# Start loading spinner
self.spinner_start.emit(self.tr_lists_user)
- user_playlists: [Playlist | UserPlaylist] = self.tidal.session.user.playlist_and_favorite_playlists()
- user_mixes: [Mix] = self.tidal.session.mixes().categories[0].items
- user_all: [Playlist | UserPlaylist | Mix] = user_playlists + user_mixes
+ user_all: [Playlist | UserPlaylist | Mix] = user_media_lists(self.tidal.session)
self.s_populate_tree_lists.emit(user_all)
@@ -280,7 +276,6 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
child.setText(4, duration)
child.setData(5, QtCore.Qt.ItemDataRole.UserRole, item.obj)
- # TODO: Fix "QBasicTimer::start: Timers cannot be started from another thread"
self.s_tr_results_add_top_level_item.emit(child)
def on_tr_results_add_top_level_item(self, widget_item: QtWidgets.QTreeWidgetItem):
@@ -440,7 +435,6 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
self.b_download.setEnabled(True)
def download(self, media: Track | Album | Playlist | Video | Mix, dl: Download) -> None:
- # TODO: Refactor this. Move this logic to `Download` class and provide a generic interface.
self.s_pb_reset.emit()
self.s_statusbar_message.emit(StatusbarMessage(message="Download started..."))
@@ -454,7 +448,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
file_template = get_format_template(media, self.settings)
if isinstance(media, Track | Video):
- result_download, download_path_file = dl.item(
+ dl.item(
media=media,
path_base=self.settings.data.download_base_path,
file_template=file_template,
@@ -462,16 +456,11 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
progress=progress,
fn_logger=logger_gui,
)
-
- if result_download:
- logger_gui.info(f"Download successful: {download_path_file}")
- else:
- logger_gui.info(f"Download skipped (file exists): {download_path_file}")
elif isinstance(media, Album | Playlist | Mix):
dl.items(
+ media=media,
path_base=self.settings.data.download_base_path,
file_template=file_template,
- media=media,
video_download=self.settings.data.video_download,
progress_gui=data_pb,
progress=progress,
diff --git a/tidal_dl_ng/helper/tidal.py b/tidal_dl_ng/helper/tidal.py
index 60f636d..9c4eeba 100644
--- a/tidal_dl_ng/helper/tidal.py
+++ b/tidal_dl_ng/helper/tidal.py
@@ -1,4 +1,4 @@
-from tidalapi import Album, Mix, Playlist, Session, Track, Video
+from tidalapi import Album, Mix, Playlist, Session, Track, UserPlaylist, Video
from tidalapi.session import SearchTypes
from tidal_dl_ng.constants import MediaType
@@ -96,3 +96,11 @@ def items_results_all(media_list: [Mix | Playlist | Album], videos_include: bool
done = True
return result
+
+
+def user_media_lists(session: Session) -> [Playlist | UserPlaylist | Mix]:
+ user_playlists: [Playlist | UserPlaylist] = session.user.playlist_and_favorite_playlists()
+ user_mixes: [Mix] = session.mixes().categories[0].items
+ result: [Playlist | UserPlaylist | Mix] = user_playlists + user_mixes
+
+ return result