43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
import logging
|
|
import os
|
|
|
|
from util import json_path
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def download_board(board_id, instance_config_id, sequence_id, source):
|
|
local_file = "static/progress/images/{config_id}/{sequence_id}/{board_id}".format(
|
|
config_id=instance_config_id,
|
|
sequence_id=sequence_id,
|
|
board_id=board_id)
|
|
if os.path.exists(local_file):
|
|
return local_file
|
|
url = "/game2/editor/config/{config_id}/sequence/{sequence_id}/board/{board_id}/".format(
|
|
config_id=instance_config_id,
|
|
sequence_id=sequence_id,
|
|
board_id=board_id
|
|
)
|
|
board = source._get(url)
|
|
if not board.ok:
|
|
raise ConnectionError()
|
|
data = board.json()
|
|
preview_url = json_path(data, "preview_url.medium")
|
|
logger.debug(preview_url)
|
|
os.makedirs(local_file[:-len(board_id)], exist_ok=True)
|
|
source.download_file(preview_url, local_file)
|
|
return local_file
|
|
|
|
|
|
def get_config(source, instance_id):
|
|
url = "/game2/editor/config/{config_id}/".format(config_id=instance_id)
|
|
instance_data = source.get_json(url)
|
|
caches = url + "cache/"
|
|
cache_data = source.get_json(caches)
|
|
|
|
return {
|
|
"name": instance_data["name"],
|
|
"id": instance_data["@id"],
|
|
"caches": cache_data
|
|
}
|