Spaces:
Running
Running
| """ | |
| Generate a curated set of showpiece films into showcase/ so the Space gallery has | |
| gems that replay INSTANTLY (no model call) the moment a judge opens it. | |
| CLAUDEMOVIES_LLM_URL/_KEY/_MODEL set, then: python showcase.py | |
| """ | |
| import json | |
| import os | |
| import re | |
| import sys | |
| import movies | |
| SHOW = os.path.join(os.path.dirname(__file__), "showcase") | |
| # fixed slug -> (clean display title, concept). Stable filenames + curated titles, so | |
| # the gallery + title cards read well no matter what title the model invents. | |
| # knight.json is the auto-play flagship. | |
| FILMS = { | |
| "knight": ("The Knight Afraid of the Dark", "a tiny knight who is afraid of the dark"), | |
| "rain-cat": ("A Robot and a Stray Cat", "a lonely robot who finds a stray cat in the rain"), | |
| "bread-dragon": ("The Dragon Who Would Rather Bake", "a dragon who would rather bake bread than breathe fire"), | |
| "troll-dance": ("The Troll Who Longed to Dance", "a grumpy troll who secretly longs to dance"), | |
| "paper-boat": ("The Paper Boat", "a paper boat's brave voyage to the endless sea"), | |
| "ghost": ("The Little Ghost Afraid of People", "a little ghost who is afraid of humans"), | |
| "snail-race": ("The Snail Who Raced the Wind", "a snail who dreams of racing the wind"), | |
| } | |
| def main(): | |
| os.makedirs(SHOW, exist_ok=True) | |
| for slug, (title, c) in FILMS.items(): | |
| for _ in range(3): # retry until we get a full-length film | |
| spec = movies.direct(c) | |
| if movies.good_shot_count(len(spec.get("shots", []))): | |
| break | |
| n = len(spec.get("shots", [])) | |
| if not movies.good_shot_count(n): | |
| print(f" skip (shots={n}): {slug}", file=sys.stderr) | |
| continue | |
| spec["title"] = title # curated, clean title for the gallery + card | |
| json.dump(spec, open(os.path.join(SHOW, slug + ".json"), "w"), indent=2, ensure_ascii=False) | |
| print(f" saved {slug}.json ({n} shots, \"{title}\")") | |
| if __name__ == "__main__": | |
| main() | |