summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2024-05-24 09:31:37 +0200
committerRobert Honz <exislow+github@gmail.com>2024-05-24 09:31:37 +0200
commit182e53179894f129ee6a2b590fff72c4b5e4c500 (patch)
tree6e45a143012641b036d1cfba0db46cab9ac47c01
parente0d0b8ec8cc245ae8a7e115b900fd6bc7587c674 (diff)
downloadtidal-dl-ng-182e53179894f129ee6a2b590fff72c4b5e4c500.tar.gz
🛠️ Fixed crash on right click -> download a favorite list.
-rw-r--r--tidal_dl_ng/gui.py9
-rw-r--r--tidal_dl_ng/helper/tidal.py8
2 files changed, 14 insertions, 3 deletions
diff --git a/tidal_dl_ng/gui.py b/tidal_dl_ng/gui.py
index 5f1fa24..56df35c 100644
--- a/tidal_dl_ng/gui.py
+++ b/tidal_dl_ng/gui.py
@@ -6,6 +6,7 @@ from collections.abc import Callable, Sequence
from PySide6.QtGui import QStandardItem
from requests.exceptions import HTTPError
+from helper.tidal import favorite_function_factory
from tidal_dl_ng import __version__, update_available
from tidal_dl_ng.dialog import DialogLogin, DialogPreferences, DialogVersion
from tidal_dl_ng.helper.gui import (
@@ -725,8 +726,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
# Only if clicked item is not a top level item.
if media_list:
if isinstance(media_list, str) and media_list.startswith("fav_"):
- function_name: str = FAVORITES[media_list]["function_name"]
- function_list = getattr(self.tidal.session.user.favorites, function_name)
+ function_list = favorite_function_factory(self.tidal, media_list)
self.list_items_show_result(favorite_function=function_list)
else:
@@ -775,7 +775,10 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
media_list = get_user_list_media_item(item)
# Get all results
- if favorite_function:
+ if favorite_function or isinstance(media_list, str):
+ if isinstance(media_list, str):
+ favorite_function = favorite_function_factory(self.tidal, media_list)
+
media_items: [Track | Video | Album] = favorite_function()
else:
media_items: [Track | Video | Album] = items_results_all(media_list)
diff --git a/tidal_dl_ng/helper/tidal.py b/tidal_dl_ng/helper/tidal.py
index 2eece35..4b04bb7 100644
--- a/tidal_dl_ng/helper/tidal.py
+++ b/tidal_dl_ng/helper/tidal.py
@@ -5,6 +5,7 @@ from tidalapi.artist import Artist, Role
from tidalapi.media import MediaMetadataTags, Quality
from tidalapi.session import SearchTypes
+from tidal_dl_ng.constants import FAVORITES
from tidal_dl_ng.constants import MediaType
from tidal_dl_ng.helper.exceptions import MediaUnknown
@@ -192,3 +193,10 @@ def quality_audio_highest(media: Track | Album) -> Quality:
quality = media.audio_quality
return quality
+
+
+def favorite_function_factory(tidal, favorite_item: str):
+ function_name: str = FAVORITES[favorite_item]["function_name"]
+ function_list: Callable = getattr(tidal.session.user.favorites, function_name)
+
+ return function_list