summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/gui.py
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2024-04-21 15:58:31 +0200
committerRobert Honz <exislow+github@gmail.com>2024-04-21 15:58:31 +0200
commitf9862e0646032628923dc696afb0fe04884eddfb (patch)
tree266a029363b050998eb2227d59cdde68f3db80f7 /tidal_dl_ng/gui.py
parent1224e42689e27fb75b5a4a742ac37f66e1c6eb07 (diff)
downloadtidal-dl-ng-f9862e0646032628923dc696afb0fe04884eddfb.tar.gz
✨ PKCE / OAuth login will be chosen on the fly, depending on the desired audio quality of the track to speed up non `HIRES_LOSSLESS` downloads. Quality for tracks in download queue can be chosen individually. Fixes #73
Diffstat (limited to 'tidal_dl_ng/gui.py')
-rw-r--r--tidal_dl_ng/gui.py23
1 files changed, 17 insertions, 6 deletions
diff --git a/tidal_dl_ng/gui.py b/tidal_dl_ng/gui.py
index dd500fc..903e8e8 100644
--- a/tidal_dl_ng/gui.py
+++ b/tidal_dl_ng/gui.py
@@ -9,6 +9,7 @@ from tidal_dl_ng import __version__, update_available
from tidal_dl_ng.dialog import DialogLogin, DialogPreferences, DialogVersion
from tidal_dl_ng.helper.gui import (
get_queue_download_media,
+ get_queue_download_quality,
get_results_media_item,
get_user_list_media_item,
set_queue_download_media,
@@ -542,7 +543,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
) -> QueueDownloadItem | bool:
result: QueueDownloadItem | False
name: str = ""
- quality: str = ""
+ quality: Quality
explicit: str = ""
# Check if item is available on TIDAL.
@@ -798,10 +799,11 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
result: QueueDownloadStatus
item: QtWidgets.QTreeWidgetItem = items[0]
media: Track | Album | Playlist | Video | Mix | Artist = get_queue_download_media(item)
+ quality: Quality = get_queue_download_quality(item)
try:
self.s_queue_download_item_downloading.emit(item)
- result = self.on_queue_download(media)
+ result = self.on_queue_download(media, quality=quality)
if result == QueueDownloadStatus.Finished:
self.s_queue_download_item_finished.emit(item)
@@ -827,7 +829,9 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def queue_download_item_status(self, item: QtWidgets.QTreeWidgetItem, status: str) -> None:
item.setText(0, status)
- def on_queue_download(self, media: Track | Album | Playlist | Video | Mix | Artist) -> QueueDownloadStatus:
+ def on_queue_download(
+ self, media: Track | Album | Playlist | Video | Mix | Artist, quality: Quality | None = None
+ ) -> QueueDownloadStatus:
result: QueueDownloadStatus
items_media: [Track | Album | Playlist | Video | Mix | Artist]
@@ -839,12 +843,16 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
download_delay: bool = bool(isinstance(media, Track | Video) and self.settings.data.download_delay)
for item_media in items_media:
- result = self.download(item_media, self.dl, delay_track=download_delay)
+ result = self.download(item_media, self.dl, delay_track=download_delay, quality=quality)
return result
def download(
- self, media: Track | Album | Playlist | Video | Mix | Artist, dl: Download, delay_track: bool = False
+ self,
+ media: Track | Album | Playlist | Video | Mix | Artist,
+ dl: Download,
+ delay_track: bool = False,
+ quality: Quality | None = None,
) -> QueueDownloadStatus:
result_dl: bool
path_file: str
@@ -855,13 +863,16 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
file_template = get_format_template(media, self.settings)
if isinstance(media, Track | Video):
- result_dl, path_file = dl.item(media=media, file_template=file_template, download_delay=delay_track)
+ result_dl, path_file = dl.item(
+ media=media, file_template=file_template, download_delay=delay_track, quality=quality
+ )
elif isinstance(media, Album | Playlist | Mix):
dl.items(
media=media,
file_template=file_template,
video_download=self.settings.data.video_download,
download_delay=self.settings.data.download_delay,
+ quality=quality,
)
# Dummy values