# Generate one-slide PPTX files for representative visual QA via macOS QuickLook.
import importlib.util
from pathlib import Path
from pptx import Presentation

proj = Path('/Users/bot1/Volumes/root_for_ai/AI工作区/国博_PPT重设计_IP授权介绍_20260611_1242')
mod_path = proj / 'work/redesign_ppt.py'
spec = importlib.util.spec_from_file_location('redesign_ppt', mod_path)
mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod)  # also regenerates full deck; acceptable and deterministic

sample_dir = proj / 'qa/sample_decks'
sample_dir.mkdir(parents=True, exist_ok=True)
samples = [1,3,4,6,10,17,24,32,38,39,46,53,54]
for no in samples:
    prs = Presentation()
    prs.slide_width = mod.W
    prs.slide_height = mod.H
    blank = prs.slide_layouts[6]
    src_slide = mod.prs_src.slides[no-1]
    lines = mod.slide_texts(src_slide)
    pics = mod.get_pictures(src_slide)
    stype = mod.classify(lines, pics, no)
    slide = prs.slides.add_slide(blank)
    if stype == 'cover': mod.cover_slide(slide, lines, pics, no)
    elif stype == 'section': mod.section_slide(slide, lines, pics, no)
    elif stype == 'gallery': mod.gallery_slide(slide, lines, pics, no)
    elif stype == 'case': mod.case_slide(slide, lines, pics, no)
    elif stype == 'timeline': mod.timeline_slide(slide, lines, pics, no)
    elif stype == 'opener': mod.opener_slide(slide, lines, pics, no)
    else: mod.grid_slide(slide, lines, pics, no)
    prs.save(str(sample_dir / f'slide_{no:02d}.pptx'))
print('sample_decks', sample_dir, 'count', len(samples))
