# DailyStr8ts — technické poznámky

Skript `stahni_str8ts.py` stahuje denní Str8ts puzzle jako PDF ze https://www.solitaire.org/daily-str8ts/ a odesílá emailem.

**Výstup:** `U:\Dropbox\!!!Days\Downloads Z230\yyyy-mm-dd Daily Str8ts puzzle.pdf`

**Příjemci:** vladimir.buzalka@buzalka.cz, alica.buzalkova@buzalka.cz

## Jak to funguje (klíčové)

Stránka `game.php` má funkci `Game.printDaily()` která:
1. Vytvoří skrytý `<iframe id="printFrame">` v DOM
2. Zapíše do něj puzzle HTML přes `contentWindow.document.write()` — všechny 3 obtížnosti (Easy, Medium, Hard)
3. Data `gameLevels` jsou načtena při page load — žádný extra AJAX není potřeba
4. Zavolá `contentWindow.print()` → Chrome print dialog

**Řešení v skriptu:**
- Načteme `game.php` (headless Chromium)
- Zavoláme `Game.printDaily()` přes JS evaluate
- Přečteme `iframe.contentDocument.documentElement.outerHTML`
- Přidáme `<base href="https://www.solitaire.org/daily-str8ts/">` pro obrázky
- Načteme HTML do nové stránky a uložíme jako `page.pdf()`

## Co nefunguje (neopakovat)

- `page.pdf()` na hlavní stránce → uvítací obrazovka, ne puzzle
- `context.expect_page()` → žádný popup se neotevírá
- Override `window.print` → Game volá `contentWindow.print()`, ne `window.print()`
