Exemple #1
0
def root(function=None):
    response = {
        'data': {}
    }

    if not request.json:
        record_query(request, NOT_VALID_JSON)
        return json.jsonify(NOT_VALID_JSON)

    if 'data' not in request.json.keys():
        record_query(request, MISSING_DATA)
        return json.jsonify(MISSING_DATA)

    try:
        ip, port = request.json['data'].split(':')
    except:
        record_query(request, NOT_VALID_JSON)
        return json.jsonify(NOT_VALID_JSON)

    try:
        s = SourceQuery(ip, int(port))
        servername = '{}:{}'.format(ip, port)

        if function == 'all':
            response['data'][servername] = s.info()
            response['data'][servername]['players'] = s.player()
        elif function == 'serverinfo':
            response['data'][servername] = s.info()
        elif function == 'playerinfo':
            response['data'][servername] = s.player()
        elif function == 'ping':
            response['data'][servername] = s.ping()
        elif function == 'rules':
            s.timeout = 10
            response['data'][servername] = s.rules()
        else:
            record_query(request, ENDPOINT_NOT_FOUND)
            return json.jsonify(ENDPOINT_NOT_FOUND)

        response['status'] = 'success'
        record_query(request, None)
        return json.jsonify(response)
    except Exception:
        record_query(request, NO_RESPONSE)
        return json.jsonify(NO_RESPONSE)