fix sub tests

This commit is contained in:
Jesse Bannon 2024-04-01 02:05:28 -07:00
parent 4bc1284c57
commit 0d4a17c3e1
5 changed files with 55 additions and 39 deletions

View file

@ -9,6 +9,7 @@ from ytdl_sub.config.preset import Preset
from ytdl_sub.config.preset_options import OutputOptions
from ytdl_sub.config.preset_options import YTDLOptions
from ytdl_sub.downloaders.url.validators import MultiUrlValidator
from ytdl_sub.entries.variables.override_variables import SubscriptionVariables
from ytdl_sub.utils.file_handler import FileHandlerTransactionLog
from ytdl_sub.utils.logger import Logger
from ytdl_sub.ytdl_additions.enhanced_download_archive import EnhancedDownloadArchive
@ -16,6 +17,24 @@ from ytdl_sub.ytdl_additions.enhanced_download_archive import EnhancedDownloadAr
logger = Logger.get("subscription")
def _initialize_download_archive(
output_options: OutputOptions,
overrides: Overrides,
working_directory: str,
output_directory: str,
) -> EnhancedDownloadArchive:
migrated_file_name: Optional[str] = None
if migrated_file_name_option := output_options.migrated_download_archive_name:
migrated_file_name = overrides.apply_formatter(migrated_file_name_option)
return EnhancedDownloadArchive(
file_name=overrides.apply_formatter(output_options.download_archive_name),
working_directory=working_directory,
output_directory=output_directory,
migrated_file_name=migrated_file_name,
).reinitialize(dry_run=True)
class BaseSubscription(ABC):
"""
Subscription classes are the 'controllers' that perform...
@ -47,7 +66,32 @@ class BaseSubscription(ABC):
self.name = name
self._config_options = config_options
self._preset_options = preset_options
self._enhanced_download_archive: Optional[EnhancedDownloadArchive] = None
# Add overrides pre-archive
self.overrides.add(
{
SubscriptionVariables.subscription_name(): self.name,
}
)
self._enhanced_download_archive: Optional[
EnhancedDownloadArchive
] = _initialize_download_archive(
output_options=self.output_options,
overrides=self.overrides,
working_directory=self.working_directory,
output_directory=self.output_directory,
)
# Add post-archive variables
self.overrides.add(
{
SubscriptionVariables.subscription_has_download_archive(): f"""{{
%bool({self.download_archive.num_entries > 0})
}}""",
}
)
self._exception: Optional[Exception] = None
@property

View file

@ -17,7 +17,6 @@ from ytdl_sub.downloaders.source_plugin import SourcePlugin
from ytdl_sub.downloaders.url.downloader import MultiUrlDownloader
from ytdl_sub.downloaders.ytdl_options_builder import YTDLOptionsBuilder
from ytdl_sub.entries.entry import Entry
from ytdl_sub.entries.variables.override_variables import SubscriptionVariables
from ytdl_sub.subscriptions.base_subscription import BaseSubscription
from ytdl_sub.subscriptions.subscription_ytdl_options import SubscriptionYTDLOptions
from ytdl_sub.utils.datetime import to_date_range
@ -26,7 +25,6 @@ from ytdl_sub.utils.file_handler import FileHandler
from ytdl_sub.utils.file_handler import FileHandlerTransactionLog
from ytdl_sub.utils.file_handler import FileMetadata
from ytdl_sub.utils.logger import Logger
from ytdl_sub.ytdl_additions.enhanced_download_archive import EnhancedDownloadArchive
logger: logging.Logger = Logger.get()
@ -327,34 +325,6 @@ class SubscriptionDownload(BaseSubscription, ABC):
return self.download_archive.get_file_handler_transaction_log()
def _initialize_subscription_overrides_pre_archive(self) -> None:
self.overrides.add(
{
SubscriptionVariables.subscription_name(): self.name,
}
)
def _initialize_subscription_overrides_post_archive(self) -> None:
self.overrides.add(
{
SubscriptionVariables.subscription_has_download_archive(): f"""{{
%bool({self.download_archive.num_entries > 0})
}}""",
}
)
def _initialize_download_archive(self, dry_run: bool) -> None:
migrated_file_name: Optional[str] = None
if migrated_file_name_option := self.output_options.migrated_download_archive_name:
migrated_file_name = self.overrides.apply_formatter(migrated_file_name_option)
self._enhanced_download_archive = EnhancedDownloadArchive(
file_name=self.overrides.apply_formatter(self.output_options.download_archive_name),
working_directory=self.working_directory,
output_directory=self.output_directory,
migrated_file_name=migrated_file_name,
).reinitialize(dry_run=dry_run)
def download(self, dry_run: bool = False) -> FileHandlerTransactionLog:
"""
Performs the subscription download
@ -366,10 +336,7 @@ class SubscriptionDownload(BaseSubscription, ABC):
directory.
"""
self._exception = None
self._initialize_subscription_overrides_pre_archive()
self._initialize_download_archive(dry_run=dry_run)
self._initialize_subscription_overrides_post_archive()
self.download_archive.reinitialize(dry_run=dry_run)
plugins = self._initialize_plugins()
@ -422,10 +389,7 @@ class SubscriptionDownload(BaseSubscription, ABC):
If true, do not modify any video/audio files or move anything to the output directory.
"""
self._exception = None
self._initialize_subscription_overrides_pre_archive()
self._initialize_download_archive(dry_run=dry_run)
self._initialize_subscription_overrides_post_archive()
self.download_archive.reinitialize(dry_run=dry_run)
plugins = self._initialize_plugins()

View file

@ -62,6 +62,11 @@ def playlist_bilateral_dict(output_directory):
"url": "https://www.youtube.com/playlist?list=PLd4Q7G88JqoekF0b30NYQcOTnTiIe9Ali",
"tv_show_directory": output_directory,
},
"nfo_tags": {
"tags": {
"subscription_has_download_archive": "{subscription_has_download_archive}",
}
},
}

View file

@ -50,5 +50,6 @@ Files created:
Texture Pack I Use:
http://www.minecraftforum.net/viewtopic.php?f=25&t=29164
season: 2011
subscription_has_download_archive: false
title: 2011-02-01 - Jesse's Minecraft Server [Trailer - Feb.1]
year: 2011

View file

@ -78,6 +78,7 @@ Files created:
I claim no ownership of this song, all the credit goes to Pearl Jam and their producers.
season: 2011
subscription_has_download_archive: true
title: 2011-02-27 - Jesse's Minecraft Server [Trailer - Feb.27]
year: 2011
s2011.e032101 - Jesse's Minecraft Server [Trailer - Mar.21]-thumb.jpg
@ -157,6 +158,7 @@ Files created:
I claim no ownership of this song, all the credit goes to Pearl Jam and their producers.
season: 2011
subscription_has_download_archive: true
title: 2011-03-21 - Jesse's Minecraft Server [Trailer - Mar.21]
year: 2011