interactive-chat / scripts /sync_assets.py
Junhoee's picture
Upload 140 files
e68cec5 verified
Raw
History Blame Contribute Delete
2.01 kB
"""연출 이미지 슬림 동기화 — 원본 폴더(권위)에서 데모가 쓰는 이미지만 web/assets/로 복사.
원천(권위): 카르밀라/0701_카르밀라/이미지/ (대표님 산출물). web/assets/는 배포용 파생물.
router의 COVER_IMAGE·IMAGE_MAP·BACKGROUND_MAP·INTRO_IMAGES가 참조하는
상대경로를 그대로 유지한 채 복사한다 (권위는 router.py — 변경 시 함께 갱신).
실행: python scripts/sync_assets.py
"""
from __future__ import annotations
import shutil
from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent
SRC = ROOT / "카르밀라" / "0701_카르밀라" / "이미지"
DST = ROOT / "web" / "assets"
RELATIVE_PATHS = [
# 표지·연출 컷 (IMAGE_MAP)
"플래이 이미지/1.png", # 표지
"플래이 이미지/4.png", # E01-07
"인물/카르밀라.png", # E03-03 + 화자 초상
"인물/카르밀라 가면.png", # E06-09
# 화자 초상 (SPEAKER_PORTRAIT)
"인물/아버지.png",
"인물/가정교사.png", # 마드모아젤
"인물/보모.png", # 마담
# 인트로 시퀀스 (INTRO_IMAGES)
"오노마x소락_방향/개요2.png", # 작품 소개
"오노마x소락_방향/개요3.png", # 등장인물 소개
"플래이 이미지/2.png", # 1장 시작
# 장소별 배경 (BACKGROUND_MAP)
"배경/성.png",
"배경/침실.png",
"배경/식당.png",
"배경/안개 숲.png",
"배경/폐허성당.png",
]
def main() -> None:
if not SRC.exists():
raise SystemExit(f"원본 이미지 폴더 없음: {SRC}")
for rel in RELATIVE_PATHS:
src, dst = SRC / rel, DST / rel
if not src.exists():
raise SystemExit(f"원본 이미지 누락: {src}")
dst.parent.mkdir(parents=True, exist_ok=True)
shutil.copy2(src, dst)
print(f"복사: {rel}")
print(f"완료 — {len(RELATIVE_PATHS)}장 → {DST}")
if __name__ == "__main__":
main()