1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
import requests
def _make_endpoint(path, include=None, exclude=None, trim=None, method=requests.get):
def _trim(data):
if include:
data = {k: v for k, v in data.items() if k in include}
if exclude:
for key in exclude:
if key in data:
del data[key]
return data
if not callable(trim):
trim = _trim
def _method(*args, **kwargs):
query = "https://esi.evetech.net/latest/" + path + "?datasource=tranquility"
response = method(query.format(*args), **kwargs)
response.raise_for_status()
return trim(response.json())
return _method
def _trim_killmail(km):
del km['attackers']
del km['victim']['items']
del km['victim']['damage_taken']
return km
def _trim_names(names):
for name in names:
del name['category']
return names
killmail = _make_endpoint("killmails/{}/{}/", trim=_trim_killmail)
type = _make_endpoint("universe/types/{}/", include=['type_id', 'name', 'group_id'])
system = _make_endpoint(
"universe/systems/{}/", include=['system_id', 'constellation_id', 'name', 'position', 'security_status'])
constellation = _make_endpoint("universe/constellations/{}/", include=['region_id', 'name'])
region = _make_endpoint("universe/regions/{}/", include=['name'])
names = _make_endpoint("universe/names/", method=requests.post, trim=_trim_names)
corporation = _make_endpoint("corporations/{}/", include=['corporation_id', 'name', 'ticker'])
alliance = _make_endpoint("alliances/{}/", include=['alliance_id', 'name', 'ticker'])
|