Untitled
unknown
plain_text
a month ago
9.1 kB
0
Indexable
Never
from flask import Flask, render_template, request, jsonify, session import requests import json import times from datetime import timedelta import apis import constants import traceback app = Flask(__name__) headers = { 'Content-Type':'application/json', } userData = {} @app.route('/get/', methods=['GET']) def get_data(): try: fullTime = times.hour_rounder() finalTime = fullTime - timedelta(hours=24) unixTime = times.timeToUnix(finalTime) if unixTime in userData: userDataTime = userData[unixTime] if userDataTime['username'] == request.args.get('username'): return jsonify({"message": f"true"}), 200 else: return jsonify({"message": f"false"}), 404 else: return jsonify({"message": f"false"}), 404 except Exception as e: print(e) return jsonify({"error": "Invalid JSON data"}), 400 @app.route('/claim/', methods=['POST']) def set_data(): try: data = request.get_json() print(type(data)) userData[data['time']] = { "username" : data['username'], "messageID" : data['messageID'] } print(data) return jsonify({"message": f"Sucess"}), 200 except Exception as e: print(e) return jsonify({"error": "Invalid JSON data"}), 400 claimMessages = {} @app.route('/deleteclaim/', methods=['GET']) def delete_claim(): try: fullTime = times.hour_rounder() finalTime = fullTime - timedelta(hours=2 * 12) unixtime = times.timeToUnix(finalTime) values = list(claimMessages.values()) if unixtime in values: print("Running") key_list = list(claimMessages.keys()) position = values.index(unixtime) messageID = key_list[position] return jsonify({"message": int(messageID)}), 200 else: print(values) print(unixtime) return jsonify({"message" : "Not Found"}), 404 except Exception as e: print(e) return jsonify({"error": "Invalid JSON data"}), 400 @app.route('/end/', methods=['POST']) def end_server(): try: data = request.get_json() print(type(data)) print(data) winnersText = "" for item in data['winners']: userID = apis.getID(item) winnersText = winnersText + f"[{item}](https://www.roblox.com/users/{userID}/profile), " messageID = 0 for userDataTime in userData: userDataInfo = userData[userDataTime] if userDataInfo['messageID'] and userDataInfo['username'] == data['host']: messageID = userData[userDataTime]['messageID'] print("MESSAGE ID: " + str(messageID)) hostText = f"[{data['host']}](https://www.roblox.com/users/{apis.getID(data['host'])}/profile)" embedData = { "content": None, "embeds": [ { "title": "Tournament Ended", "description": f"""**Host:** {hostText} **Type:** {data['type']} **Tier:** {data['tier']} **Time:** Ended **Region:** {data['region']} **Players:** {data['players']} **Prize:** {data['prize']} Coins **Winners:** {winnersText}""", "color": 11796480, "thumbnail": { "url": "https://cdn.discordapp.com/attachments/1155829751919943690/1167127610548035584/ra3.png?ex=654cff4a&is=653a8a4a&hm=4bdf2ad5600f5bc358dc0a7ab824c67d63713451cb2c9f7d426d4e1c1a3e0c4f&" } } ], "attachments": [] } finalURL = constants.webhookURLs['end'] + str(messageID) webhookRequest = requests.patch(url=finalURL, data=json.dumps(embedData), headers=headers) print(webhookRequest.status_code) try: print(webhookRequest.json()) except: pass return jsonify({"message": f"Sucess"}), 200 except Exception as e: print(e) traceback.print_exc() return jsonify({"error": "Invalid JSON data"}), 400 @app.route('/matchlogs/', methods=['POST']) def match_logs(): try: data = request.get_json() print(type(data)) print(data) winnerWins = data['winnerWins'] loserWins = data['loserWins'] winnersText = "" losersText = "" winnersKDR = {} losersKDR = {} winnerData = data['winners'] for winnerUsername in winnerData: currentKills = winnerData[winnerUsername]['kills'] currentDeaths = winnerData[winnerUsername]['deaths'] currentKDR = (currentKills/currentDeaths) winnersKDR[winnerUsername] = currentKDR loserData = data['losers'] for loserUsername in loserData: currentKills = loserData[loserUsername]['kills'] currentDeaths = loserData[loserUsername]['deaths'] currentKDR = (currentKills/currentDeaths) losersKDR[loserUsername] = currentKDR sortedWinnerKDR = sorted(winnersKDR, reverse=True) sortedLosersKDR = sorted(losersKDR, reverse=True) if winnersKDR[sortedWinnerKDR[0]] > losersKDR[sortedLosersKDR[0]]: print("WINNERS WINNING") for winnerUsername in sortedWinnerKDR: if winnerUsername == sortedWinnerKDR[0]: winnersText += f":star: [{winnerUsername}](https://www.roblox.com/users/{apis.getID(winnerUsername)}/profile) `{winnerData[winnerUsername]['kills']} | {winnerData[winnerUsername]['deaths']}` \n" else: winnersText += f"[{winnerUsername}](https://www.roblox.com/users/{apis.getID(winnerUsername)}/profile) `{winnerData[winnerUsername]['kills']} | {winnerData[winnerUsername]['deaths']}` \n" for loserUsername in sortedLosersKDR: losersText += f"[{loserUsername}](https://www.roblox.com/users/{apis.getID(loserUsername)}/profile) `{loserData[loserUsername]['kills']} | {loserData[loserUsername]['deaths']}` \n" elif winnersKDR[sortedWinnerKDR[0]] < losersKDR[sortedLosersKDR[0]]: print("LOSERS WINNING") for loserUsername in sortedLosersKDR: if loserUsername == sortedLosersKDR[0]: losersText += f":star: [{loserUsername}](https://www.roblox.com/users/{apis.getID(loserUsername)}/profile) `{loserData[loserUsername]['kills']} | {loserData[loserUsername]['deaths']}` \n" else: losersText += f"[{loserUsername}](https://www.roblox.com/users/{apis.getID(loserUsername)}/profile) `{loserData[loserUsername]['kills']} | {loserData[loserUsername]['deaths']}` \n" for winnerUsername in sortedWinnerKDR: winnersText += f"[{winnerUsername}](https://www.roblox.com/users/{apis.getID(winnerUsername)}/profile) `{winnerData[winnerUsername]['kills']} | {winnerData[winnerUsername]['deaths']}` \n" print(sortedWinnerKDR) print(sortedLosersKDR) print(winnersText) print(losersText) print(winnerData) print(loserData) embedData = { "content": None, "embeds": [ { "title": "Match Logs", "color": 11796480, "thumbnail": { "url": "https://cdn.discordapp.com/attachments/1155829751919943690/1167127610548035584/ra3.png?ex=654cff4a&is=653a8a4a&hm=4bdf2ad5600f5bc358dc0a7ab824c67d63713451cb2c9f7d426d4e1c1a3e0c4f&" }, "fields": [ { "name": f"Winners [{winnerWins}-{loserWins}]", "value": winnersText }, { "name": f"Losers [{loserWins}-{winnerWins}]", "value" : losersText } ] } ], "attachments": [] } finalURL = constants.webhookURLs['matchLogs'] webhookRequest = requests.post(url=finalURL, data=json.dumps(embedData), headers=headers) print(webhookRequest.status_code) try: print(webhookRequest.json()) except: pass return jsonify({"message": f"Sucess"}), 200 except Exception as e: print(e) traceback.print_exc() return jsonify({"error": "Invalid JSON data"}), 400 def startApp(): app.run(debug=False, host="0.0.0.0", port=8140)