def handle_file_test(message): payload = message['payload'] token = payload['token'] api_init(token) env_dir = get_env_dir() file_id = payload['fileId'] env_options = { 'env_dir': env_dir, } env = setup_environment(message, env_options) filename = env['file_meta'][file_id]['filename'] print(f'> testing {filename}') print('env:', env) script = get_script_path('test.py') params = { 'filename': env['file_local'][file_id], 'tests': payload['tests'] } result = rhino_run(script, params) # tests = result['tests'] # res = api_set_project_file_tests(payload['projectId'], payload['fileId'], tests) return result
def handle_file_preview(message): payload = message['payload'] token = payload['token'] api_init(token) env_dir = get_env_dir() file_id = payload['fileId'] env_options = { 'env_dir': env_dir, } env = setup_environment(message, env_options) print(f'> make capture {file_id}') print('env:', env) script = get_script_path('capture.py') params = { **payload, 'filename': env['file_local'][file_id], 'outputDir': env_dir, } result = rhino_run(script, params) previews = zip(payload['previews'], result['previews']) for preview, preview_file in previews: suffix = preview['viewport'] obj = f'preview/{file_id}-{suffix}.png' s3_upload('sisu', obj, preview_file) print(f'> upload to s3 {obj}', preview_file) return result
def handle_run_gh(message): payload = message['payload'] token = payload['token'] api_init(token) env_dir = get_env_dir() file_id = payload['fileId'] env_options = { 'env_dir': env_dir, } env = setup_environment(message, env_options) print(f'> run gh script on {file_id}') filename = env['file_local'][file_id] basename = os.path.basename(filename) script = get_script_path('gh.py') params = { **payload, 'filename': env['file_local'][file_id], 'outputDir': env_dir, 'outputFile': f'OUT_{basename}', } return rhino_run(script, params)
def app(): importlib.reload(api) importlib.reload(api.mods) importlib.reload(api.bugreports) importlib.reload(api.maps) importlib.reload(api.events) importlib.reload(api.achievements) importlib.reload(api.games) importlib.reload(api.ranked1v1) importlib.reload(api.clans) api.app.config.from_object('config') api.app.debug = True api.api_init() return api.app
def app(): importlib.reload(api) importlib.reload(api.mods) importlib.reload(api.bugreports) importlib.reload(api.maps) importlib.reload(api.events) importlib.reload(api.achievements) importlib.reload(api.leaderboards) importlib.reload(api.clans) importlib.reload(api.coop) api.app.config.from_object('config') api.app.debug = True api.api_init() return api.app
def setUp(self): importlib.reload(api) importlib.reload(api.oauth_handlers) importlib.reload(api.auth) api.app.config.from_object('config') api.api_init() api.app.debug = True self.app = api.app.test_client() with db.connection: cursor = db.connection.cursor() cursor.execute('TRUNCATE TABLE login') cursor.execute('TRUNCATE TABLE oauth_clients') cursor.execute('TRUNCATE TABLE oauth_tokens')
def setUp(self): importlib.reload(api) importlib.reload(api.oauth_handlers) importlib.reload(api.auth) api.app.config.from_object('config') api.api_init() api.app.debug = True self.app = api.app.test_client() with db.connection: cursor = db.connection.cursor() cursor.execute('TRUNCATE TABLE login') cursor.execute('TRUNCATE TABLE oauth_clients') cursor.execute('TRUNCATE TABLE oauth_tokens')
def setUp(self): importlib.reload(api) importlib.reload(api.oauth_handlers) importlib.reload(api.events) api.app.config.from_object('config') api.api_init() api.app.debug = True api.oauth.tokengetter(self.get_token) self.app = api.app.test_client() db.init_db(api.app.config) with db.connection: cursor = db.connection.cursor() cursor.execute('TRUNCATE TABLE player_events')
def setUp(self): importlib.reload(api) importlib.reload(api.oauth_handlers) importlib.reload(api.achievements) api.app.config.from_object('config') api.api_init() api.app.debug = True api.oauth.tokengetter(self.get_token) self.app = api.app.test_client() with db.connection: cursor = db.connection.cursor() cursor.execute('delete from login') cursor.execute('delete from player_achievements')
def setUp(self): importlib.reload(api) importlib.reload(api.oauth_handlers) importlib.reload(api.achievements) api.app.config.from_object('config') api.api_init() api.app.debug = True api.oauth.tokengetter(self.get_token) self.app = api.app.test_client() with db.connection: cursor = db.connection.cursor() cursor.execute('TRUNCATE TABLE login') cursor.execute('TRUNCATE TABLE player_achievements')
def oauth(): def get_token(access_token=None, refresh_token=None): return Mock(user=User(id=1), expires=datetime.datetime.now() + datetime.timedelta(hours=1), scopes=['public_profile']) importlib.reload(api) importlib.reload(api.oauth_handlers) importlib.reload(api.players) api.app.config.from_object('config') api.api_init() api.app.debug = True api.oauth.tokengetter(get_token) return api.app.test_client()
def oauth(): def get_token(access_token=None, refresh_token=None): return Mock(user=User(id=1, login="******"), expires=datetime.datetime.now() + datetime.timedelta(hours=1), scopes=['write_account_data']) importlib.reload(api) importlib.reload(api.oauth_handlers) importlib.reload(api.users_route) api.app.config.from_object('config') api.api_init() api.app.debug = True api.oauth.tokengetter(get_token) return api.app.test_client()
def oauth(): def get_token(access_token=None, refresh_token=None): return Mock( user=User(id=1), expires=datetime.datetime.now() + datetime.timedelta(hours=1), scopes=['read_achievements', 'write_achievements', 'upload_mod']) importlib.reload(api) importlib.reload(api.oauth_handlers) importlib.reload(api.mods) api.app.config.from_object('config') api.api_init() api.app.debug = True api.oauth.tokengetter(get_token) return api.app.test_client()
def app(): importlib.reload(api) importlib.reload(api.mods) importlib.reload(api.bugreports) importlib.reload(api.maps) importlib.reload(api.events) importlib.reload(api.achievements) importlib.reload(api.leaderboards) importlib.reload(api.coop) importlib.reload(api.players) importlib.reload(api.users_route) importlib.reload(api.featured_mods) importlib.reload(api.helpers) importlib.reload(api.deployment.routes) api.app.config.from_object('config') api.app.debug = True api.api_init() return api.app
def setUp(self): importlib.reload(api) importlib.reload(api.oauth_handlers) importlib.reload(api.achievements) api.app.config.from_object('config') api.api_init() api.app.debug = True api.oauth.tokengetter(self.get_token) self.app = api.app.test_client() with db.connection: cursor = db.connection.cursor() cursor.execute('delete from avatars') cursor.execute('delete from login') cursor.execute('delete from player_achievements') # TODO use common fixtures cursor.execute("""insert into login (id, login, password, email) values (1, 'User 1', '', '*****@*****.**')""")
run.py run.py [-d | -aio] -p 80 run.py [-d | -aio] --port=80 Options: -h Show this screen -aio Use aiohttp -d Enable debug mode -p --port=<port> Listen on given port [default: 8080]. """ from docopt import docopt from api import app, api_init if __name__ == '__main__': args = docopt(__doc__) app.config.from_object('config') api_init() port = int(args.get("--port")) print('listen on port {0}'.format(port)) if args.get('-d'): app.debug = True app.run(host='0.0.0.0', port=port) else: print('with aiohttp') from aiohttp_wsgi import serve from concurrent.futures import ThreadPoolExecutor with ThreadPoolExecutor(max_workers=1) as executor: serve(app, executor=executor, port=port)
from socket_io import init as socket_init parser = argparse.ArgumentParser(description='Clow server/engine agent.') parser.add_argument('--host', dest='host', type=str, default='local', choices=['local', 'external'], help='Clow server host (default: "local")') parser.add_argument('--port', dest='port', type=int, default=5000, help='Clow server port (default: 5000)') parser.add_argument('--debug', dest='debug', type=int, default=False, choices=[0, 1], help='Enable debug mode (default: 0, disabled)') args = parser.parse_args() app = Flask(__name__) CORS(app) if __name__ == '__main__': api_init(app) socket_init(app) app.run(host='0.0.0.0' if args.host == 'external' else None, port=args.port, debug=args.debug)
loop.run_until_complete(ws_send(config.WS_ADDRESS, q)) except websockets.exceptions.ConnectionClosedError: print( 'Websocket client disconnected?!\nPlease check if the websocket server is running.' ) time.sleep(1) finally: ws_worker(q, loop) if __name__ == "__main__": config.read_cfg() while True: try: api.api_init() break except: if input( "Your DeFRaG engine is not running. Would you like us to launch it for you? [Y/n]: " ).lower() == "y": launch() time.sleep(2) logfile_path = config.DF_DIR + '\\qconsole.log' con_process = threading.Thread(target=console.read, args=(logfile_path, ), daemon=True) con_process.start() flask_process = threading.Thread(target=app.run, daemon=True)
""" Run the server locally """ from api import app, api_init app.config.from_object('config') api_init() # By default, run debug mode app.debug = True app.run(port=8080)
import sys from flask import Flask, render_template, request from flask_cors import CORS, cross_origin from flask_jwt_extended import jwt_required from flask_socketio import SocketIO, join_room from loguru import logger from api import api_init from db import db_init, jwt_init from game_entities import rooms, create_new_room logger.add(sys.stdout, colorize=True) flask_app = Flask(__name__) api = api_init(flask_app) db = db_init(flask_app) jwt = jwt_init(flask_app) flask_app.config['JWT_SECRET_KEY'] = os.getenv('SECRET_KEY', 'add_env_var') CORS(flask_app, resources={r'/*': {'origins': '*'}}) socketio = SocketIO(flask_app, cors_allowed_origins="*", log=logger, channel='') @flask_app.route('/') @jwt_required @cross_origin()