✨ Direct link search can handle invalid links.

This commit is contained in:
Robert Honz
2024-02-26 07:34:07 +01:00
parent d845f40e54
commit 3c57db9e82
2 changed files with 21 additions and 12 deletions
+7 -1
View File
@@ -6,6 +6,7 @@ from requests.exceptions import HTTPError
from tidal_dl_ng import __version__ from tidal_dl_ng import __version__
from tidal_dl_ng.dialog import DialogLogin, DialogPreferences, DialogVersion 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.path import get_format_template
from tidal_dl_ng.helper.tidal import ( from tidal_dl_ng.helper.tidal import (
get_tidal_media_id, get_tidal_media_id,
@@ -353,7 +354,12 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
if "http" in query: if "http" in query:
media_type = get_tidal_media_type(query) media_type = get_tidal_media_type(query)
item_id = get_tidal_media_id(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]} result_search = {"direct": [media]}
else: else:
result_search: dict[str, [SearchTypes]] = search_results_all( result_search: dict[str, [SearchTypes]] = search_results_all(
+14 -11
View File
@@ -112,17 +112,20 @@ def instantiate_media(
media_type: type[MediaType.TRACK, MediaType.VIDEO, MediaType.ALBUM, MediaType.PLAYLIST, MediaType.MIX], media_type: type[MediaType.TRACK, MediaType.VIDEO, MediaType.ALBUM, MediaType.PLAYLIST, MediaType.MIX],
id_media: str, id_media: str,
) -> Track | Video: ) -> Track | Video:
if media_type == MediaType.TRACK: try:
media = Track(session, id_media) if media_type == MediaType.TRACK:
elif media_type == MediaType.VIDEO: media = Track(session, id_media)
media = Video(session, id_media) elif media_type == MediaType.VIDEO:
elif media_type == MediaType.ALBUM: media = Video(session, id_media)
media = Album(session, id_media) elif media_type == MediaType.ALBUM:
elif media_type == MediaType.PLAYLIST: media = Album(session, id_media)
media = Playlist(session, id_media) elif media_type == MediaType.PLAYLIST:
elif media_type == MediaType.MIX: media = Playlist(session, id_media)
media = Mix(session, id_media) elif media_type == MediaType.MIX:
else: media = Mix(session, id_media)
else:
raise MediaUnknown
except:
raise MediaUnknown raise MediaUnknown
return media return media