1.3 KiB
1.3 KiB
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á:
- Vytvoří skrytý
<iframe id="printFrame">v DOM - Zapíše do něj puzzle HTML přes
contentWindow.document.write()— všechny 3 obtížnosti (Easy, Medium, Hard) - Data
gameLevelsjsou načtena při page load — žádný extra AJAX není potřeba - 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 puzzlecontext.expect_page()→ žádný popup se neotevírá- Override
window.print→ Game volácontentWindow.print(), newindow.print()