import os
import logging.config
from xdg import XDG_DATA_HOME

# this should be equivalent to $HOME/
DATA_PATH = os.path.join(XDG_DATA_HOME, "mm_stats")
if not os.path.exists(DATA_PATH):
    os.makedirs(DATA_PATH)

DUMP_PATH = os.path.join(DATA_PATH, "dump/")
FIGS_PATH = os.path.join(DATA_PATH, "api/figs/")
NGINX_DATA_PATH = os.path.join(DATA_PATH, "api/data/")
NGINX_EXPORT_PATH = os.path.join(DATA_PATH, "api/export/")
TEMP_DATA_PATH = os.path.join(DATA_PATH, "temp/")

# this should be equivalent to $HOME/ /mm_stats.log
LOGGING_FILE_PATH = os.path.join(DATA_PATH, "mm_stats.log")
LOGGING_CONFIG = {
    "version": 1,
    "disable_existing_loggers": True,
    "formatters": {
        "standard": {
            "format": "%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(message)s"  # noqa E501
        },
    },
    "handlers": {
        "console": {
            "level": "INFO",
            "class": "logging.StreamHandler",
            "formatter": "standard",
        },
        "file": {
            "level": "INFO",
            "class": "logging.handlers.TimedRotatingFileHandler",
            "formatter": "standard",
            "filename": LOGGING_FILE_PATH,
            "when": "D",
            "interval": 1,
            "backupCount": 14,
        },
    },
    "loggers": {
        "root": {"handlers": ["console"], "level": "INFO"},
        "mm_stats": {
            "handlers": ["console", "file"],
            "level": "INFO",
            "propagate": False,
        },
    },
}
logging.config.dictConfig(LOGGING_CONFIG)
logger = logging.getLogger("mm_stats")
logging.getLogger("urllib3").setLevel(logging.WARNING)
logging.getLogger("shapely").setLevel(logging.WARNING)
logging.getLogger("oauth2client.crypt").setLevel(logging.WARNING)
logging.getLogger("matplotlib").setLevel(logging.WARNING)
logging.getLogger("boto3").setLevel(logging.WARNING)
