Spaces:
Runtime error
Runtime error
Download backend/scripts/render_theme_thumbnails.py from firebird-technologies/NoteStack-Test: direct link, hf CLI and curl.
- Browser
- Download file 2.18 kB
-
https://huggingface.co/spaces/firebird-technologies/NoteStack-Test/resolve/55d0ecafa5201178b12dbe289c2dc293bca09ab0/backend/scripts/render_theme_thumbnails.py
- Command line
-
hf download hf://spaces/firebird-technologies/NoteStack-Test@55d0ecafa5201178b12dbe289c2dc293bca09ab0/backend/scripts/render_theme_thumbnails.py
-
curl -L -o render_theme_thumbnails.py https://huggingface.co/spaces/firebird-technologies/NoteStack-Test/resolve/55d0ecafa5201178b12dbe289c2dc293bca09ab0/backend/scripts/render_theme_thumbnails.py
2.18 kB
| """Draws every infographic theme with the sample content (and, with --stress, the longest text allowed) using a local | |
| Chrome, so the themes can be checked by eye and the picker thumbnails regenerated. | |
| python scripts/render_theme_thumbnails.py # writes ../frontend/public/infographics/<theme>.png (small) | |
| python scripts/render_theme_thumbnails.py --stress # writes full-size stress renders to a temp folder | |
| Set CHROME to the browser binary if it is not found.""" | |
| import glob | |
| import os | |
| import subprocess | |
| import sys | |
| import tempfile | |
| from pathlib import Path | |
| sys.path.insert(0, str(Path(__file__).resolve().parents[1])) | |
| from app.infographics.content import HEIGHT, SAMPLE, STRESS, WIDTH, clamp # noqa: E402 | |
| from app.infographics.render import thumbnail_html # noqa: E402 | |
| from app.infographics.themes import THEMES # noqa: E402 | |
| def chrome() -> str: | |
| found = os.environ.get("CHROME") or next(iter(glob.glob(os.path.expanduser("~/.cache/puppeteer/chrome/*/chrome-mac-*/Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing"))), "") \ | |
| or "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" | |
| return found | |
| def shoot(html: str, out: Path) -> None: | |
| with tempfile.NamedTemporaryFile("w", suffix=".html", delete=False) as f: | |
| f.write(html) | |
| subprocess.run([chrome(), "--headless=new", "--disable-gpu", "--hide-scrollbars", f"--window-size={WIDTH},{HEIGHT}", | |
| "--virtual-time-budget=8000", f"--screenshot={out}", f"file://{f.name}"], check=True, capture_output=True) | |
| os.unlink(f.name) | |
| if __name__ == "__main__": | |
| stress = "--stress" in sys.argv | |
| folder = Path(tempfile.gettempdir()) / "ig-stress" if stress else Path(__file__).resolve().parents[2] / "frontend/public/infographics" | |
| folder.mkdir(parents=True, exist_ok=True) | |
| content = clamp(STRESS if stress else SAMPLE) | |
| for tid in THEMES: | |
| out = folder / f"{tid}.png" | |
| shoot(thumbnail_html(tid, content), out) | |
| if not stress: # picker thumbnails: a third of the size is plenty | |
| subprocess.run(["sips", "--resampleWidth", "560", str(out)], check=False, capture_output=True) | |
| print(out) | |