From ab9efb7d3f9a75e1230c9f8114f53c9ac98e495b Mon Sep 17 00:00:00 2001 From: Benex254 Date: Mon, 5 Aug 2024 09:47:02 +0300 Subject: [PATCH] fix(cli): fix bool options not editing config at runtime --- fastanime/cli/__init__.py | 43 +++++++++++++++++++++++------- fastanime/cli/commands/download.py | 1 - 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/fastanime/cli/__init__.py b/fastanime/cli/__init__.py index 514a41d..41c21ea 100644 --- a/fastanime/cli/__init__.py +++ b/fastanime/cli/__init__.py @@ -44,18 +44,40 @@ signal.signal(signal.SIGINT, handle_exit) "-s", "--server", type=click.Choice(SERVERS_AVAILABLE, case_sensitive=False), + help="Server of choice", +) +@click.option( + "-c/-no-c", + "--continue/--no-continue", + "continue_", + type=bool, + help="Continue from last episode?", +) +@click.option( + "-q", + "--quality", + type=int, + help="set the quality of the stream", +) +@click.option("-t", "--translation_type", help="Anime language[dub/sub]") +@click.option( + "-A/-no-A", + "--auto-next/--no-auto-next", + type=bool, + help="Auto select next episode?", +) +@click.option( + "-a/-no-a", + "--auto-select/--no-auto-select", + type=bool, + help="Auto select anime title?", ) -@click.option("-c/-no-c", "--continue/--no-continue", "continue_", type=bool) -@click.option("-q", "--quality", type=int) -@click.option("-t", "--translation_type") -@click.option("-A/-no-A", "--auto-next/--no-auto-next", type=bool) -@click.option("-a/-no-a", "--auto-select/--no-auto-select", type=bool) @click.option( "-S", "--sort-by", type=click.Choice(anilist_sort_normalizer.keys()), # pyright: ignore ) -@click.option("-d", "--downloads-dir", type=click.Path()) +@click.option("-d", "--downloads-dir", type=click.Path(), help="Downloads location") @click.pass_context def run_cli( ctx: click.Context, @@ -71,13 +93,16 @@ def run_cli( ctx.obj = Config() if server: ctx.obj.server = server - if continue_: + if ctx.get_parameter_source("continue_") == click.core.ParameterSource.COMMANDLINE: ctx.obj.continue_from_history = continue_ if quality: ctx.obj.quality = quality - if auto_next: + if ctx.get_parameter_source("auto-next") == click.core.ParameterSource.COMMANDLINE: ctx.obj.auto_next = auto_next - if auto_select: + if ( + ctx.get_parameter_source("auto_select") + == click.core.ParameterSource.COMMANDLINE + ): ctx.obj.auto_select = auto_select if sort_by: ctx.obj.sort_by = sort_by diff --git a/fastanime/cli/commands/download.py b/fastanime/cli/commands/download.py index 66ebed8..c5b0a9f 100644 --- a/fastanime/cli/commands/download.py +++ b/fastanime/cli/commands/download.py @@ -28,7 +28,6 @@ from ..utils.utils import clear def download(config: Config, anime_title, episode_range): translation_type = config.translation_type download_dir = config.downloads_dir - config.quality search_results = anime_provider.search_for_anime( anime_title, translation_type=translation_type )