diff options
Diffstat (limited to '')
| -rw-r--r-- | patternutils/commands/prss.py | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/patternutils/commands/prss.py b/patternutils/commands/prss.py index 79b9413..2efdfae 100644 --- a/patternutils/commands/prss.py +++ b/patternutils/commands/prss.py @@ -1,3 +1,5 @@ +import functools +import itertools import os.path import click @@ -12,7 +14,14 @@ from .. import utils @click.command(context_settings={"help_option_names": ("-h", "--help", "-?")}) -@click.option("-d", "--directory", default="./") +@click.option("-d", "--directory", multiple=True, default=["./"]) +@click.option( + "-r", + "--recursive", + is_flag=True, + default=False, + help="search directories recursively", +) @click.option( "--stream", is_flag=True, @@ -31,7 +40,12 @@ from .. import utils @click.version_option() @click.argument("url") def prss( - url: str, directory: str, stream: bool, human_readable: bool, verbose: bool + url: str, + directory: str, + recursive: bool, + stream: bool, + human_readable: bool, + verbose: bool, ) -> None: try: @@ -44,11 +58,15 @@ def prss( click.secho("Unsupported feed!", fg="red", err=True) raise SystemExit + # Mokey patch walk function to include commandline options + walk_function = functools.partial( + utils.walk, recursive=recursive, matchdirectories=False + ) direntries = [] filenames = [] - for f in utils.walk(directory, recursive=False, match_directories=False): + for f in itertools.chain.from_iterable(map(walk_function, directory)): direntries.append(f) filenames.append(f.name) @@ -59,7 +77,6 @@ def prss( href = entry.enclosures[0]["href"] splitted_href = href.split("/") file_to_search = splitted_href[-1] - try: file_index = filenames.index(file_to_search) except ValueError: |
