Cache variants.json and suits.json files
This commit is contained in:
parent
6190a156f4
commit
fabcc9ceb2
2 changed files with 16 additions and 3 deletions
|
@ -1,8 +1,11 @@
|
||||||
import json
|
import json
|
||||||
import requests
|
import requests
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from hanabi import logger
|
|
||||||
|
|
||||||
|
import platformdirs
|
||||||
|
|
||||||
|
from hanabi import logger
|
||||||
|
from hanabi import constants
|
||||||
from .database import cur, conn
|
from .database import cur, conn
|
||||||
|
|
||||||
|
|
||||||
|
@ -171,14 +174,21 @@ def _populate_variants(variants):
|
||||||
def _download_json_files():
|
def _download_json_files():
|
||||||
logger.verbose("Downloading JSON files for suits and variants from github...")
|
logger.verbose("Downloading JSON files for suits and variants from github...")
|
||||||
base_url = "https://raw.githubusercontent.com/Hanabi-Live/hanabi-live/main/packages/data/src/json"
|
base_url = "https://raw.githubusercontent.com/Hanabi-Live/hanabi-live/main/packages/data/src/json"
|
||||||
|
cache_dir = Path(platformdirs.user_cache_dir(constants.APP_NAME))
|
||||||
|
cache_dir.mkdir(parents=True, exist_ok=True)
|
||||||
data = {}
|
data = {}
|
||||||
for name in ["suits", "variants"]:
|
for name in ["suits", "variants"]:
|
||||||
filename = name + '.json'
|
file = (cache_dir / name).with_suffix(".json")
|
||||||
url = base_url + "/" + filename
|
if file.exists():
|
||||||
|
data[name] = json.loads(file.read_text())
|
||||||
|
continue
|
||||||
|
url = base_url + "/" + file.name
|
||||||
|
print("foo")
|
||||||
response = requests.get(url)
|
response = requests.get(url)
|
||||||
if not response.status_code == 200:
|
if not response.status_code == 200:
|
||||||
err_msg = "Could not download initialization file {} from github (tried url {})".format(filename, url)
|
err_msg = "Could not download initialization file {} from github (tried url {})".format(filename, url)
|
||||||
logger.error(err_msg)
|
logger.error(err_msg)
|
||||||
raise RuntimeError(err_msg)
|
raise RuntimeError(err_msg)
|
||||||
|
file.write_text(response.text)
|
||||||
data[name] = json.loads(response.text)
|
data[name] = json.loads(response.text)
|
||||||
return data['suits'], data['variants']
|
return data['suits'], data['variants']
|
||||||
|
|
3
test.py
3
test.py
|
@ -2,6 +2,7 @@ from hanabi.live.variants import Variant
|
||||||
from hanabi.live.variants import Suit
|
from hanabi.live.variants import Suit
|
||||||
from hanabi.live.download_data import download_games, detailed_export_game
|
from hanabi.live.download_data import download_games, detailed_export_game
|
||||||
from hanabi.database.database import conn, cur
|
from hanabi.database.database import conn, cur
|
||||||
|
from hanabi.database import init_database
|
||||||
|
|
||||||
from hanabi.hanabi_cli import hanabi_cli
|
from hanabi.hanabi_cli import hanabi_cli
|
||||||
|
|
||||||
|
@ -65,6 +66,8 @@ def export_all_seeds():
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
init_database.init_database_tables()
|
||||||
|
init_database.populate_static_tables()
|
||||||
hanabi_cli()
|
hanabi_cli()
|
||||||
exit(0)
|
exit(0)
|
||||||
find_double_dark_games()
|
find_double_dark_games()
|
||||||
|
|
Loading…
Reference in a new issue