Fixed malformed player logs
Some checks failed
Build Docker image / build-and-push-image (push) Has been cancelled

This commit is contained in:
ZKWolf 2024-07-21 03:54:47 +02:00
parent a04c21da92
commit f440e44bc0

View File

@ -3,6 +3,30 @@ import uuid
from flask_definitions import *
def json_log_validator(data):
cleaned_str = data.decode('utf8')
# base_str = cleaned_str.replace('\n', '')
cleaned_str = cleaned_str.replace('://', '-')
cleaned_str = cleaned_str.replace('"https', 'https')
# cleaned_str = cleaned_str.replace('""', '"')
cleaned_str = cleaned_str.replace('\\', '\\\\')
cleaned_str = cleaned_str.replace(u"\u000D", "") # Carriage Return
cleaned_str = cleaned_str.replace(u"\u000A", "") # Line Feed
cleaned_str = cleaned_str.replace(u"\u0009", "") # Horizontal Tab
cleaned_str = cleaned_str.replace('{""', "{")
cleaned_str = cleaned_str.replace('"":', ":")
cleaned_str = cleaned_str.replace('"url"', "url")
cleaned_str = cleaned_str.replace('"endpoints"', "endpoints")
cleaned_str = cleaned_str.replace('"}],', "}]")
cleaned_str = cleaned_str.replace('"group"', "group")
cleaned_str = cleaned_str.replace('"cf-nel"', "cf-nel")
cleaned_str = cleaned_str.replace('"max_age"', "max_age")
cleaned_str = cleaned_str.replace('"report_to"', "report_to")
cleaned_str = cleaned_str.replace('"success_fraction"', "success_fraction")
cleaned_str = cleaned_str.replace('":443"', ":443")
return cleaned_str
@app.route("/metrics/client/event", methods=["POST"])
def receive_event():
check_for_game_client()
@ -129,19 +153,61 @@ def crashreporter_check_report():
logger.graylog_logger(level="error", handler="logging_crashreporter_CheckReport", message=e)
@app.route("/gameservers.dev", methods=["POST", "GET"])
@app.route("/gameservers.dev", methods=["POST"])
def gameservers_dev():
try:
check_for_game_client("strict")
req = request.get_data()
cleaned_str = json_log_validator(req)
try:
data = json.loads(cleaned_str)
logger.graylog_logger(level="info", handler="logging_gameservers_dev", message=data)
except Exception as e:
logger.graylog_logger(level="error", handler="logging_gameservers_dev", message=e)
return jsonify({"status": "error"}), 500
return "", 204
except TimeoutError:
return jsonify({"status": "error"}), 500
except Exception as e:
logger.graylog_logger(level="error", handler="logging_gameservers_dev", message=e)
return jsonify({"status": "error"}), 500
@app.route("/gameservers.uat", methods=["POST"])
def gameservers_uat():
try:
check_for_game_client("strict")
req = request.get_data()
cleaned_str = json_log_validator(req)
try:
data = json.loads(cleaned_str)
logger.graylog_logger(level="info", handler="logging_gameservers_uat", message=data)
except Exception as e:
logger.graylog_logger(level="error", handler="logging_gameservers_uat", message=e)
return jsonify({"status": "error"}), 500
return "", 204
except TimeoutError:
return jsonify({"status": "error"}), 500
except Exception as e:
logger.graylog_logger(level="error", handler="logging_gameservers_uat", message=e)
return jsonify({"status": "error"}), 500
@app.route("/gameservers.live", methods=["POST", "GET"])
@app.route("/gameservers.live", methods=["POST"])
def gameservers_live():
try:
check_for_game_client("strict")
req = request.get_data()
cleaned_str = json_log_validator(req)
try:
data = json.loads(cleaned_str)
logger.graylog_logger(level="info", handler="logging_gameservers_live", message=data)
except Exception as e:
logger.graylog_logger(level="error", handler="logging_gameservers_live", message=e)
return jsonify({"status": "error"}), 500
return "", 204
except TimeoutError:
return jsonify({"status": "error"}), 500
except Exception as e:
logger.graylog_logger(level="error", handler="logging_gameservers_live", message=e)
return jsonify({"status": "error"}), 500