Moved Catalog, Eula, Game news, ... to JSON Folder.

This commit is contained in:
ZKWolf 2023-07-01 22:07:20 +02:00
parent e42f827d0f
commit be1b1e73e4
9 changed files with 2453 additions and 77 deletions

View File

@ -17,44 +17,13 @@ def gamenews():
faction = request.args.get('faction')
playerLevel = request.args.get('playerLevel')
print("Responded to game news api call GET")
return jsonify({"data": [
{
"Id": "1",
"MessageType": "Daily",
"IsOneTimeGameNews": False,
"ShouldQuitTheGame": False,
"OnlyForPlayersThatCompletedAtLeastOneMatch": False,
"RedirectMode": "None",
"EmbeddedBackgroundImage": "game/UI/ImageAssets/NewsAssets/GeneralAnnouncement_Large",
"EmbeddedInGameNewsBackgroundImage": "game/UI/ImageAssets/NewsAssets/ClosedAlphaWelcomeBanner",
"EmbeddedInGameNewsThumbnailImage": "game/UI/ImageAssets/NewsAssets/CrossPromo",
"FromDate": 1655511433,
"ToDate": 1718669833,
"Translations": [
{
"Language": "EN",
"Body": "Test EN"
},
{
"Language": "FR",
"Body": "Test Fr"
},
{
"Language": "IT",
"Body": "Test IT"
},
{
"Language": "ES",
"Body": "Test Es"
}
]
}
]})
output = json.load(open(os.path.join(app.root_path, "json", "placeholders", "gamenews.json"), "r"))
return jsonify(output)
except TimeoutError:
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-Game-News", message=f"Error in gamenews: {e}")
logger.graylog_logger(level="error", handler="general-Game-News", message=e)
@app.route("/api/v1/config/VER_LATEST_CLIENT_DATA", methods=["GET"])
@ -67,7 +36,7 @@ def config_ver_latest_client_data():
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-ver-latest-data", message=f"Error in config_ver_latest_client_data: {e}")
logger.graylog_logger(level="error", handler="general-ver-latest-data", message=e)
@app.route("/api/v1/utils/contentVersion/latest/<version>", methods=["GET"])
@ -81,7 +50,7 @@ def content_version_latest(version):
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-content-version", message=f"Error in content_version_latest: {e}")
logger.graylog_logger(level="error", handler="general-content-version", message=e)
@app.route("/gameservers.dev", methods=["POST", "GET"])
@ -95,7 +64,7 @@ def gameservers_dev():
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-gameserver-dev", message=f"Error in gameservers_dev: {e}")
logger.graylog_logger(level="error", handler="general-gameserver-dev", message=e)
@app.route("/gameservers.uat", methods=["POST"])
@ -125,7 +94,7 @@ def gameservers_live():
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-gameserver-dev", message=f"Error in gameservers_dev: {e}")
logger.graylog_logger(level="error", handler="general-gameserver-dev", message=e)
@app.route("/api/v1/config/UseMirrorsMM_Steam", methods=["GET"]) # What is this even???
@ -138,7 +107,7 @@ def config_use_mirrors_mm_steam():
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-use-mirrors-mm-steam", message=f"Error in config_use_mirrors_mm_steam: {e}")
logger.graylog_logger(level="error", handler="general-use-mirrors-mm-steam", message=e)
@app.route("/crashreport/unreal/CrashReporter/Ping", methods=["GET"])
@ -151,7 +120,7 @@ def crashreporter_ping():
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-crashreporter-ping", message=f"Error in crashreporter_ping: {e}")
logger.graylog_logger(level="error", handler="general-crashreporter-ping", message=e)
@app.route("/tex", methods=["GET"])
@ -163,7 +132,7 @@ def tex_get():
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-tex", message=f"Error in tex_get: {e}")
logger.graylog_logger(level="error", handler="general-tex", message=e)
@app.route('/favicon.ico')
@ -176,7 +145,7 @@ def favicon():
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-favicon", message=f"Error in favicon: {e}")
logger.graylog_logger(level="error", handler="general-favicon", message=e)
@app.route("/api/v1/healthcheck", methods=["GET"])
@ -184,13 +153,13 @@ def healthcheck():
get_remote_ip()
try:
# return jsonify({"status": "success", "online": "true"})
return jsonify({"PublicIp": "192.168.1.1", "KrakenVersion": "3.6.1", "Kraken": [{"Running": False, "Errors": {}}]})
return jsonify({"Health": "Alive"})
# {"Health": "Alive"}
except TimeoutError:
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-healthcheck", message=f"Error in healthcheck: {e}")
logger.graylog_logger(level="error", handler="general-healthcheck", message=e)
@app.route("/api/v1/services/tex")
@ -206,7 +175,7 @@ def services_tex():
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-services-tex", message=f"Error in services_tex: {e}")
logger.graylog_logger(level="error", handler="general-services-tex", message=e)
@app.route("/api/v1/consent/eula2", methods=["PUT", "GET"])
@ -234,7 +203,7 @@ def consent_eula():
else:
return jsonify({"isGiven": False})
except Exception as e:
logger.graylog_logger(level="error", handler="general-consent-eula", message=f"Error in consent_eula: {e}")
logger.graylog_logger(level="error", handler="general-consent-eula", message=e)
@app.route("/api/v1/consent/eula", methods=["GET"])
@ -242,14 +211,13 @@ def consent_eula0():
get_remote_ip()
try:
print("Responded to consent eula api call GET")
return jsonify({"id": "eula", "language": ["de", "en", "es", "es-MX", "fr", "it", "ja", "ko", "nl", "pl",
"pt-BR", "ru", "sv", "th", "tr", "zh-Hans", "zh-Hant"],
"platform": ["steam", "xbox", "xsx", "switch", "grdk", "stadia"]}) # Don't know. Added as Placeholder.
output = json.load(open(os.path.join(app.root_path, "json", "eula.json"), "r"))
return jsonify(output)
except TimeoutError:
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-consent-eula0", message=f"Error in consent_eula0: {e}")
logger.graylog_logger(level="error", handler="general-consent-eula0", message=e)
@app.route("/api/v1/consent/privacyPolicy", methods=["GET"])
@ -257,14 +225,13 @@ def privacy_policy():
get_remote_ip()
try:
print("Responded to consent privacyPolicy api call GET")
return jsonify({"id":"privacy","language":["de","en","es","es-MX","fr","it","ja","ko","nl","pl","pt-BR","ru",
"sv","th","tr","zh-Hans","zh-Hant"],
"platform":["steam","xbox","xsx","switch","grdk","ps4","ps5","stadia"]})
output = json.load(open(os.path.join(app.root_path, "json", "eula.json"), "r"))
return jsonify(output)
except TimeoutError:
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-privacy-policy", message=f"Error in consent_eula0: {e}")
logger.graylog_logger(level="error", handler="general-privacy-policy", message=e)
@app.route("/file/<game_version>/<seed>/<map_name>", methods=["POST", "GET"])
@ -299,16 +266,8 @@ def leaderboard_get_scores():
if request.method == "POST":
print("Responded to leaderboard getScores api call POST")
logger.graylog_logger(level="info", handler="general-leaderboard-get-scores", message=f"Leaderboard getScores: {request.get_json()}")
return jsonify({"TopScores":{"Scores":[{"playerID": "a-1-b-2", "PlayerName": "Hans", "Rank": 1, "Score": 10, "Percentile": 1},
{"playerID": "a-2-b-2", "PlayerName": "Peter", "Rank": 2, "Score": 9, "Percentile": 2},
{"playerID": "a-3-b-3", "PlayerName": "Lukas", "Rank": 3, "Score": 8, "Percentile": 3},
{"playerID": "a-4-b-4", "PlayerName": "Jonas", "Rank": 4, "Score": 7, "Percentile": 4},
{"playerID": "a-5-b-5", "PlayerName": "Mark", "Rank": 5, "Score": 6, "Percentile": 5}]},
"PlayerScores": {"Scores":[{"playerID": "a-1-b-2", "PlayerName": "Hans", "Rank": 1, "Score": 10, "Percentile": 1},
{"playerID": "a-2-b-2", "PlayerName": "Peter", "Rank": 2, "Score": 9, "Percentile": 2},
{"playerID": "a-3-b-3", "PlayerName": "Lukas", "Rank": 3, "Score": 8, "Percentile": 3},
{"playerID": "a-4-b-4", "PlayerName": "Jonas", "Rank": 4, "Score": 7, "Percentile": 4},
{"playerID": "a-5-b-5", "PlayerName": "Mark", "Rank": 5, "Score": 6, "Percentile": 5}]}})
data = json.load(open(os.path.join(app.root_path, "json", "placeholders", "leaderboard.json"), "r"))
return jsonify(data)
else:
try:
print("Responded to leaderboard getScores api call GET")
@ -317,7 +276,7 @@ def leaderboard_get_scores():
print("Timeout error")
return jsonify({"status": "error"})
except Exception as e:
logger.graylog_logger(level="error", handler="general-leaderboard-get-scores", message=f"Error in leaderboard_get_scores: {e}")
logger.graylog_logger(level="error", handler="general-leaderboard-get-scores", message=e)
@app.route("/submit/", methods=["POST"])

