From 77a73fadc86dc0f62ddde10a5897156b3d2836b2 Mon Sep 17 00:00:00 2001 From: jbannon Date: Wed, 6 Jul 2022 05:27:13 +0000 Subject: [PATCH] Print in main --- src/ytdl_sub/main.py | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/src/ytdl_sub/main.py b/src/ytdl_sub/main.py index dc656cfa..f866df84 100644 --- a/src/ytdl_sub/main.py +++ b/src/ytdl_sub/main.py @@ -1,6 +1,7 @@ import argparse import sys from typing import List +from typing import Tuple from ytdl_sub.cli.download_args_parser import DownloadArgsParser from ytdl_sub.cli.main_args_parser import parser @@ -8,12 +9,15 @@ from ytdl_sub.config.config_file import ConfigFile from ytdl_sub.config.preset import Preset from ytdl_sub.subscriptions.subscription import Subscription from ytdl_sub.utils.exceptions import ValidationException +from ytdl_sub.utils.file_handler import FileHandlerTransactionLog from ytdl_sub.utils.logger import Logger logger = Logger.get() -def _download_subscriptions_from_yaml_files(config: ConfigFile, args: argparse.Namespace) -> None: +def _download_subscriptions_from_yaml_files( + config: ConfigFile, args: argparse.Namespace +) -> List[Tuple[Subscription, FileHandlerTransactionLog]]: """ Downloads all subscriptions from one or many subscription yaml files. @@ -23,10 +27,16 @@ def _download_subscriptions_from_yaml_files(config: ConfigFile, args: argparse.N Configuration file args Arguments from argparse + + Returns + ------- + List of (subscription, transaction_log) """ preset_paths: List[str] = args.subscription_paths presets: List[Preset] = [] + output: List[Tuple[Subscription, FileHandlerTransactionLog]] = [] + # Load all of the presets first to perform all validation before downloading for preset_path in preset_paths: presets += Preset.from_file_path(config=config, subscription_path=preset_path) @@ -34,12 +44,16 @@ def _download_subscriptions_from_yaml_files(config: ConfigFile, args: argparse.N subscription = Subscription.from_preset(preset=preset, config=config) logger.info("Beginning subscription download for %s", subscription.name) - subscription.download(dry_run=args.dry_run) + transaction_log = subscription.download(dry_run=args.dry_run) + + output.append((subscription, transaction_log)) + + return output def _download_subscription_from_cli( config: ConfigFile, args: argparse.Namespace, extra_args: List[str] -) -> None: +) -> Tuple[Subscription, FileHandlerTransactionLog]: """ Downloads a one-off subscription using the CLI @@ -51,6 +65,10 @@ def _download_subscription_from_cli( Arguments from argparse extra_args Extra arguments from argparse that contain dynamic subscription options + + Returns + ------- + Subscription and its download transaction log """ dl_args_parser = DownloadArgsParser( extra_arguments=extra_args, config_options=config.config_options @@ -69,7 +87,7 @@ def _download_subscription_from_cli( config=config, ) - subscription.download(dry_run=args.dry_run) + return subscription, subscription.download(dry_run=args.dry_run) def _main(): @@ -86,14 +104,22 @@ def _main(): config: ConfigFile = ConfigFile.from_file_path(args.config).initialize() Logger.set_log_level(log_level_name=args.log_level) + transaction_logs: List[Tuple[Subscription, FileHandlerTransactionLog]] = [] if args.subparser == "sub": - _download_subscriptions_from_yaml_files(config=config, args=args) - logger.info("Subscription download complete!") + transaction_logs = _download_subscriptions_from_yaml_files(config=config, args=args) # One-off download if args.subparser == "dl": - _download_subscription_from_cli(config=config, args=args, extra_args=extra_args) - logger.info("Download complete!") + transaction_logs.append( + _download_subscription_from_cli(config=config, args=args, extra_args=extra_args) + ) + + for subscription, transaction_log in transaction_logs: + logger.info( + "Downloads for %s:\n%s\n", + subscription.name, + transaction_log.to_output_message(subscription.output_directory), + ) # Ran successfully, so we can delete the debug file Logger.cleanup(delete_debug_file=True)