delarte_test/src/delarte/cli.py

53 lines
1.6 KiB
Python

"""CLI arguments related module."""
import argparse
class Parser(argparse.ArgumentParser):
"""Parser responsible for parsing CLI arguments."""
def __init__(self):
"""Generate a parser."""
super().__init__(
description="downloads Arte's videos with subtitles",
epilog="examples:\n"
"\tdelarte -h\t\t\t\t\t-> shows this help\n"
"\tdelarte [url]\t\t\t\t\t-> shows available languages\n"
"\tdelarte [url] -l [language]\t\t\t-> shows available resolutions\n"
"\tdelarte [url] -l [language] -r [resolution]\t-> "
"downloads Arte's video\n",
formatter_class=argparse.RawTextHelpFormatter,
)
self.add_argument(
"url",
help="url of Arte movie's webpage",
action="store",
type=str,
)
self.add_argument(
"-l",
"--languages",
help="one of the language code proposed by Arte",
required=False,
action="store",
type=str,
nargs="?",
)
self.add_argument(
"-r",
"--resolution",
help="directory where the output files will be stored",
required=False,
action="store",
type=str,
nargs="?",
)
def get_args_as_list(self):
"""Get arguments from CLI as a list.
Returns:
List: liste ordonnée des arguments
"""
args_namespace = self.parse_args()
return [args_namespace.url, args_namespace.languages, args_namespace.resolution]