View File

@ -1,6 +1,4 @@
from flask_definitions import *
import json
import os
# Do NOT change Result to ANYTHING or Add anything before it. Game will crash. Doesnt mean it 100% works tho XD
@ -9,7 +7,6 @@ def catalog_get(game_version):
print("Game Version of Catalog: " + game_version)
get_remote_ip()
try:
# output = json.load(open(os.path.join(app.root_path, "catalog", game_version, "catalog.json"), "r"))
output = json.load(open(os.path.join(app.root_path, "json", "catalog", game_version, "catalog.json"), "r"))
return jsonify(output)
@ -21,5 +18,6 @@ def catalog_get(game_version):
@app.errorhandler(404)
def debug_404(e):
def debug_404():
logger.graylog_logger(level="error", handler="404-handler", message=f"Path: {request.path} Endpoint: {request.endpoint}")
return jsonify({"message": "Endpoint not found"}), 404

View File

@ -1,3 +1,5 @@
import time
from flask_definitions import *
import requests
from logic.mongodb_handler import mongo
@ -250,6 +252,7 @@ def progression_groups():
get_remote_ip()
try:
print("Responded to progression groups api call GET")
return jsonify({"ObjectId": "FSTRING", "Version": 11, "SchemaVersion": 11, "Data": {}})
return jsonify({"List": [{"ObjectId": "Runner.Sawbones",
"SchemaVersion": 11111111,
"Version": 11111111,
@ -274,15 +277,28 @@ def ban_status():
get_remote_ip()
login_cookie = request.cookies.get("bhvrSession")
try:
ban_data = mongo.get_data_with_list(login=login_cookie, login_steam=False, items={"is_banned", "ban_reason", "ban_start", "ban_expire"}, server=mongo_host, db=mongo_db, collection=mongo_collection)
time.sleep(0.5)
ban_data = mongo.get_data_with_list(login=login_cookie, login_steam=False,
items={"is_banned", "ban_reason", "ban_start", "ban_expire"},
server=mongo_host, db=mongo_db, collection=mongo_collection)
if ban_data == None:
print("Error in ban_data_database")
return jsonify({"status": "error"})
return jsonify({"IsBanned": ban_data["is_banned"], "BanInfo": {"BanPeriod": 10,
elif ban_data["is_banned"] == True:
return jsonify({"IsBanned": ban_data["is_banned"], "BanInfo": {"BanPeriod": 10,
"BanReason": ban_data["ban_reason"],
"BanStart": ban_data["ban_start"],
"BanEnd": ban_data["ban_expire"],
"Confirmed": True, "Pending": False}})
"Confirmed": False, "Pending": False}})
elif ban_data["is_banned"] == False:
return jsonify({"IsBanned": ban_data["is_banned"], "BanInfo": {"BanPeriod": 0,
"BanReason": "None",
"BanStart": 0,
"BanEnd": 0,
"Confirmed": False, "Pending": False}})
else:
print("Error in ban_data_database")
return jsonify({"status": "error"})
except TimeoutError:
print("Timeout error")
return jsonify({"status": "error"})
@ -386,11 +402,8 @@ def messages_list():
get_remote_ip()
try:
limit = request.args.get("limit")
return jsonify({"Messages": [{"Received": 1687192383, "Flag": "Reliable", "Message":
{"Title": "Message from the Rebirth Team.", "Body": "Welcome to Project Deathgarden Rebirth! The goal of "
"this Project is to rebuild the Deathgarden API. "
"For more Info visit our Github Repo!", "Claimable": [{}]}, "Tag": "Direct", "ExpireAt": 1787192383,
"Origin": "Warning", "RecipientId": "6969696969696969"}], "NetPage": "None"})
output = json.load(open(os.path.join(app.root_path, "json", "placeholders", "messages.json"), "r"))
return jsonify(output)
except TimeoutError:
print("Timeout error")
return jsonify({"status": "error"})

View File

@ -1,6 +1,8 @@
from flask import Flask, jsonify, request, send_from_directory, abort, render_template, url_for
from logic.global_handlers import get_remote_ip, load_config
from logic.logging_handler import logger
import json
import os
app = Flask(__name__)

File diff suppressed because it is too large Load Diff

30
src/json/eula.json Normal file
View File

@ -0,0 +1,30 @@
{
"id":"eula",
"language":[
"de",
"en",
"es",
"es-MX",
"fr",
"it",
"ja",
"ko",
"nl",
"pl",
"pt-BR",
"ru",
"sv",
"th",
"tr",
"zh-Hans",
"zh-Hant"
],
"platform":[
"steam",
"xbox",
"xsx",
"switch",
"grdk",
"stadia"
]
}

View File

@ -0,0 +1,35 @@
{
"data":[
{
"Id":"1",
"MessageType":"Daily",
"IsOneTimeGameNews":false,
"ShouldQuitTheGame":false,
"OnlyForPlayersThatCompletedAtLeastOneMatch":false,
"RedirectMode":"None",
"EmbeddedBackgroundImage":"game/UI/ImageAssets/NewsAssets/GeneralAnnouncement_Large",
"EmbeddedInGameNewsBackgroundImage":"game/UI/ImageAssets/NewsAssets/ClosedAlphaWelcomeBanner",
"EmbeddedInGameNewsThumbnailImage":"game/UI/ImageAssets/NewsAssets/CrossPromo",
"FromDate":1655511433,
"ToDate":1718669833,
"Translations":[
{
"Language":"EN",
"Body":"Test EN"
},
{
"Language":"FR",
"Body":"Test Fr"
},
{
"Language":"IT",
"Body":"Test IT"
},
{
"Language":"ES",
"Body":"Test Es"
}
]
}
]
}

View File

@ -0,0 +1,80 @@
{
"TopScores":{
"Scores":[
{
"playerID":"a-1-b-2",
"PlayerName":"Hans",
"Rank":1,
"Score":10,
"Percentile":1
},
{
"playerID":"a-2-b-2",
"PlayerName":"Peter",
"Rank":2,
"Score":9,
"Percentile":2
},
{
"playerID":"a-3-b-3",
"PlayerName":"Lukas",
"Rank":3,
"Score":8,
"Percentile":3
},
{
"playerID":"a-4-b-4",
"PlayerName":"Jonas",
"Rank":4,
"Score":7,
"Percentile":4
},
{
"playerID":"a-5-b-5",
"PlayerName":"Mark",
"Rank":5,
"Score":6,
"Percentile":5
}
]
},
"PlayerScores":{
"Scores":[
{
"playerID":"a-1-b-2",
"PlayerName":"Hans",
"Rank":1,
"Score":10,
"Percentile":1
},
{
"playerID":"a-2-b-2",
"PlayerName":"Peter",
"Rank":2,
"Score":9,
"Percentile":2
},
{
"playerID":"a-3-b-3",
"PlayerName":"Lukas",
"Rank":3,
"Score":8,
"Percentile":3
},
{
"playerID":"a-4-b-4",
"PlayerName":"Jonas",
"Rank":4,
"Score":7,
"Percentile":4
},
{
"playerID":"a-5-b-5",
"PlayerName":"Mark",
"Rank":5,
"Score":6,
"Percentile":5
}
]
}
}

View File

@ -0,0 +1,22 @@
{
"Messages":[
{
"Received":1687192383,
"Flag":"Reliable",
"Message":{
"Title":"Message from the Rebirth Team.",
"Body":"Welcome to Project Deathgarden Rebirth! The goal of this Project is to rebuild the Deathgarden API. For more Info visit our Github Repo!",
"Claimable":[
{
}
]
},
"Tag":"Direct",
"ExpireAt":1787192383,
"Origin":"Warning",
"RecipientId":"6969696969696969"
}
],
"NetPage":"None"
}