✨ Download list will indicate, if a file was skipped.
This commit is contained in:
@@ -64,3 +64,4 @@ class QueueDownloadStatus(StrEnum):
|
|||||||
Downloading: str = "▶️"
|
Downloading: str = "▶️"
|
||||||
Finished: str = "✅"
|
Finished: str = "✅"
|
||||||
Failed: str = "❌"
|
Failed: str = "❌"
|
||||||
|
Skipped: str = "↪️"
|
||||||
|
|||||||
+35
-5
@@ -83,6 +83,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
s_queue_download_item_downloading: QtCore.Signal = QtCore.Signal(object)
|
s_queue_download_item_downloading: QtCore.Signal = QtCore.Signal(object)
|
||||||
s_queue_download_item_finished: QtCore.Signal = QtCore.Signal(object)
|
s_queue_download_item_finished: QtCore.Signal = QtCore.Signal(object)
|
||||||
s_queue_download_item_failed: QtCore.Signal = QtCore.Signal(object)
|
s_queue_download_item_failed: QtCore.Signal = QtCore.Signal(object)
|
||||||
|
s_queue_download_item_skipped: QtCore.Signal = QtCore.Signal(object)
|
||||||
|
|
||||||
def __init__(self, tidal: Tidal | None = None):
|
def __init__(self, tidal: Tidal | None = None):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
@@ -636,6 +637,8 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
self.s_queue_download_item_downloading.connect(self.on_queue_download_item_downloading)
|
self.s_queue_download_item_downloading.connect(self.on_queue_download_item_downloading)
|
||||||
self.s_queue_download_item_finished.connect(self.on_queue_download_item_finished)
|
self.s_queue_download_item_finished.connect(self.on_queue_download_item_finished)
|
||||||
self.s_queue_download_item_failed.connect(self.on_queue_download_item_failed)
|
self.s_queue_download_item_failed.connect(self.on_queue_download_item_failed)
|
||||||
|
self.s_queue_download_item_skipped.connect(self.on_queue_download_item_skipped)
|
||||||
|
|
||||||
|
|
||||||
def on_logout(self):
|
def on_logout(self):
|
||||||
result: bool = self.tidal.logout()
|
result: bool = self.tidal.logout()
|
||||||
@@ -795,13 +798,18 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if len(items) > 0:
|
if len(items) > 0:
|
||||||
|
result: QueueDownloadStatus
|
||||||
item: QtWidgets.QTreeWidgetItem = items[0]
|
item: QtWidgets.QTreeWidgetItem = items[0]
|
||||||
media: Track | Album | Playlist | Video | Mix | Artist = get_queue_download_media(item)
|
media: Track | Album | Playlist | Video | Mix | Artist = get_queue_download_media(item)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.s_queue_download_item_downloading.emit(item)
|
self.s_queue_download_item_downloading.emit(item)
|
||||||
self.on_queue_download(media)
|
result = self.on_queue_download(media)
|
||||||
|
|
||||||
|
if result == QueueDownloadStatus.Finished:
|
||||||
self.s_queue_download_item_finished.emit(item)
|
self.s_queue_download_item_finished.emit(item)
|
||||||
|
elif result == QueueDownloadStatus.Skipped:
|
||||||
|
self.s_queue_download_item_skipped.emit(item)
|
||||||
except:
|
except:
|
||||||
self.s_queue_download_item_failed.emit(item)
|
self.s_queue_download_item_failed.emit(item)
|
||||||
else:
|
else:
|
||||||
@@ -816,10 +824,14 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
def on_queue_download_item_failed(self, item: QtWidgets.QTreeWidgetItem) -> None:
|
def on_queue_download_item_failed(self, item: QtWidgets.QTreeWidgetItem) -> None:
|
||||||
self.queue_download_item_status(item, QueueDownloadStatus.Failed)
|
self.queue_download_item_status(item, QueueDownloadStatus.Failed)
|
||||||
|
|
||||||
|
def on_queue_download_item_skipped(self, item: QtWidgets.QTreeWidgetItem) -> None:
|
||||||
|
self.queue_download_item_status(item, QueueDownloadStatus.Skipped)
|
||||||
|
|
||||||
def queue_download_item_status(self, item: QtWidgets.QTreeWidgetItem, status: str) -> None:
|
def queue_download_item_status(self, item: QtWidgets.QTreeWidgetItem, status: str) -> None:
|
||||||
item.setText(0, status)
|
item.setText(0, status)
|
||||||
|
|
||||||
def on_queue_download(self, media: Track | Album | Playlist | Video | Mix | Artist) -> None:
|
def on_queue_download(self, media: Track | Album | Playlist | Video | Mix | Artist) -> QueueDownloadStatus:
|
||||||
|
result: QueueDownloadStatus
|
||||||
items_media: [Track | Album | Playlist | Video | Mix | Artist]
|
items_media: [Track | Album | Playlist | Video | Mix | Artist]
|
||||||
|
|
||||||
if isinstance(media, Artist):
|
if isinstance(media, Artist):
|
||||||
@@ -830,18 +842,23 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
download_delay: bool = bool(isinstance(media, Track | Video) and self.settings.data.download_delay)
|
download_delay: bool = bool(isinstance(media, Track | Video) and self.settings.data.download_delay)
|
||||||
|
|
||||||
for item_media in items_media:
|
for item_media in items_media:
|
||||||
self.download(item_media, self.dl, delay_track=download_delay)
|
result = self.download(item_media, self.dl, delay_track=download_delay)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
def download(
|
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
|
||||||
) -> None:
|
) -> QueueDownloadStatus:
|
||||||
|
result_dl: bool
|
||||||
|
path_file: str
|
||||||
|
result: QueueDownloadStatus
|
||||||
self.s_pb_reset.emit()
|
self.s_pb_reset.emit()
|
||||||
self.s_statusbar_message.emit(StatusbarMessage(message="Download started..."))
|
self.s_statusbar_message.emit(StatusbarMessage(message="Download started..."))
|
||||||
|
|
||||||
file_template = get_format_template(media, self.settings)
|
file_template = get_format_template(media, self.settings)
|
||||||
|
|
||||||
if isinstance(media, Track | Video):
|
if isinstance(media, Track | Video):
|
||||||
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)
|
||||||
elif isinstance(media, Album | Playlist | Mix):
|
elif isinstance(media, Album | Playlist | Mix):
|
||||||
dl.items(
|
dl.items(
|
||||||
media=media,
|
media=media,
|
||||||
@@ -850,8 +867,21 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
download_delay=self.settings.data.download_delay,
|
download_delay=self.settings.data.download_delay,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Dummy values
|
||||||
|
result_dl = True
|
||||||
|
path_file = "/tmp/dummy"
|
||||||
|
|
||||||
self.s_statusbar_message.emit(StatusbarMessage(message="Download finished.", timout=2000))
|
self.s_statusbar_message.emit(StatusbarMessage(message="Download finished.", timout=2000))
|
||||||
|
|
||||||
|
if result_dl and path_file:
|
||||||
|
result = QueueDownloadStatus.Finished
|
||||||
|
elif not result_dl and path_file:
|
||||||
|
result = QueueDownloadStatus.Skipped
|
||||||
|
else:
|
||||||
|
result = QueueDownloadStatus.Failed
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
def on_version(
|
def on_version(
|
||||||
self, update_check: bool = False, update_available: bool = False, update_info: ReleaseLatest = None
|
self, update_check: bool = False, update_available: bool = False, update_info: ReleaseLatest = None
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user