shell
This commit is contained in:
parent
ee2fcc4c1f
commit
93b5a933d9
3 changed files with 44 additions and 14 deletions
|
|
@ -15,6 +15,7 @@ from ytdl_sub.cli.output_transaction_log import output_transaction_log
|
||||||
from ytdl_sub.cli.parsers.cli_to_sub import print_cli_to_sub
|
from ytdl_sub.cli.parsers.cli_to_sub import print_cli_to_sub
|
||||||
from ytdl_sub.cli.parsers.dl import DownloadArgsParser
|
from ytdl_sub.cli.parsers.dl import DownloadArgsParser
|
||||||
from ytdl_sub.cli.parsers.main import DEFAULT_CONFIG_FILE_NAME
|
from ytdl_sub.cli.parsers.main import DEFAULT_CONFIG_FILE_NAME
|
||||||
|
from ytdl_sub.cli.parsers.main import InspectArguments
|
||||||
from ytdl_sub.cli.parsers.main import parser
|
from ytdl_sub.cli.parsers.main import parser
|
||||||
from ytdl_sub.config.config_file import ConfigFile
|
from ytdl_sub.config.config_file import ConfigFile
|
||||||
from ytdl_sub.subscriptions.subscription import Subscription
|
from ytdl_sub.subscriptions.subscription import Subscription
|
||||||
|
|
@ -198,11 +199,32 @@ def _view_url_from_cli(config: ConfigFile, url: str, split_chapters: bool) -> Su
|
||||||
return subscription
|
return subscription
|
||||||
|
|
||||||
|
|
||||||
|
def _parse_inspect_mocks(mocks: Optional[List[str]]) -> Dict[str, str]:
|
||||||
|
out: Dict[str, str] = {}
|
||||||
|
for mock in mocks or []:
|
||||||
|
spl = mock.split("=", 1)
|
||||||
|
if len(spl) == 1:
|
||||||
|
raise ValidationException("inspect mock must be in the form of VAR=VALUE")
|
||||||
|
out[spl[0].strip()] = spl[1]
|
||||||
|
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
def _parse_inspect_level(inspect_level: str) -> str:
|
||||||
|
for val, name in InspectArguments.LevelChoices.items():
|
||||||
|
if inspect_level == val or inspect_level == name:
|
||||||
|
return name
|
||||||
|
|
||||||
|
raise ValueError("should not reach here")
|
||||||
|
|
||||||
|
|
||||||
def _inspect(
|
def _inspect(
|
||||||
config: ConfigFile,
|
config: ConfigFile,
|
||||||
subscription_paths: List[str],
|
subscription_paths: List[str],
|
||||||
subscription_matches: List[str],
|
subscription_matches: List[str],
|
||||||
subscription_override_dict: Dict,
|
subscription_override_dict: Dict,
|
||||||
|
inspection_level: str,
|
||||||
|
mocks: Dict[str, str],
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|
||||||
subscriptions: List[Subscription] = []
|
subscriptions: List[Subscription] = []
|
||||||
|
|
@ -262,6 +284,8 @@ def main() -> List[Subscription]:
|
||||||
subscription_paths=args.subscription_paths,
|
subscription_paths=args.subscription_paths,
|
||||||
subscription_matches=args.match,
|
subscription_matches=args.match,
|
||||||
subscription_override_dict=subscription_override_dict,
|
subscription_override_dict=subscription_override_dict,
|
||||||
|
inspection_level=_parse_inspect_level(args.inspection_level),
|
||||||
|
mocks=_parse_inspect_mocks(args.mock),
|
||||||
)
|
)
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import argparse
|
import argparse
|
||||||
import dataclasses
|
import dataclasses
|
||||||
|
from typing import Dict
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from ytdl_sub import __local_version__
|
from ytdl_sub import __local_version__
|
||||||
|
|
@ -235,19 +236,15 @@ class InspectArguments:
|
||||||
short="-l",
|
short="-l",
|
||||||
long="--level",
|
long="--level",
|
||||||
)
|
)
|
||||||
LevelChoices: List[str] = [
|
LevelChoices: Dict[str, str] = {
|
||||||
"0",
|
"0": "original",
|
||||||
"original",
|
"1": "fill",
|
||||||
"1",
|
"2": "resolve",
|
||||||
"fill",
|
"3": "internal",
|
||||||
"2",
|
}
|
||||||
"resolve",
|
|
||||||
"3",
|
|
||||||
"internal",
|
|
||||||
]
|
|
||||||
|
|
||||||
MOCK = CLIArgument(
|
MOCK = CLIArgument(
|
||||||
short="-m",
|
short="-k",
|
||||||
long="--mock",
|
long="--mock",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -256,7 +253,7 @@ inspect_parser = subparsers.add_parser("inspect")
|
||||||
inspect_parser.add_argument(
|
inspect_parser.add_argument(
|
||||||
InspectArguments.LEVEL.short,
|
InspectArguments.LEVEL.short,
|
||||||
InspectArguments.LEVEL.long,
|
InspectArguments.LEVEL.long,
|
||||||
metavar="|".join(LoggerLevels.names()),
|
metavar=",".join(str(i) for i in range(4)),
|
||||||
type=str,
|
type=str,
|
||||||
help="""level of inspection to perform:
|
help="""level of inspection to perform:
|
||||||
0 - original present the subscription as-is (default)
|
0 - original present the subscription as-is (default)
|
||||||
|
|
@ -265,7 +262,8 @@ inspect_parser.add_argument(
|
||||||
3 - internal resolve all variables to their internal representation
|
3 - internal resolve all variables to their internal representation
|
||||||
""",
|
""",
|
||||||
default="0",
|
default="0",
|
||||||
choices=InspectArguments.LevelChoices,
|
choices=list(InspectArguments.LevelChoices.keys())
|
||||||
|
+ list(InspectArguments.LevelChoices.values()),
|
||||||
dest="inspection_level",
|
dest="inspection_level",
|
||||||
)
|
)
|
||||||
inspect_parser.add_argument(
|
inspect_parser.add_argument(
|
||||||
|
|
@ -294,3 +292,11 @@ inspect_parser.add_argument(
|
||||||
help="override all subscription config values using `dl` syntax, "
|
help="override all subscription config values using `dl` syntax, "
|
||||||
"i.e. --dl-override='--ytdl_options.max_downloads 3'",
|
"i.e. --dl-override='--ytdl_options.max_downloads 3'",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
inspect_parser.add_argument(
|
||||||
|
InspectArguments.MOCK.short,
|
||||||
|
InspectArguments.MOCK.long,
|
||||||
|
metavar="VAR=VALUE",
|
||||||
|
nargs="+",
|
||||||
|
help="ability to mock one or more variable values, i.e. --mock 'title=Lets Play'",
|
||||||
|
)
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ from ytdl_sub.config.plugin.preset_plugins import PresetPlugins
|
||||||
from ytdl_sub.config.preset_options import OutputOptions
|
from ytdl_sub.config.preset_options import OutputOptions
|
||||||
from ytdl_sub.config.validators.options import OptionsValidator
|
from ytdl_sub.config.validators.options import OptionsValidator
|
||||||
from ytdl_sub.downloaders.url.validators import MultiUrlValidator
|
from ytdl_sub.downloaders.url.validators import MultiUrlValidator
|
||||||
from ytdl_sub.validators.string_formatter_validators import validate_formatters, _validate_formatter
|
from ytdl_sub.validators.string_formatter_validators import validate_formatters
|
||||||
|
|
||||||
|
|
||||||
class VariableValidation:
|
class VariableValidation:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue