ZuluPro/myblog

View on GitHub
myblog/settings/common.py

Summary

Maintainability
A
3 hrs
Test Coverage
"""
Common settings for myblog project.
"""
from zinnia.xmlrpc import ZINNIA_XMLRPC_METHODS as XMLRPC_METHODS
from .env import CONFIG, BASE_DIR

DEBUG = CONFIG.getboolean('DEFAULT', 'debug')
TEMPLATE_DEBUG = CONFIG.getboolean('DEFAULT', 'template_debug')
ALLOWED_HOSTS = CONFIG.get('DEFAULT', 'allowed_hosts').split(',')
SERVER_URL = CONFIG.get('DEFAULT', 'server_url')
SITE_ID = CONFIG.getint('DEFAULT', 'site_id')
SECRET_KEY = CONFIG.get('DEFAULT', 'secret_key')
ROOT_URLCONF = CONFIG.get('DEFAULT', 'root_urlconf')
WSGI_APPLICATION = CONFIG.get('DEFAULT', 'wsgi_application')
# i18n
LANGUAGE_CODE = CONFIG.get('DEFAULT', 'language_code')
TIME_ZONE = CONFIG.get('DEFAULT', 'time_zone')
USE_I18N = CONFIG.getboolean('DEFAULT', 'use_i18n')
USE_L10N = CONFIG.getboolean('DEFAULT', 'use_l10n')
USE_TZ = CONFIG.getboolean('DEFAULT', 'use_tz')
# Email
ADMINS = CONFIG.get('DEFAULT', 'admins').split(',')
EMAIL_BACKEND = CONFIG.get('DEFAULT', 'email_backend')
EMAIL_HOST = CONFIG.get('DEFAULT', 'email_host')
EMAIL_HOST_PASSWORD = CONFIG.get('DEFAULT', 'email_host_password')
EMAIL_HOST_USER = CONFIG.get('DEFAULT', 'email_host_user')
EMAIL_PORT = CONFIG.getint('DEFAULT', 'email_port')
EMAIL_USE_TLS = CONFIG.getboolean('DEFAULT', 'email_use_tls')
EMAIL_USE_SSL = CONFIG.getboolean('DEFAULT', 'email_use_ssl')
# Extra files (CSS, JavaScript, Images)
STATIC_ROOT = CONFIG.get('DEFAULT', 'static_root')
STATIC_URL = CONFIG.get('DEFAULT', 'static_url')
STATICFILES_DIRS = list(filter(bool, CONFIG.get('DEFAULT', 'staticfiles_dirs').split(',')))
MEDIA_ROOT = CONFIG.get('DEFAULT', 'media_root')
MEDIA_URL = CONFIG.get('DEFAULT', 'media_url')
# STATICFILES_STORAGE
TEST_RUNNER = CONFIG.get('DEFAULT', 'test_runner')
JUXD_FILENAME = CONFIG.get('DEFAULT', 'juxd_filename')
# Flickr
FLICKR_STORAGE_OPTIONS = {
    'api_key': CONFIG.get('DEFAULT', 'flickr_api_key'),
    'api_secret': CONFIG.get('DEFAULT', 'flickr_api_secret'),
    'oauth_token': CONFIG.get('DEFAULT', 'flickr_oauth_token'),
    'oauth_token_secret': CONFIG.get('DEFAULT', 'flickr_oauth_token_secret'),
    'user_id': CONFIG.get('DEFAULT', 'flickr_user_id')
}
# Captcha
RECAPTCHA_PUBLIC_KEY = CONFIG.get('DEFAULT', 'recaptcha_public_key')
RECAPTCHA_PRIVATE_KEY = CONFIG.get('DEFAULT', 'recaptcha_private_key')
NOCAPTCHA = CONFIG.getboolean('DEFAULT', 'nocaptcha')
RECAPTCHA_USE_SSL = CONFIG.getboolean('DEFAULT', 'recaptcha_use_ssl')
AKISMET_API_KEY = CONFIG.get('DEFAULT', 'akismet_api_key')

# Application definition
INSTALLED_APPS = (
    'about',
    'django_comments',
    'django_xmlrpc',
    'tinymce',
    'myapp',  # 1st resolved
    'myadmin',
    'mytools',
    'django.contrib.admin',
    'django.contrib.sitemaps',
    'django.contrib.sites',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'mptt',
    'tagging',
    'zinnia',
    'zinnia_tinymce',
    'sorl.thumbnail',
    'admin_cli',
    'curriculum',
    'curriculum.revealjs',
    'photos',
    'dbbackup',
    'request',
    'request.tracking',
    'favicon',
    'captcha',
    'mycomment',
    'schedule',
    'bio',
    'bio.guide',
    'bio.items',
    'bio.scheduler',
)
MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'request.middleware.RequestMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
if __import__('django').VERSION[1] > 7:
    MIDDLEWARE_CLASSES += ('django.middleware.security.SecurityMiddleware',)

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.request',
    'django.contrib.messages.context_processors.messages',
    'zinnia.context_processors.version',
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    'mytools.context_processor.tools',
)
if USE_I18N:
    TEMPLATE_CONTEXT_PROCESSORS += (
        'django.core.context_processors.i18n',)

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)

if __import__('django').VERSION[1] > 7:
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [],
            'APP_DIRS': False,
            'OPTIONS': {
                'context_processors': TEMPLATE_CONTEXT_PROCESSORS,
                'loaders': TEMPLATE_LOADERS,
            },
        },
    ]

DATABASES = {
    'default': {
        'ENGINE': CONFIG.get('DEFAULT', 'default_db_engine'),
        'NAME': CONFIG.get('DEFAULT', 'default_db_name'),
        'USER': CONFIG.get('DEFAULT', 'default_db_user'),
        'PASSWORD': CONFIG.get('DEFAULT', 'default_db_password'),
        'HOST': CONFIG.get('DEFAULT', 'default_db_host'),
        'PORT': CONFIG.get('DEFAULT', 'default_db_port'),
    }
}

GEOIP_PATH = CONFIG.get('DEFAULT', 'geoip_path')
ZINNIA_SPAM_CHECKER_BACKENDS = (
    'zinnia.spam_checker.backends.long_enough',
    'mycomment.moderator.akismet',
)

DBBACKUP_STORAGE_OPTIONS = {
    'location': CONFIG.get('DEFAULT', 'backup_dir')
}
FLICKR_CACHE = 'default'

REQUEST_IGNORE_IP = (
    '62.169.67.133',
)
REQUEST_IGNORE_PATHS = (
    r'^/$',
    r'^admin/',
    r'^/weblog/opensearch\.xml$',
)
REQUEST_IGNORE_USERNAME = (
    'zulu',
)
REQUEST_IGNORE_USER_AGENTS = (
    r'Googlebot',
    r'Baiduspider',
    r'FeedFetcher',
    r'Mail.RU_Bot',
    r'bingbot',
    r'AhrefsBot',
    r'Netcraft',
    r'SMTBot',
    r'Feedspotbot',
    r'FlipboardProxy',
    r'facebookexternalhit',
    r'LinkedInBot',
    r'Feedfetcher',
    r'YandexBot',
    r'Yahoo',
)
COMMENTS_APP = 'mycomment'
PROFANITIES_LIST = (
    'bitcoin',
    'protein',
    'minecraft'
)