From 3c57db9e825825cf04eb89f6f2abdfb144630fdf Mon Sep 17 00:00:00 2001 From: Robert Honz Date: Mon, 26 Feb 2024 07:34:07 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Direct=20link=20search=20can=20hand?= =?UTF-8?q?le=20invalid=20links.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tidal_dl_ng/gui.py | 8 +++++++- tidal_dl_ng/helper/tidal.py | 25 ++++++++++++++----------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/tidal_dl_ng/gui.py b/tidal_dl_ng/gui.py index 0eb5697..34a42f7 100644 --- a/tidal_dl_ng/gui.py +++ b/tidal_dl_ng/gui.py @@ -6,6 +6,7 @@ from requests.exceptions import HTTPError from tidal_dl_ng import __version__ from tidal_dl_ng.dialog import DialogLogin, DialogPreferences, DialogVersion +from tidal_dl_ng.helper.exceptions import MediaUnknown from tidal_dl_ng.helper.path import get_format_template from tidal_dl_ng.helper.tidal import ( get_tidal_media_id, @@ -353,7 +354,12 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): if "http" in query: media_type = get_tidal_media_type(query) item_id = get_tidal_media_id(query) - media = instantiate_media(self.tidal.session, media_type, item_id) + + try: + media = instantiate_media(self.tidal.session, media_type, item_id) + except MediaUnknown: + media = None + result_search = {"direct": [media]} else: result_search: dict[str, [SearchTypes]] = search_results_all( diff --git a/tidal_dl_ng/helper/tidal.py b/tidal_dl_ng/helper/tidal.py index bdb2abf..e13c909 100644 --- a/tidal_dl_ng/helper/tidal.py +++ b/tidal_dl_ng/helper/tidal.py @@ -112,17 +112,20 @@ def instantiate_media( media_type: type[MediaType.TRACK, MediaType.VIDEO, MediaType.ALBUM, MediaType.PLAYLIST, MediaType.MIX], id_media: str, ) -> Track | Video: - if media_type == MediaType.TRACK: - media = Track(session, id_media) - elif media_type == MediaType.VIDEO: - media = Video(session, id_media) - elif media_type == MediaType.ALBUM: - media = Album(session, id_media) - elif media_type == MediaType.PLAYLIST: - media = Playlist(session, id_media) - elif media_type == MediaType.MIX: - media = Mix(session, id_media) - else: + try: + if media_type == MediaType.TRACK: + media = Track(session, id_media) + elif media_type == MediaType.VIDEO: + media = Video(session, id_media) + elif media_type == MediaType.ALBUM: + media = Album(session, id_media) + elif media_type == MediaType.PLAYLIST: + media = Playlist(session, id_media) + elif media_type == MediaType.MIX: + media = Mix(session, id_media) + else: + raise MediaUnknown + except: raise MediaUnknown return media