#!/usr/bin/env python3

import database
import argparse
import sys
import time

FUNCTION_MAP = {
    'zone': database.Database.set_zone,
    'ip4network': database.Database.set_ip4network,
    'asn': database.Database.set_asn,
}

if __name__ == '__main__':

    # Parsing arguments
    parser = argparse.ArgumentParser(
        description="TODO")
    parser.add_argument(
        'type',
        choices=FUNCTION_MAP.keys(),
        help="Type of rule inputed")
    parser.add_argument(
        '-i', '--input', type=argparse.FileType('r'), default=sys.stdin,
        help="List of domains domains to block (with their subdomains)")
    parser.add_argument(
        '-f', '--first-party', action='store_true',
        help="The input only comes from verified first-party sources")
    args = parser.parse_args()

    DB = database.Database(write=True)

    fun = FUNCTION_MAP[args.type]

    for rule in args.input:
        fun(DB,
            rule.strip(),
            is_first_party=args.first_party,
            updated=int(time.time()),
            )

    DB.close()