#!/usr/bin/env python3
import logging
import sys
from sitemapparser import SiteMapParser
from sitemapparser.smapper_utils import uri_modifier, get_args, get_exporters, get_logging_config
from logging.config import fileConfig


def main():
    try:
        log_config, log_file = get_logging_config()
        fileConfig(log_config, defaults={ 'logfilename': log_file})
    except KeyError:
        print("An error occurred reading logging_config.ini")

    uri, logging_level, exporter = get_args(sys.argv[1:])
    logging.getLogger().setLevel(logging_level)
    logger = logging.getLogger(__name__)

    uri = uri_modifier(uri)
    logger.info("Uri: {}. Exporter: {}".format(uri, exporter))

    try:
        sm = SiteMapParser(uri)
    except SyntaxError as e:
        logger.critical("Parsing error: {}".format(e))
        print("An error occurred. Please check sitemap_parser_run.log for details")
        sys.exit(1)

    exporters = get_exporters()
    selected_exporter = exporters[exporter]
    logger.debug("selected_exporter: {}".format(selected_exporter))

    e = selected_exporter(sm)
    if sm.has_sitemaps():
        print(e.export_sitemaps())
    elif sm.has_urls():
        print(e.export_urls())


if __name__ == '__main__':
    main()
