#!/usr/bin/env python3
import importlib.util
import json
from pathlib import Path

PROJECT = Path('/data/video-pipeline/Youtube-Video-Maker/Project/31052026-001-Nguyen-Hue-Quang-Trung')
BASE = PROJECT / 'scripts_run_step06_first50.py'
spec = importlib.util.spec_from_file_location('step06base', BASE)
mod = importlib.util.module_from_spec(spec)
spec.loader.exec_module(mod)

scenes = json.loads((PROJECT/'script/scenes.json').read_text(encoding='utf-8'))['scenes'][:50]
missing = [s for s in scenes if not (PROJECT/'images/scenes'/f"{s['scene_id']}.png").exists()]
results = []
for s in missing:
    mod.log(f"Polite retry missing {s['scene_id']}")
    res = mod.generate(s)
    results.append(res)
    mod.log(f"Retry {res['scene_id']} {res['status']}")
    if res['status'].startswith('failed'):
        break
remaining = [s['scene_id'] for s in scenes if not (PROJECT/'images/scenes'/f"{s['scene_id']}.png").exists()]
out = {
    'project_id': '31052026-001-Nguyen-Hue-Quang-Trung',
    'step': '6_limited_first50_missing_retry',
    'attempted': [s['scene_id'] for s in missing],
    'results': results,
    'remaining_missing': remaining,
    'status': 'completed_limited_50_pending_review' if not remaining else 'incomplete'
}
(PROJECT/'logs/step06_first50_missing_retry_manifest.json').write_text(json.dumps(out, ensure_ascii=False, indent=2), encoding='utf-8')
print(json.dumps(out, ensure_ascii=False, indent=2))
raise SystemExit(0 if not remaining else 1)
