Files
ordinaceprojekt/SběrDatRůzné/DailyStr8ts/NOTES.md
T
2026-04-24 09:54:59 +02:00

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á:

  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()