import os from flask import Flask, send_from_directory from flask_socketio import SocketIO from . import prefix socketio = SocketIO(path=os.path.join(os.environ.get("URL_PREFIX", ""), "socket.io")) def create_app(test_config=None): # Create and configure the Flask App app = Flask(__name__, instance_relative_config=True) app.config.from_mapping( SECRET_KEY="dev", ) if test_config is None: # load the instance config, if it exists, when not testing app.config.from_pyfile("config.py", silent=True) else: # load the test config if passed in app.config.from_mapping(test_config) # ensure the instance folder exists try: os.makedirs(app.instance_path) except OSError: pass @app.route("/favicon.ico") def favicon(): return send_from_directory( os.path.join(app.root_path, "static"), "favicon.ico", mimetype="image/vnd.microsoft.icon", ) from . import bowl app.register_blueprint(bowl.bp) from . import handle app.register_blueprint(handle.bp) app.wsgi_app = prefix.PrefixMiddleware( app.wsgi_app, prefix=os.environ.get("URL_PREFIX", "") ) socketio.init_app(app, cors_allowed_origins="*") return app