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 }