Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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)
Beispiel #4
0
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
Beispiel #5
0
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
Beispiel #6
0
    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')
Beispiel #7
0
    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')
Beispiel #8
0
    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')
Beispiel #9
0
    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')
Beispiel #10
0
    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')
Beispiel #11
0
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()
Beispiel #12
0
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()
Beispiel #13
0
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()
Beispiel #14
0
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
Beispiel #15
0
    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', '', '*****@*****.**')""")
Beispiel #16
0
  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)
Beispiel #17
0
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)
Beispiel #18
0
        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)
Beispiel #19
0
"""
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)
Beispiel #20
0
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()