From cae4a447039affb910c08a942953cdacf24d97f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Ke=C3=9Fler?= Date: Thu, 2 Mar 2023 13:11:06 +0100 Subject: [PATCH] move site api for hanab.live into own file --- instance_finder.py | 35 +---------------------------------- site_api.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 34 deletions(-) create mode 100644 site_api.py diff --git a/instance_finder.py b/instance_finder.py index 6ae114c..bca5419 100644 --- a/instance_finder.py +++ b/instance_finder.py @@ -1,40 +1,8 @@ -import requests -import requests_cache import json +from site_api import get, api, replay from sat import COLORS, solve from database import Game, store, load, commit -session = requests_cache.CachedSession('hanab.live') - -def get(url): -# print("sending request for " + url) - response = session.get("https://hanab.live/" + url) - if not response.status_code == 200: - return None - if "application/json" in response.headers['content-type']: - return json.loads(response.text) - -def api(url): - link = "api/v1/" + url - if "?" in url: - link += "&" - else: - link += "?" - link += "size=100" - return get(link) - -r = api("variants/0") -print(json.dumps(r, indent=4)) - -def replay(seed): - r = api("seed/" + str(seed)) - try: - game_id = r['rows'][0]['id'] - except TypeError: - return None - return get("export/" + str(game_id)) - - def known_solvable(seed): link = "seed/" + seed r = api(link) @@ -61,7 +29,6 @@ def solvable(replay): return solve(deck_str, len(replay["players"])) - num_entries = 0 for i in range(0,10000): r = api("variants/0?page=" + str(i)) diff --git a/site_api.py b/site_api.py new file mode 100644 index 0000000..e7c1181 --- /dev/null +++ b/site_api.py @@ -0,0 +1,32 @@ +import json +import requests +import requests_cache + + +## Cache all requests to site to reduce traffic and latency +session = requests_cache.CachedSession('hanab.live') + +def get(url): +# print("sending request for " + url) + response = session.get("https://hanab.live/" + url) + if not response.status_code == 200: + return None + if "application/json" in response.headers['content-type']: + return json.loads(response.text) + +def api(url): + link = "api/v1/" + url + if "?" in url: + link += "&" + else: + link += "?" + link += "size=100" + return get(link) + +def replay(seed): + r = api("seed/" + str(seed)) + try: + game_id = r['rows'][0]['id'] + except TypeError: + return None + return get("export/" + str(game_id))