35 lines
977 B
Python
35 lines
977 B
Python
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
|