67b3fd23d1
gates / gates (push) Failing after 13m1s
Part A: claim table documentation/audits/website-refresh-2026-10-08/claims.md; "100% open source" corrected from the licence read; unbacked claims cut (firewall, RAID, snapshots, new-machine restore, self-managed mode, household VPN, "never lost"). Part B: dawarich, docmost, grimmory, homebox, karakeep, mealie, metube, radicale, recipe-importer, sparkyfitness cards; plant-it and wger cut (not offered). Part C: /en/ twins, nav language switch, hreflang both ways, sitemap with xhtml:link, og-image-en.png. Part D: site_gates.py twins/lang/same-apps/no-Hungarian/FAQ-JSON-LD/tail. Operator ruling 9 + choice B in 10-localisation.md §11, §10.7. Register: R-902 (contact mailer source in no repo); R-813, R-784, R-559 annotated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
14 lines
695 B
Python
14 lines
695 B
Python
"""towebp.py <app> [quality] — raw/<n>.png in the evidence dir -> <app>-screenshot-<n>.webp in website/assets
|
|
(Pillow, method 6). Refuses to overwrite an existing asset."""
|
|
import os, sys
|
|
from PIL import Image
|
|
app = sys.argv[1]; q = int(sys.argv[2]) if len(sys.argv) > 2 else 80
|
|
EV = os.environ["EV"]; A = "/mnt/5_hdd/felhom.eu/git/felhom.eu/website/assets"
|
|
for n in (1, 2, 3):
|
|
src = f"{EV}/{app}/raw/{n}.png"; dst = f"{A}/{app}-screenshot-{n}.webp"
|
|
if os.path.exists(dst) and not os.environ.get("MINE"):
|
|
sys.exit(f"refused: {dst} exists")
|
|
im = Image.open(src).convert("RGB")
|
|
im.save(dst, "WEBP", quality=q, method=6)
|
|
print(dst, im.size, os.path.getsize(dst), "B")
|