Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import re
- import time
- import sys
- import os
- from progress.bar import IncrementalBar
- os.system('cls' if os.name == 'nt' else 'clear')
- print('Created By Mimky')
- SIDinput = input("\nEnter Steam ID: ")
- SID = '#' + str(SIDinput)
- logs_prof = 'https://logs.tf/profile/' + SIDinput
- logs = requests.get(logs_prof).text
- results = re.search('<p>(.*?)</p>', logs)
- p_name = re.search('<title>(.*?)</title>', logs)
- try:
- log_count = int(''.join(i for i in results.group(1) if i.isdigit()))
- except:
- print('\nInvald Steam ID or No Logs on Account.')
- input('\n\nPress Enter to Quit...')
- sys.exit()
- if log_count > 25:
- total_pages = int(log_count / 25) + 1
- else:
- total_pages = 1
- print('\n\n' + str(total_pages) + ' Pages and ' + str(log_count) + ' Logs Found for Player: ' + p_name.group(1)[:-10])
- eta_checker = log_count * 0.795
- print('\nEstimated Search Time: ' + str(round(eta_checker / 60)) + ' minutes ' + str(round(eta_checker % 60)) + ' seconds.')
- log_lst_str = []
- bar = IncrementalBar('Preparing for Iteration', max=total_pages + 1, suffix='%(percent)d%%')
- for i in range(total_pages + 1):
- logs_pages = requests.get(logs_prof + '?p=' + str(i)).text
- log_lst_str.append(re.findall('<td><a href="/(.*)' + SID, logs_pages))
- bar.next()
- bar.finish()
- print('\n')
- log_lst_str.pop(0)
- log_lst = [item for sublist in log_lst_str for item in sublist]
- DPM_lst = []
- KD_lst = []
- kills_lst = []
- deaths_lst = []
- start_time = time.time()
- counter = 0
- search_term_start = '''<tr id="player_''' + SIDinput + '''">'''
- search_term_end = '''<tr id="player_'''
- search_term_fixer = '''</table></div>'''
- for i in log_lst:
- counter += 1
- log_printer = 'https://logs.tf/' + i
- log_iterator = requests.get(log_printer).text
- print("Grabbing logs from: " "{} ({}%)".format(log_printer, round(100*counter/log_count, 1)))
- c = re.compile(search_term_start + r'(.*?)' + search_term_end, re.DOTALL)
- try:
- d = c.search(log_iterator).group(0)
- except AttributeError:
- c = re.compile(search_term_start + r'(.*?)' + search_term_fixer, re.DOTALL)
- d = c.search(log_iterator).group(0)
- y1 = re.compile(search_term_start + r'(.*)' + '</table>"></i>', re.DOTALL)
- y2 = y1.search(d).group(0)
- x1 = "".join(d.rsplit(y2))
- x2 = re.compile('<td>' + r'(.*)' + re.escape('.') + r'(.*?)' + '</td>', re.DOTALL)
- x3 = repr(x2.search(x1).group(0))
- x4 = x3.replace(r'\n', '').replace(r'\t', '').replace('<td>', '').replace('</td>', ' ').split(' ')
- DPM = int(x4[-4])
- KD = float(x4[-2])
- kills = int(x4[0][1:])
- deaths = int(x4[2])
- DPM_lst.append(DPM)
- KD_lst.append(KD)
- kills_lst.append(kills)
- deaths_lst.append(deaths)
- def time_convert(sec):
- mins = sec // 60
- sec = sec % 60
- mins = mins % 60
- return [int(mins), int(sec)]
- end_time = time.time()
- time_lapsed = time_convert(end_time - start_time)
- os.system('cls' if os.name == 'nt' else 'clear')
- print('\n\n')
- print('Total Time Elapsed: ' + str(time_lapsed[0]) + ' minutes ' + str(time_lapsed[1]) + ' seconds.\n')
- print('Average DPM: ', round(sum(DPM_lst) / len(DPM_lst), 2))
- print('Average KD Ratio: ', round(sum(KD_lst) / len(KD_lst), 2))
- print('\nAverage Kills: ', round(sum(kills_lst) / len(kills_lst), 2))
- print('Average Deaths: ', round(sum(deaths_lst) / len(deaths_lst), 2))
- input('\n\nPress Enter to Quit...')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement