forked from fcode/delarte
53 lines
1.6 KiB
Python
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]
|