✨ 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.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(
+14 -11
View File
@@ -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