faceitfinder/wip.py

134 lines
3.3 KiB
Python

from tabnanny import verbose
from turtle import st
from flask import Flask, render_template, request, redirect, url_for
from waitress import serve
import requests
import re
import json
import xml
import xmltodict
import asyncio
from joblib import Parallel, delayed
import multiprocessing
#####Define Global Vars
#Input of Status screen.
#Kinda disgusting with the fixed lines and really easy to break.
# I really need to clean this up
def get_user_input():
print("Status Screen to FaceIT ELO by HerZ ")
print("https://steamcommunity.com/id/HerzGegenFame")
print()
print("Please paste the output from the status command and then press Enter until the program resumes")
no_of_lines = 22
status_string_i = ""
for i in range(no_of_lines):
status_string_i+=input()+"\n"
return status_string_i
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
status_screen = get_user_input()
steamids = regex_for_steamids(status_screen)
num_cores = multiprocessing.cpu_count()
steamid64_dict = {}
faceit_dict = {}
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=50)(delayed(get_evererything)(steamid)for steamid in steamids)
for dict in data_dict_list:
for k, v in dict.items():
data_dict[k] = v
for steamid in steamids:
print(data_dict[steamid])
print("####################")