app.config.from_object('application.settings') # Enable jinja2 loop controls extension app.jinja_env.add_extension('jinja2.ext.loopcontrols') # Pull in URL dispatch routes import urls allowed = ( re.compile("^.*$"), # Match a regex ) cors = CrossOriginResourceSharing(app) cors.set_allowed_origins(*allowed) # Flask-DebugToolbar (only enabled when DEBUG=True) # toolbar = DebugToolbarExtension(app) ADNTokenAuthMiddleware(app) # Werkzeug Debugger (only enabled when DEBUG=True) if app.debug: app = DebuggedApplication(app, evalex=True) else: import logging import email_logger #requests_log = logging.getLogger("requests") #requests_log.setLevel(logging.WARNING) email_logger.register_logger(app.config['ADMIN_EMAIL'])
admin_app.error_handlers[500] = handle_500 # this middleware is in charge of choosing the correct app module instance based on the app regex tuple application = domain_middleware([ (ADMIN_RE, admin_app, admin_urls), (BYU_ADMIN_RE, admin_app, admin_urls), (COACH_RE, app, front_urls), ('.*/app.*', app, app_urls), ('.*', app, front_urls) ]) # register email logger and recipients email_logger.register_logger([ '*****@*****.**', '*****@*****.**', '*****@*****.**' ]) from server.common.blob_serve import UploadService, DownloadService from server.common.channel_service import ChannelService, ChannelConnected, ChannelDisconnected from server.income.income_endpoint import IncomeEndpoint from server.users.users_service import UsersService from server.users.users_endpoint import UserEndpoint from server.users.auth_endpoint import AuthEndpoint from server.answers.one.ans_one_endpoint import AnswerOneEndpoint from server.answers.two.ans_two_endpoint import AnswerTwoEndpoint from server.answers.three.ans_three_endpoint import AnswerThreeEndpoint
import webapp2 import logging import email_logger logging.basicConfig(level=logging.INFO) email_logger.register_logger('*****@*****.**') routes = [ webapp2.Route(r'/_ah/start', handler='sync.StartHandler'), webapp2.Route(r'/geojson', handler='cards.GeoJSONHandler'), webapp2.Route(r'/card/location/<location_slug:[^/]+>', handler='cards.LocationHandler'), webapp2.Route(r'/card/location/<location_slug:[^/]+>/<timeframe:[^/]+>', handler='cards.LocationHandler'), webapp2.Route( r'/card/location/<location_slug:[^/]+>/hash/<hashtags:[^/]+>', handler='cards.LocationHandler'), webapp2.Route( r'/card/location/<location_slug:[^/]+>/<timeframe:[^/]+>/<tags:[^/]+>', handler='cards.LocationHandler'), webapp2.Route( r'/card/location/<location_slug:[^/]+>/<timeframe:[^/]+>/hash/<hashtags:[^/]+>', handler='cards.LocationHandler'), webapp2.Route( r'/card/location/<location_slug:[^/]+>/<timeframe:[^/]+>/<tags:[^/]+>/hash/<hashtags:[^/]+>', handler='cards.LocationHandler'), webapp2.Route(r'/card/locations', handler='cards.LocationsHandler'), webapp2.Route(r'/card/indexbybatches', handler='cards.IndexHandler'), # obsolete webapp2.Route(r'/card/index', handler='cards.IndexByLocationHandler'), webapp2.Route(r'/card/sitemap',
import webapp2 import logging import email_logger logging.basicConfig(level=logging.INFO) email_logger.register_logger('*****@*****.**') routes = [ webapp2.Route(r'/_ah/start', handler='sync.StartHandler'), webapp2.Route(r'/geojson', handler='cards.GeoJSONHandler'), webapp2.Route(r'/card/location/<location_slug:[^/]+>', handler='cards.LocationHandler'), webapp2.Route(r'/card/location/<location_slug:[^/]+>/<timeframe:[^/]+>', handler='cards.LocationHandler'), webapp2.Route(r'/card/location/<location_slug:[^/]+>/hash/<hashtags:[^/]+>', handler='cards.LocationHandler'), webapp2.Route(r'/card/location/<location_slug:[^/]+>/<timeframe:[^/]+>/<tags:[^/]+>', handler='cards.LocationHandler'), webapp2.Route(r'/card/location/<location_slug:[^/]+>/<timeframe:[^/]+>/hash/<hashtags:[^/]+>', handler='cards.LocationHandler'), webapp2.Route(r'/card/location/<location_slug:[^/]+>/<timeframe:[^/]+>/<tags:[^/]+>/hash/<hashtags:[^/]+>', handler='cards.LocationHandler'), webapp2.Route(r'/card/locations', handler='cards.LocationsHandler'), webapp2.Route(r'/card/indexbybatches', handler='cards.IndexHandler'), # obsolete webapp2.Route(r'/card/index', handler='cards.IndexByLocationHandler'), webapp2.Route(r'/card/sitemap', handler='cards.SitemapHandler'), # obsolete webapp2.Route(r'/card/sitemapbylocation', handler='cards.SitemapByLocationHandler'), webapp2.Route(r'/qr/location/<location_slug:[^/]+>', handler='qr.LocationHandler'), webapp2.Route(r'/card/event/<event_slug:[^/]+>/<datetime_slug:[^/]+>', handler='cards.EventHandler'), webapp2.Route(r'/card/event/<event_slug:[^/]+>', handler='cards.EventHandler'), webapp2.Route(r'/<edit_mode:new>', handler='edit.EditHandler'), webapp2.Route(r'/<edit_mode:new>/<latitude:-?\d+\.\d+>,<longitude:-?\d+\.\d+>,<zoom:\d+>z', handler='edit.EditHandler'), webapp2.Route(r'/<edit_mode:new>/<latitude:-?\d+\.\d+>,<longitude:-?\d+\.\d+>,<zoom:\d+>z/<tags:[^/]+>', handler='edit.EditHandler'), webapp2.Route(r'/<edit_mode:new>/<latitude:-?\d+\.\d+>,<longitude:-?\d+\.\d+>,<zoom:\d+>z/hash/<hashtags:[^/]+>', handler='edit.EditHandler'), webapp2.Route(r'/<edit_mode:new>/<latitude:-?\d+\.\d+>,<longitude:-?\d+\.\d+>,<zoom:\d+>z/<tags:[^/]+>/hash/<hashtags:[^/]+>', handler='edit.EditHandler'), webapp2.Route(r'/<edit_mode:new>/location/<location_slug:[^/]+>', handler='edit.EditHandler'),
# encoding: utf-8 import fix_path from server.base.main_config import domain_middleware, app_id, handle_404, handle_500, DEBUG from server.modules.module_urls import app_urls, admin_urls from server.base import micro_webapp2 import email_logger import re # route module regex goes here ADMIN_RE = re.compile(r"^admin.%s.appspot.com$" % app_id) app = micro_webapp2.WSGIApplication(debug=DEBUG) # register custom exception handlers with all of the apps app.error_handlers[404] = handle_404 app.error_handlers[500] = handle_500 # this middleware is in charge of choosing the correct app module instance based on the app regex tuple application = domain_middleware([ (ADMIN_RE, app, admin_urls), ('.*', app, app_urls) ]) # register email logger and recipients email_logger.register_logger([]) # import all shared services for your python app modules here