· 6 years ago · Dec 06, 2019, 10:08 PM
1# importing the requests library
2import requests
3import json
4from prettytable import PrettyTable
5import time
6x = PrettyTable()
7x.field_names = ['no', 'user', 'Attack wins', 'Attack Losses', 'Defends won', 'Defends losses', 'Xanax', 'Refills', 'Last action']
8
9
10
11print('Get me your api key')
12api_key = input()
13
14print('Get me your fac id')
15fac_id = input()
16
17url = 'https://api.torn.com/faction/'+fac_id+'?selections=&key='+api_key
18
19new_url = url
20# sending get request and saving the response as response object
21r = requests.get(url = url)
22data = r.json()
23print(data['name'])
24# extracting data in json format
25
26def getProfile(person, attribute):
27 try:
28 return person[attribute]
29 except:
30 return '0'
31
32def getStat(person, attribute):
33 try:
34 return person['personalstats'][attribute]
35 except:
36 return '0'
37def getTime(person, attribute):
38 try:
39 return person[['last_action']][attribute]
40 except:
41 return '0'
42
43
44for idx, ID in enumerate(data['members'], start=1):
45 # If more then 80, make a sleep of 1 s every iteration to prevent API call overflow
46 if len(data['members']) > 80:
47 time.sleep(1)
48 else:
49 print("no sleep")
50 id = ID
51 url = 'https://api.torn.com/user/'+id+'?selections=personalstats,profile&key='+api_key
52 p = requests.get(url = url)
53 person = p.json()
54 x.add_row([idx, getProfile(person, 'name'), getStat(person, 'attackswon'), getStat(person, 'attackslost'), getStat(person, 'defendswon'), getStat(person, 'defendslost'), getStat(person, 'xantaken'), getStat(person, 'refills'), getTime(person, "relative")])
55
56
57print(x)