Skip to content

Instantly share code, notes, and snippets.

@danthedaniel
Last active May 23, 2021 16:57
Show Gist options
  • Save danthedaniel/40bd7a243b5b5382cbb752ed8af7969f to your computer and use it in GitHub Desktop.
Save danthedaniel/40bd7a243b5b5382cbb752ed8af7969f to your computer and use it in GitHub Desktop.
import json
import requests
import zlib
from functools import wraps
from urllib.parse import urlencode
class ApiResponse:
def __init__(self, response: dict):
self.data = response['data']
self.errmsg = response['errmsg']
self.err = response['err']
def ok(self) -> bool:
return self.err == 0
def __repr__(self) -> str:
return "<ApiResponse [{}]>".format("ok" if self.ok() else self.err)
def get(url: str) -> dict:
content = requests.get(url).content
return json.loads(zlib.decompress(content).decode('utf-8'))
def make_api_func(name: str, params):
def api_func(*args: str):
query_params = urlencode(dict(zip(params, args)))
json_response = get("{}{}?{}".format(BASE_URL, name, query_params))
return ApiResponse(json_response)
return api_func
BASE_URL = "https://launcher.escapefromtarkov.com/launcher/"
ENDPOINTS = {
"GetLauncherDistrib": [],
"GetUpdatesFromVersion": ["version"],
"GetUnpackedDistrib": ["version"],
"GetDistrib": []
}
API = {
name: make_api_func(name, params)
for name, params in ENDPOINTS.items()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment