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()
@ -122,26 +146,68 @@ def crashreporter_check_report():
# Ngl i think it doesnt even care what it gets here...
# It Pings, Sends something like "UE4CC-Windows-AB720C3F412E0FF7280F73BBB64245AB_0003"
# and then uploads the crashreport to bugsplat
return jsonify({"status":"success","stackKeyId":-1,"crashId":2011,"messageId":-1})
return jsonify({"status": "success", "stackKeyId": -1, "crashId": 2011, "messageId": -1})
except TimeoutError:
return jsonify({"status": "error"})
except Exception as e:
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():
check_for_game_client("strict")
return "", 204
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():
check_for_game_client("strict")
return "", 204
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():
check_for_game_client("strict")
return "", 204
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