InitOrGetGroups UPDATE Function

This commit is contained in:
ZKWolf 2024-02-14 00:36:52 +01:00
parent 7e09031cd6
commit 3080117bde

View File

@ -202,11 +202,13 @@ def modifiers():
session_cookie = sanitize_input(request.cookies.get("bhvrSession")) session_cookie = sanitize_input(request.cookies.get("bhvrSession"))
userid = session_manager.get_user_id(session_cookie) userid = session_manager.get_user_id(session_cookie)
steamid, token = mongo.get_data_with_list(login=userid, login_steam=False, data = mongo.get_data_with_list(login=userid, login_steam=False,
items={"steamid", "token"}) items={"steamid", "token"})
token = data["token"]
steamid = data["steamid"]
try: try:
return jsonify({"TokenId": token, "UserId": userid, "RoleIds": ["755D4DFE-40DA1512-B01E3D8C-FF3C8D4D", return jsonify({"Modifiers": []})
"C50FFFBF-46866131-82F45890-651797CE"]})
except TimeoutError: except TimeoutError:
return jsonify({"status": "error"}) return jsonify({"status": "error"})
except Exception as e: except Exception as e:
@ -221,8 +223,7 @@ def modifiers_userid(userid):
steamid, token = mongo.get_data_with_list(login=userid, login_steam=False, steamid, token = mongo.get_data_with_list(login=userid, login_steam=False,
items={"token", "steamid"}) items={"token", "steamid"})
try: try:
return jsonify({"TokenId": token, "UserId": userid, "RoleIds": ["755D4DFE-40DA1512-B01E3D8C-FF3C8D4D", return jsonify({"Modifiers": []})
"C50FFFBF-46866131-82F45890-651797CE"]})
except TimeoutError: except TimeoutError:
return jsonify({"status": "error"}) return jsonify({"status": "error"})
except Exception as e: except Exception as e:
@ -246,10 +247,6 @@ def moderation_check_username():
"PlayerName": username, "PlayerName": username,
"UserId": steamid "UserId": steamid
}) })
#
return jsonify({"Id": userid, "Token": token,
"Provider": {"ProviderName": request_var["username"],
"ProviderId": steamid}}) # CLIENT:{"userId": "ID-ID-ID-ID-SEE-AUTH", "username": "Name-Name-Name"}
except TimeoutError: except TimeoutError:
return jsonify({"status": "error"}) return jsonify({"status": "error"})
except Exception as e: except Exception as e:
@ -681,7 +678,6 @@ def messages_list():
@app.route("/api/v1/messages/v2/markAs", methods=["POST"]) @app.route("/api/v1/messages/v2/markAs", methods=["POST"])
def messages_mark_as(): def messages_mark_as():
# {"messageList":[{"received":1687192385,"recipientId":"2"}],"flag":"READ"}
try: try:
check_for_game_client("strict") check_for_game_client("strict")
session_cookie = sanitize_input(request.cookies.get("bhvrSession")) session_cookie = sanitize_input(request.cookies.get("bhvrSession"))
@ -706,8 +702,6 @@ def messages_mark_as():
logger.graylog_logger(level="error", handler="messages_mark_as", message=e) logger.graylog_logger(level="error", handler="messages_mark_as", message=e)
return jsonify({"status": "API error"}) return jsonify({"status": "API error"})
# Temp response.
@app.route("/moderation/check/chat", methods=["POST"]) @app.route("/moderation/check/chat", methods=["POST"])
def moderation_check_chat(): def moderation_check_chat():
check_for_game_client("strict") check_for_game_client("strict")
@ -719,15 +713,13 @@ def moderation_check_chat():
userid = sanitize_input(data["userId"]) userid = sanitize_input(data["userId"])
language = sanitize_input(data["language"]) language = sanitize_input(data["language"])
message = sanitize_input(data["message"]) message = sanitize_input(data["message"])
# Why should we care? Can we get in trouble if we don't? return jsonify({"status": "success", "result": "OK"})
return jsonify({"status": "success", "result": "OK"}) # Testing stuff
except TimeoutError: except TimeoutError:
return jsonify({"status": "error"}) return jsonify({"status": "error"})
except Exception as e: except Exception as e:
logger.graylog_logger(level="error", handler="moderation_check_chat", message=e) logger.graylog_logger(level="error", handler="moderation_check_chat", message=e)
# This is intently broken. If this works the game crashes in matchmaking.
@app.route("/api/v1/extensions/progression/initOrGetGroups", methods=["POST"]) @app.route("/api/v1/extensions/progression/initOrGetGroups", methods=["POST"])
def extension_progression_init_or_get_groups(): def extension_progression_init_or_get_groups():
check_for_game_client("strict") check_for_game_client("strict")
@ -735,9 +727,6 @@ def extension_progression_init_or_get_groups():
userid = session_manager.get_user_id(session_cookie) userid = session_manager.get_user_id(session_cookie)
try: try:
# Client sends: {"data":{"skipProgressionGroups":false,"skipMetadataGroups":false,"playerName":"Steam-Name-Here"}}
# The client cant understand CharacterId for some reason??? But if this is removed the game doesn't load the
# "Choose Hunter or Runner" screen.
request_data = request.get_json() request_data = request.get_json()
data = get_init_or_get_groups(userid, request_data) data = get_init_or_get_groups(userid, request_data)
return jsonify(data) return jsonify(data)
@ -760,105 +749,35 @@ def update_metadata_group():
version = data["data"]["version"] version = data["data"]["version"]
metadata = data["data"]["metadata"] metadata = data["data"]["metadata"]
last_played_faction = metadata["lastPlayedFaction"] last_played_faction = metadata["lastPlayedFaction"]
last_played_runner_id = metadata["lastPlayedRunnerId"] last_played_runner_id = metadata["lastPlayedRunnerId"]["tagName"]
last_played_hunter_id = metadata["lastPlayedHunterId"] last_played_hunter_id = metadata["lastPlayedHunterId"]["tagName"]
should_play_without_contextual_help = metadata["shouldPlayWithoutContextualHelp"] should_play_without_contextual_help = metadata["shouldPlayWithoutContextualHelp"]
has_played_death_garden_1 = metadata["hasPlayedDeathGarden1"] try:
reason = data["data"]["reason"] has_played_death_garden_1 = metadata["hasPlayedDeathGarden1"]
reason = data["data"]["reason"]
except KeyError:
# old version of game
has_played_death_garden_1 = False
reason = "SetLastPlayedCharacterId"
logger.graylog_logger(level="info", handler="logging_updateMetadataGroup", message=data) if reason == "SetLastPlayedCharacterId" or reason == "SetLastPlayedFaction":
# return jsonify({"status": "success"}) mongo.write_data_with_list(login=userid, login_steam=False,
mongo.write_data_with_list(login=userid, login_steam=False, items_dict={"last_played_faction": last_played_faction,
items_dict={"last_played_faction": last_played_faction}) "last_hunter": last_played_hunter_id,
return jsonify({ "last_runner": last_played_runner_id,
"ProgressionGroups": [ "hasPlayedDeathGarden1": has_played_death_garden_1,
{ "tutorial_completed": should_play_without_contextual_help})
"ObjectId": "RunnerProgression", else:
"Version": 1, logger.graylog_logger(level="error", handler="updateMetadataGroup", message=f"New reason: {reason}")
"SchemaVersion": 1.1,
"Data": { data = get_init_or_get_groups(userid, fake_request)
"Experience": { return jsonify(data)
"Level": 1,
"CurrentExperience": 2,
"ExperienceToReach": 30
}
}
},
{
"ObjectId": "HunterProgression",
"Version": 1,
"SchemaVersion": 1.1,
"Data": {
"Experience": {
"Level": 1,
"CurrentExperience": 12,
"ExperienceToReach": 30
}
}
},
{
"ObjectId": "PlayerProgression",
"Version": 1,
"SchemaVersion": 1.1,
"Data": {
"Experience": {
"Level": 1,
"CurrentExperience": 12,
"ExperienceToReach": 30
}
}
}
],
"MetadataGroups": [
{
"ObjectId": "RunnerMetadata",
"Version": 1,
"SchemaVersion": 1.1,
"Data": {"CharacterId": {"TagName": last_played_runner_id},
"Equipment": [],
"EquippedPerks": ["1E08AFFA-485E92BA-FF2C1BB8-5CEFB81E"],
"EquippedPowers": [],
"EquippedWeapons": ["C8AF3D53-4973F82F-ADBB40BD-A96F9DCD"],
"EquippedBonuses": []
}
},
{
"ObjectId": "HunterMetadata",
"Version": 1,
"SchemaVersion": 1.1,
"Data": {"CharacterId": {"TagName": last_played_hunter_id},
"Equipment": [],
"EquippedPerks": ["791F12E0-47DA9E26-E246E385-9C3F587E"],
"EquippedPowers": ["08DC38B6-470A7A5B-0BA025B9-6279DAA8"],
"EquippedWeapons": ["307A0B13-417737DE-D675309F-8B978AB8"],
"EquippedBonuses": []
}
},
{
"ObjectId": "PlayerMetadata",
"Version": 1,
"SchemaVersion": 1.1,
"Data": {
"LastPlayedFaction": last_played_faction,
"LastPlayedRunnerId": {"tagName": last_played_runner_id},
"LastPlayedHunterId": {"tagName": last_played_hunter_id},
"shouldPlayWithoutContextualHelp": should_play_without_contextual_help,
"hasPlayedDeathGarden1": True
}
}
]})
except TimeoutError: except TimeoutError:
return jsonify({"status": "error"}) return jsonify({"status": "error"})
except Exception as e: except Exception as e:
logger.graylog_logger(level="error", handler="logging_updateMetadataGroup", message=e) logger.graylog_logger(level="error", handler="logging_updateMetadataGroup", message=e)
# POST https://api.zkwolf.com/api/v1/extensions/progression/updateMetadataGroup HTTP/1.1
# {"data":{"objectId":"PlayerMetadata","version":2,"metadata":{
# "lastPlayedFaction":"Runner","lastPlayedRunnerId":{"tagName":"Runner.Ink"},"lastPlayedHunterId":{"tagName":"None"},
# "shouldPlayWithoutContextualHelp":false,"hasPlayedDeathGarden1":false},"reason":"SetLastPlayedCharacterId"}}
# dont know if this works. Hope it does. # dont know if this works. Hope it does.
@app.route("/api/v1/extensions/inventory/unlockSpecialItems", methods=["POST"]) @app.route("/api/v1/extensions/inventory/unlockSpecialItems", methods=["POST"])
def inventory_unlock_special_items(): def inventory_unlock_special_items():