summaryrefslogtreecommitdiffhomepage
path: root/salvager/esi.py
blob: d6acf3064cb005d42d234110552267c522831824 (plain)
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
import requests


def _make_endpoint(path, include=None, exclude=None, trim=None):
	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 _get(*args):
		query = "https://esi.evetech.net/latest/" + path + "?datasource=tranquility"
		response = requests.get(query.format(*args))
		response.raise_for_status()
		return trim(response.json())

	return _get


def _trim_killmail(km):
	del km['attackers']
	del km['victim']['items']
	del km['victim']['damage_taken']
	return km


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'])