From 12300a85ebe23754c641327d77852ced7fd93f94 Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Tue, 25 Jul 2023 13:25:19 -0700 Subject: [PATCH] priority to plugin extensions --- src/ytdl_sub/config/plugin.py | 5 ++++- src/ytdl_sub/downloaders/url/downloader.py | 5 +++++ src/ytdl_sub/subscriptions/subscription_download.py | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ytdl_sub/config/plugin.py b/src/ytdl_sub/config/plugin.py index b6c4bf5e..6930e632 100644 --- a/src/ytdl_sub/config/plugin.py +++ b/src/ytdl_sub/config/plugin.py @@ -28,7 +28,10 @@ class PluginPriority: MODIFY_ENTRY_FIRST = 0 - def __init__(self, modify_entry: int = 5, post_process: int = 5): + def __init__( + self, modify_entry_metadata: int = 5, modify_entry: int = 5, post_process: int = 5 + ): + self.modify_entry_metadata = modify_entry_metadata self.modify_entry = modify_entry self.post_process = post_process diff --git a/src/ytdl_sub/downloaders/url/downloader.py b/src/ytdl_sub/downloaders/url/downloader.py index 5cdf5491..c6061193 100644 --- a/src/ytdl_sub/downloaders/url/downloader.py +++ b/src/ytdl_sub/downloaders/url/downloader.py @@ -12,6 +12,7 @@ from typing import Tuple from yt_dlp.utils import RejectedVideoReached +from ytdl_sub.config.plugin import PluginPriority from ytdl_sub.config.preset_options import Overrides from ytdl_sub.downloaders.source_plugin import SourcePlugin from ytdl_sub.downloaders.source_plugin import SourcePluginExtension @@ -54,6 +55,8 @@ class URLDownloadState: class UrlDownloaderThumbnailPlugin(SourcePluginExtension): + priority = PluginPriority(modify_entry=0) + def __init__( self, options: MultiUrlSourceOptionsValidator, @@ -153,6 +156,8 @@ class UrlDownloaderThumbnailPlugin(SourcePluginExtension): class UrlDownloaderCollectionVariablePlugin(SourcePluginExtension): + priority = PluginPriority(modify_entry_metadata=0) + def __init__( self, options: MultiUrlSourceOptionsValidator, diff --git a/src/ytdl_sub/subscriptions/subscription_download.py b/src/ytdl_sub/subscriptions/subscription_download.py index 54a15531..6244e342 100644 --- a/src/ytdl_sub/subscriptions/subscription_download.py +++ b/src/ytdl_sub/subscriptions/subscription_download.py @@ -192,7 +192,7 @@ class SubscriptionDownload(BaseSubscription, ABC): @classmethod def _preprocess_entry(cls, plugins: List[Plugin], entry: Entry) -> Optional[Entry]: maybe_entry: Optional[Entry] = entry - for plugin in plugins: + for plugin in sorted(plugins, key=lambda _plugin: _plugin.priority.modify_entry_metadata): if (maybe_entry := plugin.modify_entry_metadata(maybe_entry)) is None: return None