-
Notifications
You must be signed in to change notification settings - Fork 51
/
app_config.py
152 lines (121 loc) · 3.53 KB
/
app_config.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
"""
Project-wide application configuration.
"""
import os
from authomatic.providers import oauth2
from authomatic import Authomatic
"""
NAMES
"""
# Project name in urls
# Use dashes, not underscores!
PROJECT_SLUG = 'dailygraphics'
# Slug for assets dir on S3
ASSETS_SLUG = PROJECT_SLUG
# The name of the repository containing the source
REPOSITORY_NAME = 'dailygraphics'
REPOSITORY_URL = '[email protected]:nprapps/%s.git' % REPOSITORY_NAME
REPOSITORY_ALT_URL = None # '[email protected]:nprapps/%s.git' % REPOSITORY_NAME'
# Path to the folder containing the graphics
GRAPHICS_PATH = os.path.abspath('../graphics')
# Path to the folder containing the graphics
ARCHIVE_GRAPHICS_PATH = os.path.abspath('../graphics-archive')
# Path to the graphic templates
TEMPLATES_PATH = os.path.abspath('graphic_templates')
# Add specific drive folder where the copied spreadsheet will be stored
# Or set to None to use your root drive folder.
DRIVE_SPREADSHEETS_FOLDER = '0B2rSjDbnpA5XTThSNDZkWlJTX1E'
"""
PYM
"""
PYM = {
'pym_url': 'https://pym.nprapps.org/pym.v1.min.js',
'pym_loader_url': 'https://pym.nprapps.org/npr-pym-loader.v2.min.js',
}
"""
CAREBOT
"""
CAREBOT_ENABLED = True
CAREBOT_URL = 'https://carebot.nprapps.org/carebot-tracker.v0.min.js'
"""
OAUTH
"""
GOOGLE_OAUTH_CREDENTIALS_PATH = '~/.google_oauth_credentials'
authomatic_config = {
'google': {
'id': 1,
'class_': oauth2.Google,
'consumer_key': os.environ.get('GOOGLE_OAUTH_CLIENT_ID'),
'consumer_secret': os.environ.get('GOOGLE_OAUTH_CONSUMER_SECRET'),
'scope': ['https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/userinfo.email'],
'offline': True,
},
}
authomatic = Authomatic(authomatic_config, os.environ.get('AUTHOMATIC_SALT'))
"""
DEPLOYMENT
"""
PRODUCTION_S3_BUCKET = {
'bucket_name': 'apps.npr.org',
'region': 'us-east-1'
}
STAGING_S3_BUCKET = {
'bucket_name': 'stage-apps.npr.org',
'region': 'us-east-1'
}
ASSETS_S3_BUCKET = {
'bucket_name': 'assets.apps.npr.org',
'region': 'us-east-1'
}
DEFAULT_MAX_AGE = 20
ASSETS_MAX_AGE = 300
"""
ANALYTICS
"""
GOOGLE_ANALYTICS = {
'ACCOUNT_ID': 'UA-5828686-75'
}
"""
TESTS
"""
AUTOEXECUTE_TESTS = False
TESTS_LOAD_WAIT_TIME = 2
TEST_SCRIPTS_TIMEOUT = 5
# These variables will be set at runtime. See configure_targets() below
S3_BUCKET = None
S3_BASE_URL = ''
S3_DEPLOY_URL = None
DEBUG = True
def configure_targets(deployment_target):
"""
Configure deployment targets. Abstracted so this can be
overriden for rendering before deployment.
"""
global S3_BUCKET
global S3_BASE_URL
global S3_DEPLOY_URL
global DEBUG
global DEPLOYMENT_TARGET
if deployment_target == 'production':
S3_BUCKET = PRODUCTION_S3_BUCKET
S3_BASE_URL = 'https://%s/%s' % (S3_BUCKET['bucket_name'], PROJECT_SLUG)
S3_DEPLOY_URL = 's3://%s/%s' % (S3_BUCKET['bucket_name'], PROJECT_SLUG)
DEBUG = False
elif deployment_target == 'staging':
S3_BUCKET = STAGING_S3_BUCKET
S3_BASE_URL = 'https://s3.amazonaws.com/%s/%s' % (S3_BUCKET['bucket_name'], PROJECT_SLUG)
S3_DEPLOY_URL = 's3://%s/%s' % (S3_BUCKET['bucket_name'], PROJECT_SLUG)
DEBUG = True
else:
S3_BUCKET = None
S3_BASE_URL = '//127.0.0.1:8000'
S3_DEPLOY_URL = None
DEBUG = True
DEPLOYMENT_TARGET = deployment_target
"""
Run automated configuration
"""
DEPLOYMENT_TARGET = os.environ.get('DEPLOYMENT_TARGET', None)
configure_targets(DEPLOYMENT_TARGET)