From 56b4fdb94298e6a047e78738aa2c2f0428ccb3a4 Mon Sep 17 00:00:00 2001 From: Jesse Bannon Date: Wed, 30 Nov 2022 10:24:25 -0800 Subject: [PATCH] clean up if pre-split returns None --- .../subscriptions/subscription_download.py | 45 ++++++++++--------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/src/ytdl_sub/subscriptions/subscription_download.py b/src/ytdl_sub/subscriptions/subscription_download.py index 7231a9f2..7cdc2144 100644 --- a/src/ytdl_sub/subscriptions/subscription_download.py +++ b/src/ytdl_sub/subscriptions/subscription_download.py @@ -203,7 +203,7 @@ class SubscriptionDownload(BaseSubscription, ABC): if entry_: self._post_process_entry( - plugins=plugins, dry_run=dry_run, entry=entry, entry_metadata=entry_metadata + plugins=plugins, dry_run=dry_run, entry=entry_, entry_metadata=entry_metadata ) self._cleanup_entry_files(entry) @@ -211,6 +211,8 @@ class SubscriptionDownload(BaseSubscription, ABC): def _process_split_entry( self, split_plugin: Plugin, plugins: List[Plugin], dry_run: bool, entry: Entry ) -> None: + entry_: Optional[Entry] = entry + plugins_pre_split = sorted( [plugin for plugin in plugins if not plugin.priority.modify_entry_after_split], key=lambda _plugin: _plugin.priority.modify_entry, @@ -223,30 +225,33 @@ class SubscriptionDownload(BaseSubscription, ABC): # First, modify the entry with pre_split plugins for plugin in plugins_pre_split: - # Return if it is None, it is indicated to not process any further - if (entry := plugin.modify_entry(entry)) is None: - return + # Break if it is None, it is indicated to not process any further + if (entry_ := plugin.modify_entry(entry_)) is None: + break # Then, perform the split - for split_entry, split_entry_metadata in split_plugin.split(entry=entry): - split_entry_: Optional[Entry] = split_entry + if entry_: + for split_entry, split_entry_metadata in split_plugin.split(entry=entry_): + split_entry_: Optional[Entry] = split_entry - for plugin in plugins_post_split: - # Return if it is None, it is indicated to not process any further. - # Break out of the plugin loop - if (split_entry_ := plugin.modify_entry(split_entry_)) is None: - break + for plugin in plugins_post_split: + # Return if it is None, it is indicated to not process any further. + # Break out of the plugin loop + if (split_entry_ := plugin.modify_entry(split_entry_)) is None: + break - # If split_entry is None from modify_entry, do not post process - if split_entry_: - self._post_process_entry( - plugins=plugins, - dry_run=dry_run, - entry=split_entry_, - entry_metadata=split_entry_metadata, - ) + # If split_entry is None from modify_entry, do not post process + if split_entry_: + self._post_process_entry( + plugins=plugins, + dry_run=dry_run, + entry=split_entry_, + entry_metadata=split_entry_metadata, + ) - self._cleanup_entry_files(split_entry) + self._cleanup_entry_files(split_entry) + + self._cleanup_entry_files(entry) def download(self, dry_run: bool = False) -> FileHandlerTransactionLog: """