skyeweave/atlasimagecomposer/backend/atlas.py

48 lines
1.6 KiB
Python
Raw Normal View History

2024-08-09 16:57:33 +00:00
import requests
2024-10-04 18:18:56 +00:00
from ..config import Paths, ExpressionDefaults, AtlasDefaults
2024-08-09 16:57:33 +00:00
def fetch_image(servantid: str, imageid: str):
2024-10-04 18:18:56 +00:00
atlasurl = f"https://static.atlasacademy.io/{AtlasDefaults.REGION}/CharaFigure/{imageid}/{imageid}_merged.png"
2024-08-09 16:57:33 +00:00
savefolder = Paths.IMAGES / servantid
if not savefolder.is_dir():
savefolder.mkdir()
filelocation = savefolder / f"{imageid}.png"
with open(filelocation, 'wb') as handle:
response = requests.get(atlasurl, stream=True, timeout=10)
if not response.ok:
print(response)
for block in response.iter_content(1024):
if not block:
break
handle.write(block)
def fetch_info(servantid: str):
2024-10-04 18:18:56 +00:00
atlasurl = f"https://api.atlasacademy.io/basic/{AtlasDefaults.REGION}/servant/{servantid}?lang=en"
2024-08-09 16:57:33 +00:00
response = requests.get(atlasurl, timeout=10)
if not response.ok:
print(response)
data = response.json()
print(f"Fetching data and sprites for {data['name']} (ID: {servantid})")
def fetch_data(servantid: str):
fetch_info(servantid)
2024-10-04 18:18:56 +00:00
atlasurl = f"https://api.atlasacademy.io/raw/{AtlasDefaults.REGION}/servant/{servantid}?lore=false&expand=true&lang=en"
2024-08-09 16:57:33 +00:00
response = requests.get(atlasurl, timeout=10)
if not response.ok:
print(response)
data = response.json()
2024-10-04 17:30:40 +00:00
return {
str(spritesheet["id"]): {
"faceSize": spritesheet["extendData"].get("faceSize", ExpressionDefaults.faceSize),
"position": (spritesheet["faceX"], spritesheet["faceY"])
} for spritesheet in data["mstSvtScript"]
}