from flask import Flask, render_template, request, session, flash, redirect, jsonify, json from dynamodb.ConnectionManager import ConnectionManager from dynamodb.gameController import GameController from uuid import uuid4 from models.game import Game import os, time, sys, argparse import logging application = Flask(__name__) application.debug = True application.secret_key = str(uuid4()) cm = ConnectionManager() controller = GameController(cm) @application.route('/logout') def logout(): session["username"] = None return redirect("/index") @application.route('/') @application.route('/index', methods=["GET", "POST"]) def index(): if session == {} or session.get("username", None) == None: form = request.form if form: formInput = form["username"] if formInput and formInput.strip(): session["username"] = request.form["username"]
config = None if 'CONFIG_FILE' in os.environ: if configFile is not None: raise Exception('Cannot specify --config when setting the CONFIG_FILE environment variable') configFile = os.environ['CONFIG_FILE'] if configFile is not None: config = ConfigParser() config.read(configFile) # Read environment variable for whether to read config from EC2 instance metadata use_instance_metadata = "" if 'USE_EC2_INSTANCE_METADATA' in os.environ: use_instance_metadata = os.environ['USE_EC2_INSTANCE_METADATA'] cm = ConnectionManager(mode=args.mode, config=config, endpoint=args.endpoint, port=args.port, use_instance_metadata=use_instance_metadata) controller = GameController(cm) serverPort = args.serverPort if config is not None: if config.has_option('flask', 'secret_key'): application.secret_key = config.get('flask', 'secret_key') if serverPort is None: if config.has_option('flask', 'serverPort'): serverPort = config.get('flask', 'serverPort') # Default to environment variables for server port - easier for elastic beanstalk configuration if 'SERVER_PORT' in os.environ: serverPort = int(os.environ['SERVER_PORT']) if serverPort is None: serverPort = 80