示例#1
0
def start():
    global user
    user = User.query.filter_by(uuid=request.args.get('user')).first()
    if user is None:
        user = User(uuid=request.args.get('user'))
        db.session.add(user)

    user.app_version = request.args.get('version')
    user.language = request.args.get('language')
    user.is_metric = request.args.get('metric')

    if request.headers.getlist("X-Forwarded-For"):
        user.ip_address = request.headers.getlist("X-Forwarded-For")[0]
    else:
        user.ip_address = request.remote_addr

    db.session.commit()

    task_name = request.args.get('task')

    # temporary fix to 1.0 app version
    n = task_name.split("_")
    if n[0] == "area":
        task_name = "area"

    task = Task.query.filter_by(identifier=task_name).first()

    if task is None:
        abort(404)

    taskrun = generate_game(task, user)
    schema = taskrun_schema.dump(taskrun)
    return jsonify(schema.data)