import os

from .base import *

# WEB SITE URL
THIS_BOOKTYPE_SERVER = os.environ.get('BOOKTYPE_SERVER', '')

BOOKTYPE_URL = os.environ.get('BOOKTYPE_URL', '')
# BOOKTYPE_URL = 'http://{}'.format(THIS_BOOKTYPE_SERVER)

STATIC_URL = '{}/static/'.format(BOOKTYPE_URL)
DATA_URL = '{}/data/'.format(BOOKTYPE_URL)
MEDIA_URL = DATA_URL

# URL where is publishing engine located. By default it is on local machine.
CONVERT_URL = BOOKTYPE_URL

# MPDF RENDERER SETTINGS
# Change lines below in case you want to use other version
# of php or mpdf in dev profile
# PHP_PATH = 'php'
# MPDF_DIR = ''
# MPDF_SCRIPT = ''

# DEBUG
DEBUG = TEMPLATES[0]['OPTIONS']['debug'] = False

# PROFILE
PROFILE_ACTIVE = 'stage'

# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = '{}.wsgi_stage.application'.format('instance1_site')

# URL ROUTER
ROOT_URLCONF = '{}.urls.stage'.format(BOOKTYPE_SITE_DIR)

# REDIS
REDIS_HOST = os.environ.get('BOOKTYPE_REDIS_HOST', 'localhost')
REDIS_PORT = os.environ.get('BOOKTYPE_REDIS_PORT', 6379)
REDIS_PASSWORD = os.environ.get('BOOKTYPE_REDIS_PASSWORD')
REDIS_DB = os.environ.get('BOOKTYPE_REDIS_DB', 0)

# CELERY
CELERY_BROKER_URL = os.environ.get('BOOKTYPE_BROKER_URL', 'amqp://guest:guest@localhost:5672/')

# DATABASE
DATABASES = {
    'default': {
        'ENGINE': '',
        'NAME': '',
        'USER': '',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': ''
    }
}

if 'BOOKTYPE_DATABASE_ENGINE' in os.environ:
    DATABASES['default']['ENGINE'] = os.environ['BOOKTYPE_DATABASE_ENGINE']

if 'BOOKTYPE_DATABASE_NAME' in os.environ:
    DATABASES['default']['NAME'] = os.environ['BOOKTYPE_DATABASE_NAME']

if 'BOOKTYPE_DATABASE_USER' in os.environ:
    DATABASES['default']['USER'] = os.environ['BOOKTYPE_DATABASE_USER']

if 'BOOKTYPE_DATABASE_PASSWORD' in os.environ:
    DATABASES['default']['PASSWORD'] = os.environ['BOOKTYPE_DATABASE_PASSWORD']

if 'BOOKTYPE_DATABASE_HOST' in os.environ:
    DATABASES['default']['HOST'] = os.environ['BOOKTYPE_DATABASE_HOST']

if 'BOOKTYPE_DATABASE_PORT' in os.environ:
    DATABASES['default']['PORT'] = os.environ['BOOKTYPE_DATABASE_PORT']

# E-MAIL
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

# COMPRESSION
COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True

# 3RD PARTY STATIC CACHE SYSTEMS LIKE CLOUDFLARE
EXTERNAL_STATIC_CACHE = False
EXTERNAL_STATIC_CACHE_KEY = 'v1'

# LOGGING

LOGGING['filters'] = {
    'require_debug_false': {
        '()': 'django.utils.log.RequireDebugFalse'
    }
}

LOGGING['handlers']['mail_admins'] = {
    'level': 'ERROR',
    'filters': ['require_debug_false'],
    'class': 'django.utils.log.AdminEmailHandler'
}

LOGGING['loggers'] = {
    'django': {
        'handlers': ['null'],
        'propagate': True,
        'level': 'WARN',
    },
    'django.db.backends': {
        'handlers': ['null'],
        'level': 'DEBUG',
        'propagate': False,
    },
    'django.request': {
        'handlers': ['mail_admins'],
        'level': 'ERROR',
        'propagate': True,
    },
    'booktype': {
        'handlers': ['logfile'],
        'level': 'DEBUG'
    },
    'sputnik': {
        'handlers': ['sputniklogfile'],
        'level': 'DEBUG'
    },
    'api': {
        'handlers': ['apilogfile'],
        'level': 'DEBUG'
    }
}

# READ CONFIGURAION
from booktype.utils import config

try:
    BOOKTYPE_CONFIG = config.load_configuration()
except config.ConfigurationError:
    BOOKTYPE_CONFIG = {}
