From e257210e4a10941573390a65a51833a8e1641fb6 Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Sun, 5 Nov 2023 16:51:17 -0800 Subject: [PATCH] [BACKEND] Shared multi-url helper preset, can now disable grabbing poster/fanart (#807) --- src/ytdl_sub/downloaders/url/downloader.py | 4 ++ .../prebuilt_presets/helpers/url.yaml | 58 ++++++++----------- .../prebuilt_presets/tv_show/tv_show.yaml | 2 +- tests/e2e/plugins/test_regex.py | 2 +- 4 files changed, 30 insertions(+), 36 deletions(-) diff --git a/src/ytdl_sub/downloaders/url/downloader.py b/src/ytdl_sub/downloaders/url/downloader.py index e97f4223..4fb8f273 100644 --- a/src/ytdl_sub/downloaders/url/downloader.py +++ b/src/ytdl_sub/downloaders/url/downloader.py @@ -79,6 +79,10 @@ class UrlDownloaderThumbnailPlugin(SourcePluginExtension): thumbnail_name = self.overrides.apply_formatter(thumbnail_info.name, entry=entry) thumbnail_id = self.overrides.apply_formatter(thumbnail_info.uid) + # If the thumbnail name is an empty string, completely ignore trying to download it + if not thumbnail_name: + continue + # If latest entry, always update the thumbnail on each entry if thumbnail_id == ThumbnailTypes.LATEST_ENTRY: diff --git a/src/ytdl_sub/prebuilt_presets/helpers/url.yaml b/src/ytdl_sub/prebuilt_presets/helpers/url.yaml index 4d2900b6..06f0ec45 100644 --- a/src/ytdl_sub/prebuilt_presets/helpers/url.yaml +++ b/src/ytdl_sub/prebuilt_presets/helpers/url.yaml @@ -2,13 +2,26 @@ presets: - _single_url_base: - overrides: - subscription_value: "" - url: "{subscription_value}" - - _multi_url_base: +################################################################################## +# Multi urls in the form of +# +# "Subscription Name": +# - "url" +# - "url2" +# or +# +# "Subscription Name": "url" +# +# where url tries to grab channel avatar + banner +# + _multi_url: download: + - url: "{url}" + playlist_thumbnails: + - name: "{avatar_uncropped_thumbnail_file_name}" + uid: "avatar_uncropped" + - name: "{banner_uncropped_thumbnail_file_name}" + uid: "banner_uncropped" - url: "{url2}" - url: "{url3}" - url: "{url4}" @@ -29,6 +42,9 @@ presets: - url: "{url19}" - url: "{url20}" overrides: + avatar_uncropped_thumbnail_file_name: "" + banner_uncropped_thumbnail_file_name: "" + subscription_value: "" subscription_value_2: "" subscription_value_3: "" subscription_value_4: "" @@ -48,6 +64,7 @@ presets: subscription_value_18: "" subscription_value_19: "" subscription_value_20: "" + url: "{subscription_value}" url2: "{subscription_value_2}" url3: "{subscription_value_3}" url4: "{subscription_value_4}" @@ -66,31 +83,4 @@ presets: url17: "{subscription_value_17}" url18: "{subscription_value_18}" url19: "{subscription_value_19}" - url20: "{subscription_value_20}" - - _single_url: - preset: "_single_url_base" - download: - - "{url}" - - _single_url_with_avatar_and_banner: - preset: "_single_url_base" - download: - - url: "{url}" - playlist_thumbnails: - - name: "{avatar_uncropped_thumbnail_file_name}" - uid: "avatar_uncropped" - - name: "{banner_uncropped_thumbnail_file_name}" - uid: "banner_uncropped" - -################################################################################## - - _multi_url: - preset: - - "_single_url" - - "_multi_url_base" - - _multi_url_with_avatar_and_banner: - preset: - - "_single_url_with_avatar_and_banner" - - "_multi_url_base" \ No newline at end of file + url20: "{subscription_value_20}" \ No newline at end of file diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/tv_show.yaml b/src/ytdl_sub/prebuilt_presets/tv_show/tv_show.yaml index 6b3d34d7..eb6a1598 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/tv_show.yaml +++ b/src/ytdl_sub/prebuilt_presets/tv_show/tv_show.yaml @@ -33,7 +33,7 @@ presets: # TV show from one or more sources. Uses {url}'s avatar and banner as poster and fanart _tv_show_by_date: - preset: "_multi_url_with_avatar_and_banner" + preset: "_multi_url" overrides: avatar_uncropped_thumbnail_file_name: "{tv_show_poster_file_name}" banner_uncropped_thumbnail_file_name: "{tv_show_fanart_file_name}" diff --git a/tests/e2e/plugins/test_regex.py b/tests/e2e/plugins/test_regex.py index fa40ccb0..504f74bb 100644 --- a/tests/e2e/plugins/test_regex.py +++ b/tests/e2e/plugins/test_regex.py @@ -17,7 +17,6 @@ from ytdl_sub.utils.exceptions import ValidationException def regex_subscription_dict_base(output_directory): return { "preset": "Jellyfin Music Videos", - "download": "https://youtube.com/playlist?list=PL5BC0FC26BECA5A35", # override the output directory with our fixture-generated dir "output_options": {"output_directory": output_directory}, "format": "best[height<=480]", # download the worst format so it is fast @@ -43,6 +42,7 @@ def regex_subscription_dict_base(output_directory): }, "overrides": { "in_regex_default": "in regex default", + "url": "https://youtube.com/playlist?list=PL5BC0FC26BECA5A35", }, }