Spaces:
Running on Zero
Running on Zero
| """ | |
| Generate sample book for assets/sample_book/ | |
| Run this once to create the pre-generated sample (C3 non-negotiable). | |
| """ | |
| import os | |
| import sys | |
| # Add project root to path | |
| sys.path.insert(0, os.path.dirname(__file__)) | |
| from config import SAMPLE_BOOK_PATH | |
| from book_builder import build_book_html, export_pdf | |
| from services.images import generate_placeholder_images | |
| def generate_sample_book(): | |
| """Generate and save the sample book.""" | |
| # Sample story | |
| title = "Ziggy's Rainbow Adventure" | |
| char_desc = "A friendly little robot named Ziggy with big eyes and a round body, drawn in crayon style" | |
| pages = [ | |
| {"page": 1, "text": "Once upon a time, there was a little robot named Ziggy who lived in a colorful forest.", "scene": "Ziggy in forest"}, | |
| {"page": 2, "text": "Ziggy loved to explore and find new friends among the trees.", "scene": "Exploring forest"}, | |
| {"page": 3, "text": "One day, Ziggy discovered a magical rainbow bridge stretching across the sky.", "scene": "Discovering bridge"}, | |
| {"page": 4, "text": "A little bird was stuck on the other side. Ziggy knew he had to help.", "scene": "Bird needs help"}, | |
| {"page": 5, "text": "Bravely, Ziggy crossed the rainbow bridge to rescue the bird.", "scene": "Crossing bridge"}, | |
| {"page": 6, "text": "All the forest friends cheered. Ziggy was a hero. The end.", "scene": "Happy ending"} | |
| ] | |
| texts = [p["text"] for p in pages] | |
| # Generate images | |
| print("Generating placeholder images...") | |
| images = generate_placeholder_images() | |
| # Build HTML | |
| html = build_book_html(images, texts, title) | |
| # Save | |
| os.makedirs(SAMPLE_BOOK_PATH, exist_ok=True) | |
| html_path = os.path.join(SAMPLE_BOOK_PATH, "sample.html") | |
| with open(html_path, "w", encoding="utf-8") as f: | |
| f.write(html) | |
| print(f"Saved HTML: {html_path}") | |
| # Save individual pages | |
| for i, img_bytes in enumerate(images): | |
| page_path = os.path.join(SAMPLE_BOOK_PATH, f"page_{i+1}.png") | |
| with open(page_path, "wb") as f: | |
| f.write(img_bytes) | |
| print(f"Saved {len(images)} pages to {SAMPLE_BOOK_PATH}") | |
| # Generate PDF | |
| pdf_path = os.path.join(SAMPLE_BOOK_PATH, "sample.pdf") | |
| export_pdf(images, texts, title, pdf_path) | |
| print(f"Saved PDF: {pdf_path}") | |
| if __name__ == "__main__": | |
| generate_sample_book() | |