z230
This commit is contained in:
@@ -1,3 +1,11 @@
|
|||||||
# OrdinaceProjekt
|
# OrdinaceProjekt
|
||||||
|
|
||||||
Paměť projektu je v `.claude/memory/` — přečti ji na začátku každé konverzace.
|
## Přečti na začátku každé konverzace
|
||||||
|
|
||||||
|
Každý adresář se skriptem má vlastní `NOTES.md` s technickými detaily. Přečti relevantní NOTES.md podle toho, čeho se konverzace týká.
|
||||||
|
|
||||||
|
## Přehled skriptů
|
||||||
|
|
||||||
|
| Skript | Adresář | Popis |
|
||||||
|
|--------|---------|-------|
|
||||||
|
| `stahni_str8ts.py` | `SběrDatRůzné/DailyStr8ts/` | Stahuje daily Str8ts puzzle jako PDF, odesílá emailem — viz [NOTES.md](SběrDatRůzné/DailyStr8ts/NOTES.md) |
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# 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()`
|
||||||
Reference in New Issue
Block a user