123 lines
3.0 KiB
Python
123 lines
3.0 KiB
Python
from flask import Flask, render_template, request, redirect, url_for
|
|
from waitress import serve
|
|
import requests
|
|
import re
|
|
import json
|
|
import xml
|
|
import xmltodict
|
|
from joblib import Parallel, delayed
|
|
import multiprocessing
|
|
|
|
app = Flask(__name__)
|
|
|
|
|
|
|
|
|
|
@app.route("/", methods=["POST", "GET"])
|
|
def index():
|
|
data_dict = {}
|
|
|
|
if request.method == "POST":
|
|
status_screen = request.form["status_screen_input"]
|
|
steamids = regex_for_steamids(status_screen)
|
|
|
|
|
|
num_cores = multiprocessing.cpu_count()
|
|
|
|
data_dict = {}
|
|
#steamid64_dict = Parallel(n_jobs=num_cores, verbose=50)(delayed(steamid_to_64bit)(steamid)for steamid in steamids)
|
|
data_dict_list = Parallel(n_jobs=num_cores, verbose=75)(delayed(get_evererything)(steamid)for steamid in steamids)
|
|
|
|
for dict in data_dict_list:
|
|
for k, v in dict.items():
|
|
data_dict[k] = v
|
|
|
|
|
|
|
|
return render_template('steamids.html', data_dict = data_dict)
|
|
else:
|
|
return render_template('index.html')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def regex_for_steamids(input_string):
|
|
steamids_from_status = re.findall(r"\S*STEAM_+[0-9]+:[0-9]+:[0-9]+", input_string)
|
|
return steamids_from_status
|
|
|
|
|
|
|
|
def get_evererything(steamid):
|
|
data_dict_funct = {}
|
|
data_dict_funct[steamid] = {}
|
|
|
|
#Get Steamid64
|
|
steam64id = 76561197960265728 # Who tf knows how this works
|
|
# IT JUST FUCKING DOES!
|
|
id_split = steamid.split(":")
|
|
steam64id += int(id_split[2]) * 2 # JUST MULTIPLY BY 2... Cause THAT MAKES PERFEKT SENSE RIGHT?!
|
|
if id_split[1] == "1":
|
|
steam64id += 1
|
|
data_dict_funct[steamid]['steamid64'] = steam64id
|
|
|
|
#Get Faceit Data
|
|
url = "https://open.faceit.com/data/v4/players?game=csgo&game_player_id=" + str(data_dict_funct[steamid]['steamid64'])
|
|
headers = { 'accept': 'application/json', 'Authorization' : 'Bearer ab46a7ab-6ab8-4c00-a8ff-41c0ff71d562' }
|
|
faceit_response = requests.get(url, headers=headers)
|
|
faceit_response_json = faceit_response.json()
|
|
try:
|
|
data_dict_funct[steamid]['faceit_elo'] = faceit_response_json['games']['csgo']['faceit_elo']
|
|
data_dict_funct[steamid]['faceit_level'] = faceit_response_json['games']['csgo']['skill_level']
|
|
data_dict_funct[steamid]['faceit_name'] = faceit_response_json['nickname']
|
|
data_dict_funct[steamid]['faceit_acc'] = 'true'
|
|
except:
|
|
data_dict_funct[steamid]['faceit_acc'] = 'false'
|
|
|
|
#Get Steam Data
|
|
steamurl ="https://steamcommunity.com/profiles/" + str(data_dict_funct[steamid]['steamid64']) +"/?xml=1"
|
|
steam_req = requests.get(steamurl)
|
|
steamdict_funct = xmltodict.parse(steam_req.content)
|
|
data_dict_funct[steamid]['steam_name'] = steamdict_funct['profile']['steamID']
|
|
data_dict_funct[steamid]['steam_pic'] = steamdict_funct['profile']['avatarFull']
|
|
|
|
|
|
return data_dict_funct
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
app.run(host="127.0.0.1", port=8080, debug=True)
|
|
#serve(app, host='0.0.0.0', port=8080)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|