summaryrefslogtreecommitdiffhomepage
path: root/salvager/esi.py
diff options
context:
space:
mode:
Diffstat (limited to 'salvager/esi.py')
-rw-r--r--salvager/esi.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/salvager/esi.py b/salvager/esi.py
new file mode 100644
index 0000000..4783e12
--- /dev/null
+++ b/salvager/esi.py
@@ -0,0 +1,34 @@
+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'])