import logging import os from util import json_path logger = logging.getLogger(__name__) def download_board(board_id, host, instance_config_id, sequence_id, source): if sequence_id is None: return "static" 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 = "{host}/game2/editor/config/{config_id}/sequence/{sequence_id}/board/{board_id}/".format( host=host, config_id=instance_config_id, sequence_id=sequence_id, board_id=board_id ) board = source._get(url) if not board.ok: #raise ConnectionError() logger.error("HTTP FAIL:", board) return "static" 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(host + preview_url, local_file) return local_file