import argparse
import configparser
from pathlib import Path

from ..logging import log
from .parser import CRAWLER_PARSER, SUBPARSERS, load_crawler

SUBPARSER = SUBPARSERS.add_parser(
    "kit-ipd",
    parents=[CRAWLER_PARSER],
)

GROUP = SUBPARSER.add_argument_group(
    title="kit ipd crawler arguments",
    description="arguments for the 'kit-ipd' crawler",
)
GROUP.add_argument(
    "--link-regex",
    type=str,
    metavar="REGEX",
    help="href-matching regex to identify downloadable files"
)
GROUP.add_argument(
    "target",
    type=str,
    metavar="TARGET",
    help="url to crawl"
)
GROUP.add_argument(
    "output",
    type=Path,
    metavar="OUTPUT",
    help="output directory"
)


def load(
        args: argparse.Namespace,
        parser: configparser.ConfigParser,
) -> None:
    log.explain("Creating config for command 'kit-ipd'")

    parser["crawl:kit-ipd"] = {}
    section = parser["crawl:kit-ipd"]
    load_crawler(args, section)

    section["type"] = "kit-ipd"
    section["target"] = str(args.target)
    section["output_dir"] = str(args.output)
    if args.link_regex:
        section["link_regex"] = str(args.link_regex)


SUBPARSER.set_defaults(command=load)