mirror of
https://github.com/wolfswolke/DeathGarden_API_Rebirth.git
synced 2026-07-06 19:55:26 -05:00
Added MongoDB Setup, so we don't need Server, Collection and DB in every request.
This commit is contained in:
parent
50f4d6f7b1
commit
c4cfb82640
|
|
@ -180,7 +180,7 @@ def consent_eula():
|
|||
try:
|
||||
if request.method == "PUT":
|
||||
try:
|
||||
mongo.eula(userId=userid, get_eula=False, server=mongo_host, db=mongo_db, collection=mongo_collection)
|
||||
mongo.eula(userId=userid, get_eula=False)
|
||||
return jsonify({"Userid": userid, "ConsentList": [{"ConsentId": "ZKApi", "isGiven": True,
|
||||
"UpdatedDate": 1689714606, "AttentionNeeded": False,
|
||||
"LatestVersion": "ZKApi"}]})
|
||||
|
|
@ -201,8 +201,7 @@ def consent_eula():
|
|||
if userid == 401:
|
||||
return jsonify({"message": "Endpoint not found"}), 404
|
||||
is_given = mongo.get_data_with_list(login=userid, login_steam=False,
|
||||
items={"eula"},
|
||||
server=mongo_host, db=mongo_db, collection=mongo_collection)
|
||||
items={"eula"})
|
||||
if is_given["eula"]:
|
||||
return "", 204
|
||||
return jsonify({
|
||||
|
|
|
|||
|
|
@ -4,10 +4,9 @@ from math import ceil
|
|||
|
||||
from flask_definitions import *
|
||||
import requests
|
||||
from logic.mongodb_handler import mongo
|
||||
from logic.time_handler import get_time
|
||||
|
||||
global steam_api_key, mongo_db, mongo_collection, mongo_host
|
||||
global steam_api_key
|
||||
|
||||
|
||||
def steam_login_function():
|
||||
|
|
@ -26,7 +25,7 @@ def steam_login_function():
|
|||
steamid = response.json()["response"]["params"]["steamid"]
|
||||
# owner_id = response.json()["response"]["params"]["result"]["ownersteamid"] # This is providerId
|
||||
|
||||
userid, token = mongo.user_db_handler(steamid, mongo_host, mongo_db, mongo_collection)
|
||||
userid, token = mongo.user_db_handler(steamid)
|
||||
current_time, expire_time = get_time()
|
||||
|
||||
logger.graylog_logger(level="info", handler="steam_login", message="User {} logged in".format(steamid))
|
||||
|
|
@ -54,7 +53,7 @@ def steam_login():
|
|||
if user_agent.startswith("TheExit/++UE4+Release-4.2"):
|
||||
if request.args.get(
|
||||
'token') == "140000007B7B7B7B02000000E3FA3952010010017B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B":
|
||||
userid, token = mongo.user_db_handler("Debug_session", mongo_host, mongo_db, mongo_collection)
|
||||
userid, token = mongo.user_db_handler("Debug_session")
|
||||
current_time, expire_time = get_time()
|
||||
return_val = jsonify({"preferredLanguage": "en", "friendsFirstSync": {"steam": True},
|
||||
"fixedMyFriendsUserPlatformId":
|
||||
|
|
@ -100,8 +99,7 @@ def modifiers():
|
|||
userid = session_manager.get_user_id(session_cookie)
|
||||
|
||||
steamid, token = mongo.get_data_with_list(login=userid, login_steam=False,
|
||||
items={"token", "steamid"}, server=mongo_host, db=mongo_db,
|
||||
collection=mongo_collection)
|
||||
items={"token", "steamid"})
|
||||
try:
|
||||
return jsonify({"TokenId": token, "UserId": userid, "RoleIds": ["755D4DFE-40DA1512-B01E3D8C-FF3C8D4D",
|
||||
"C50FFFBF-46866131-82F45890-651797CE"]})
|
||||
|
|
@ -121,7 +119,7 @@ def moderation_check_username():
|
|||
try:
|
||||
request_var = request.get_json()
|
||||
userid = request_var["userId"]
|
||||
steamid, token = mongo.get_user_info(userId=userid, server=mongo_host, db=mongo_db, collection=mongo_collection)
|
||||
steamid, token = mongo.get_user_info(userId=userid)
|
||||
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"}
|
||||
|
|
@ -283,10 +281,8 @@ def ban_status():
|
|||
userid = session_manager.get_user_id(session_cookie)
|
||||
|
||||
try:
|
||||
time.sleep(0.5)
|
||||
ban_data = mongo.get_data_with_list(login=userid, login_steam=False,
|
||||
items={"is_banned", "ban_reason", "ban_start", "ban_expire"},
|
||||
server=mongo_host, db=mongo_db, collection=mongo_collection)
|
||||
items={"is_banned", "ban_reason", "ban_start", "ban_expire"})
|
||||
if ban_data is None:
|
||||
return jsonify({"status": "error"})
|
||||
elif ban_data["is_banned"]:
|
||||
|
|
@ -334,8 +330,7 @@ def wallet_currencies():
|
|||
|
||||
try:
|
||||
currencies = mongo.get_data_with_list(login=userid, login_steam=False,
|
||||
items={"currency_blood_cells", "currency_iron", "currency_ink_cells"},
|
||||
server=mongo_host, db=mongo_db, collection=mongo_collection)
|
||||
items={"currency_blood_cells", "currency_iron", "currency_ink_cells"})
|
||||
return jsonify({"List": [{"Currency": "CurrencyA", "Balance": currencies["currency_iron"],
|
||||
"CurrencyGroup": "SoftCurrencyGroup", "LastRefillTimeStamp": "1684862187"},
|
||||
{"Currency": "CurrencyB", "Balance": currencies["currency_blood_cells"],
|
||||
|
|
@ -399,7 +394,7 @@ def messages_count():
|
|||
userid = session_manager.get_user_id(session_cookie)
|
||||
|
||||
try:
|
||||
unread_message_ids = mongo.get_data_with_list(login=userid, login_steam=False, items={"unread_msg_ids"}, server=mongo_host, db=mongo_db, collection=mongo_collection)
|
||||
unread_message_ids = mongo.get_data_with_list(login=userid, login_steam=False, items={"unread_msg_ids"})
|
||||
if unread_message_ids is None:
|
||||
return jsonify({"Count": 0})
|
||||
else:
|
||||
|
|
@ -421,8 +416,7 @@ def messages_list():
|
|||
limit = int(request.args.get("limit", 500))
|
||||
page = int(request.args.get("page", 1))
|
||||
|
||||
unread_message_ids = mongo.get_data_with_list(login=userid, login_steam=False, items={"unread_msg_ids"},
|
||||
server=mongo_host, db=mongo_db, collection=mongo_collection)
|
||||
unread_message_ids = mongo.get_data_with_list(login=userid, login_steam=False, items={"unread_msg_ids"})
|
||||
ids = []
|
||||
for items in unread_message_ids.get("unread_msg_ids", []):
|
||||
ids.append(str(items))
|
||||
|
|
@ -458,8 +452,6 @@ def messages_list():
|
|||
return jsonify({"messages": [], "NetPage": 0})
|
||||
|
||||
|
||||
|
||||
|
||||
@app.route("/api/v1/messages/v2/markAs/", methods=["POST"])
|
||||
def messages_mark_as():
|
||||
return jsonify("", 204)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
from flask_definitions import *
|
||||
from logic.mongodb_handler import mongo
|
||||
|
||||
|
||||
@app.route('/', methods=["GET"])
|
||||
|
|
@ -48,7 +47,7 @@ def debug_user(steamid):
|
|||
if steamid is None:
|
||||
return render_template('debug/user.html', is_id_set=False, id_not_found=True)
|
||||
|
||||
user_data = mongo.get_debug(steamid=steamid, server=mongo_host, db=mongo_db, collection=mongo_collection)
|
||||
user_data = mongo.get_debug(steamid=steamid)
|
||||
|
||||
if user_data is None:
|
||||
return render_template('debug/user.html', is_id_set=True, id_not_found=False, steam_id=steamid)
|
||||
|
|
@ -100,8 +99,7 @@ def debug_mirrors_write():
|
|||
logger.graylog_logger(level="info", handler="logging_debug_mirror_write",
|
||||
message={"IP": check_for_game_client("remote"), "steamid": steam_user_id, "data": data_b})
|
||||
|
||||
return_val = mongo.write_data_with_list(steamid=steam_user_id, items_dict=data_b, server=mongo_host, db=mongo_db,
|
||||
collection=mongo_collection)
|
||||
return_val = mongo.write_data_with_list(steamid=steam_user_id, items_dict=data_b)
|
||||
|
||||
if return_val is None:
|
||||
return jsonify({"status": "error", "message": "There was a error on our End. "
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ from logic.setup_handlers import load_config
|
|||
from logic.logging_handler import logger
|
||||
from logic.global_handlers import session_manager
|
||||
from logic.global_handlers import check_for_game_client
|
||||
from logic.mongodb_handler import mongo
|
||||
import json
|
||||
import os
|
||||
|
||||
|
|
|
|||
|
|
@ -5,16 +5,13 @@ from logic.logging_handler import logger
|
|||
|
||||
class Mongo:
|
||||
def __init__(self):
|
||||
self.dyn_server = None
|
||||
self.dyn_db = None
|
||||
self.dyn_collection = None
|
||||
self.dyn_client_db = None
|
||||
self.dyn_server = ""
|
||||
self.dyn_db = ""
|
||||
self.dyn_collection = ""
|
||||
self.default_user_schema = {
|
||||
'eula': False,
|
||||
'account_xp': 0,
|
||||
'prestige_xp': 0,
|
||||
'runner_xp': 0,
|
||||
'hunter_xp': 0,
|
||||
'currency_blood_cells': 0,
|
||||
'currency_iron': 0,
|
||||
'currency_ink_cells': 0,
|
||||
|
|
@ -29,16 +26,18 @@ class Mongo:
|
|||
'unread_msg_ids': []
|
||||
}
|
||||
|
||||
def user_db_handler(self, steamid, server, db, collection):
|
||||
def setup(self, server, db, collection):
|
||||
self.dyn_server = server
|
||||
self.dyn_db = db
|
||||
self.dyn_collection = collection
|
||||
|
||||
def user_db_handler(self, steamid):
|
||||
try:
|
||||
client = pymongo.MongoClient(self.dyn_server)
|
||||
self.dyn_client_db = client[self.dyn_db]
|
||||
self.dyn_collection = self.dyn_client_db[self.dyn_collection]
|
||||
dyn_client_db = client[self.dyn_db]
|
||||
dyn_collection = dyn_client_db[self.dyn_collection]
|
||||
|
||||
existing_document = self.dyn_collection.find_one({'steamid': steamid})
|
||||
existing_document = dyn_collection.find_one({'steamid': steamid})
|
||||
|
||||
if existing_document:
|
||||
userId = existing_document['userId']
|
||||
|
|
@ -49,7 +48,7 @@ class Mongo:
|
|||
existing_document[key] = default_value
|
||||
logger.graylog_logger(level="info", handler="mongodb", message=f"New key added to database: {key} for user {steamid}")
|
||||
|
||||
self.dyn_collection.replace_one({'steamid': steamid}, existing_document)
|
||||
dyn_collection.replace_one({'steamid': steamid}, existing_document)
|
||||
|
||||
client.close()
|
||||
return userId, token
|
||||
|
|
@ -66,7 +65,7 @@ class Mongo:
|
|||
for key, default_value in self.default_user_schema.items():
|
||||
new_document[key] = default_value
|
||||
|
||||
self.dyn_collection.insert_one(new_document)
|
||||
dyn_collection.insert_one(new_document)
|
||||
logger.graylog_logger(level="info", handler="mongodb", message=f"New user added to database: {steamid}")
|
||||
client.close()
|
||||
return userId, token
|
||||
|
|
@ -74,22 +73,19 @@ class Mongo:
|
|||
logger.graylog_logger(level="error", handler="mongodb_user_db_handler", message=e)
|
||||
return None, None
|
||||
|
||||
def eula(self, userId, get_eula, server, db, collection):
|
||||
def eula(self, userId, get_eula):
|
||||
try:
|
||||
self.dyn_server = server
|
||||
self.dyn_db = db
|
||||
self.dyn_collection = collection
|
||||
client = pymongo.MongoClient(self.dyn_server)
|
||||
self.dyn_client_db = client[self.dyn_db]
|
||||
self.dyn_collection = self.dyn_client_db[self.dyn_collection]
|
||||
existing_document = self.dyn_collection.find_one({'userId': userId})
|
||||
dyn_client_db = client[self.dyn_db]
|
||||
dyn_collection = dyn_client_db[self.dyn_collection]
|
||||
existing_document = dyn_collection.find_one({'userId': userId})
|
||||
if existing_document:
|
||||
if get_eula:
|
||||
eula = existing_document['eula']
|
||||
client.close()
|
||||
return eula
|
||||
else:
|
||||
self.dyn_collection.update_one({'userId': userId}, {'$set': {'eula': True}})
|
||||
dyn_collection.update_one({'userId': userId}, {'$set': {'eula': True}})
|
||||
client.close()
|
||||
return True
|
||||
else:
|
||||
|
|
@ -99,15 +95,12 @@ class Mongo:
|
|||
logger.graylog_logger(level="error", handler="mongodb_eula", message=e)
|
||||
return None, None
|
||||
|
||||
def get_debug(self, steamid, server, db, collection):
|
||||
def get_debug(self, steamid):
|
||||
try:
|
||||
self.dyn_server = server
|
||||
self.dyn_db = db
|
||||
self.dyn_collection = collection
|
||||
client = pymongo.MongoClient(self.dyn_server)
|
||||
self.dyn_client_db = client[self.dyn_db]
|
||||
self.dyn_collection = self.dyn_client_db[self.dyn_collection]
|
||||
existing_document = self.dyn_collection.find_one({'steamid': steamid})
|
||||
dyn_client_db = client[self.dyn_db]
|
||||
dyn_collection = dyn_client_db[self.dyn_collection]
|
||||
existing_document = dyn_collection.find_one({'steamid': steamid})
|
||||
if existing_document:
|
||||
client.close()
|
||||
return existing_document
|
||||
|
|
@ -118,20 +111,17 @@ class Mongo:
|
|||
logger.graylog_logger(level="error", handler="mongodb_get_debug", message=e)
|
||||
return {"status": "error", "message": "Error in mongodb_handler"}
|
||||
|
||||
def get_data_with_list(self, login, login_steam, items, server, db, collection):
|
||||
def get_data_with_list(self, login, login_steam, items):
|
||||
try:
|
||||
document = {}
|
||||
login = f"{login}"
|
||||
self.dyn_server = server
|
||||
self.dyn_db = db
|
||||
self.dyn_collection = collection
|
||||
client = pymongo.MongoClient(self.dyn_server)
|
||||
self.dyn_client_db = client[self.dyn_db]
|
||||
self.dyn_collection = self.dyn_client_db[self.dyn_collection]
|
||||
dyn_client_db = client[self.dyn_db]
|
||||
dyn_collection = dyn_client_db[self.dyn_collection]
|
||||
if login_steam:
|
||||
existing_document = self.dyn_collection.find_one({'steamid': login})
|
||||
existing_document = dyn_collection.find_one({'steamid': login})
|
||||
else:
|
||||
existing_document = self.dyn_collection.find_one({"userId": login})
|
||||
existing_document = dyn_collection.find_one({"userId": login})
|
||||
if existing_document:
|
||||
for item in items:
|
||||
document[item] = existing_document.get(item)
|
||||
|
|
@ -148,19 +138,17 @@ class Mongo:
|
|||
logger.graylog_logger(level="error", handler="mongo_get_data_with_list", message=e)
|
||||
return None
|
||||
|
||||
def write_data_with_list(self, steamid, items_dict, server, db, collection):
|
||||
def write_data_with_list(self, steamid, items_dict):
|
||||
try:
|
||||
steam_id = str(steamid)
|
||||
self.dyn_db = db
|
||||
self.dyn_collection = collection
|
||||
client = pymongo.MongoClient(server)
|
||||
self.dyn_client_db = client[self.dyn_db]
|
||||
self.dyn_collection = self.dyn_client_db[self.dyn_collection]
|
||||
existing_document = self.dyn_collection.find_one({'steamid': steamid})
|
||||
client = pymongo.MongoClient(self.dyn_server)
|
||||
dyn_client_db = client[self.dyn_db]
|
||||
dyn_collection = dyn_client_db[self.dyn_collection]
|
||||
existing_document = dyn_collection.find_one({'steamid': steamid})
|
||||
|
||||
if existing_document:
|
||||
update_query = {'$set': items_dict}
|
||||
self.dyn_collection.update_one({'steamid': steamid}, update_query)
|
||||
dyn_collection.update_one({'steamid': steamid}, update_query)
|
||||
client.close()
|
||||
return {"status": "success", "message": "Data updated"}
|
||||
else:
|
||||
|
|
@ -172,15 +160,12 @@ class Mongo:
|
|||
logger.graylog_logger(level="error", handler="mongo_write_data_with_list", message=e)
|
||||
return None
|
||||
|
||||
def get_user_info(self, userId, server, db, collection):
|
||||
def get_user_info(self, userId):
|
||||
# TEMPORARY
|
||||
try:
|
||||
dyn_server = server
|
||||
dyn_db = db
|
||||
dyn_collection = collection
|
||||
client = pymongo.MongoClient(dyn_server)
|
||||
dyn_db = client[dyn_db]
|
||||
dyn_collection = dyn_db[dyn_collection]
|
||||
client = pymongo.MongoClient(self.dyn_server)
|
||||
dyn_db = client[self.dyn_db]
|
||||
dyn_collection = dyn_db[self.dyn_collection]
|
||||
existing_document = dyn_collection.find_one({'userId': userId})
|
||||
if existing_document:
|
||||
steamid = existing_document['steamid']
|
||||
|
|
|
|||
|
|
@ -47,4 +47,5 @@ def keep_alive():
|
|||
# main
|
||||
# ------------------------------------------------------- #
|
||||
logger.setup_graylog(use_graylog, graylog_server)
|
||||
mongo.setup(mongo_host, mongo_db, mongo_collection)
|
||||
keep_alive()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user