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)