From 03e67a65153a0de438acf184d410ee5d9284c4f8 Mon Sep 17 00:00:00 2001 From: Joakim Holm Date: Fri, 7 Apr 2023 23:50:13 +0200 Subject: [PATCH] Add file argument to read urls from file --- grawlix/__main__.py | 19 ++++++++++++++++++- grawlix/arguments.py | 6 ++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/grawlix/__main__.py b/grawlix/__main__.py index f56577d..726373b 100644 --- a/grawlix/__main__.py +++ b/grawlix/__main__.py @@ -29,6 +29,22 @@ def get_login(source: Source, config: Config, options) -> Tuple[str, str]: return username, password +def get_urls(options) -> list[str]: + """ + Retrieves all available urls from input arguments + - From urls argument + - From file argument + """ + urls = [] + if options.urls: + urls.extend(options.urls) + if options.file: + with open(options.file, "r") as f: + content = f.read() + urls.extend(content.split("\n")) + return urls + + def authenticate(source: Source, config: Config, options): """ Authenticate with source @@ -47,7 +63,8 @@ def authenticate(source: Source, config: Config, options): def main() -> None: args = arguments.parse_arguments() config = load_config() - for url in args.urls: + urls = get_urls(args) + for url in urls: source: Source = find_source(url) if source.requires_authentication: authenticate(source, config, args) diff --git a/grawlix/arguments.py b/grawlix/arguments.py index a941729..f4cdbf7 100644 --- a/grawlix/arguments.py +++ b/grawlix/arguments.py @@ -20,6 +20,12 @@ def parse_arguments(): help = "Links to ebooks", nargs = "*" ) + parser.add_argument( + '-f', + '--file', + help = "File with links (One link per line)", + dest = "file" + ) # Authentication parser.add_argument( '-u',