tabule nabídne všechny adresy, ne jednu
Detekce vracela jedinou adresu podle výchozí trasy. Když ta nevede tam, kam je připojený telefon, QR kód míří do prázdna a nezbývá než sahat do konfigurace. Při ladění se ukázalo i to, že záložní větev může vrátit 127.0.0.1, tedy QR kód na localhost. - net.py hledá adresy všech rozhraní přes if_nameindex a ioctl, se zálohou přes getaddrinfo; DICE_HOST má poslední slovo - řadí se podle rozsahu adresy a obecného typu rozhraní, ne podle seznamu konkrétních jmen: výchozí trasa, místní sítě, tailnet, virtuální sítě - loopback a link-local vypadnou, nic dalšího se nezahazuje — o tom, co funguje, rozhoduje člověk u stolu - tailnet adresu vědomě necháváme: funguje i napříč sítěmi - adresy se hledají při každém načtení; když se notebook přesune na jinou síť, tabule to pozná podle data-address a načte se znovu - když se nenajde nic, tabule řekne, co s tím, místo QR kódu naslepo - 20 testů nad klasifikací a řazením, nezávislých na aktuální síti - README doplněn o řešení potíží s připojením Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
cd10db1a72
commit
5052a48611
10 files changed
+374
-35
No files matched your search
@@ -14,18 +14,43 @@ python -m venv .venv
|
||||
.venv/bin/python web.py
|
||||
```
|
||||
|
||||
Server vypíše adresu, na které poslouchá. Na notebooku otevři `/board`,
|
||||
naskenuj QR kód telefonem a hraj.
|
||||
Server vypíše všechny adresy, na kterých je dostupný:
|
||||
|
||||
```
|
||||
Počitadlo je dostupné na:
|
||||
→ http://10.186.234.182:8000 místní síť
|
||||
http://100.91.0.24:8000 přes Tailscale
|
||||
http://172.17.0.1:8000 virtuální síť
|
||||
```
|
||||
|
||||
Na notebooku otevři `/board`, naskenuj QR kód telefonem a hraj. Tabule
|
||||
zobrazuje i zbylé adresy — když jedna nefunguje, zkus další.
|
||||
|
||||
| Proměnná | K čemu je | Výchozí |
|
||||
|---|---|---|
|
||||
| `DICE_DB` | soubor s databází | `dice.db` |
|
||||
| `DICE_PORT` | port | `8000` |
|
||||
| `DICE_HOST` | adresa v QR kódu, když ji nemá hledat sám | zjistí se za běhu |
|
||||
| `DICE_HOST` | pevná adresa; vypne hledání | hledá se za běhu |
|
||||
|
||||
Počítá se s domácí sítí — appka nemá přihlašování a kdokoli na stejné WiFi
|
||||
může zapisovat.
|
||||
|
||||
## Když se telefon nepřipojí
|
||||
|
||||
Adresy se hledají při každém načtení tabule, takže přechod z domácí WiFi na
|
||||
hotspot a zpátky si tabule pohlídá sama a načte se znovu.
|
||||
|
||||
Zbývají tři důvody, proč se telefon nedostane na notebook:
|
||||
|
||||
- **Telefon je na mobilních datech**, notebook na WiFi. Různé sítě, nepotkají
|
||||
se. Připoj telefon na stejnou WiFi, nebo notebook na hotspot telefonu —
|
||||
to funguje taky.
|
||||
- **Zapnutý hotspot na telefonu shodil jeho WiFi.** Většina Androidů to dělá.
|
||||
Pak je řešením připojit na ten hotspot i notebook.
|
||||
- **VPN nebo Tailscale exit node na telefonu** posílá veškerý provoz mimo
|
||||
místní síť. V Tailscale to řeší přepínač „Allow local network access";
|
||||
případně použij tailnet adresu notebooku, ta funguje odkudkoli.
|
||||
|
||||
## Pravidla
|
||||
|
||||
Skóre se zadává ručně po tazích, hází se doopravdy. Tři nulové tahy za sebou
|
||||
@@ -38,6 +63,7 @@ při remíze na prvním místě se hraje dál.
|
||||
| Soubor | Role |
|
||||
|---|---|
|
||||
| `core.py` | pravidla hry, žádný vstup ani výstup |
|
||||
| `net.py` | hledání adres, na kterých je počitadlo dostupné |
|
||||
| `storage.py` | SQLite: hráči, hry, tahy |
|
||||
| `stats.py` | síň slávy a kariérní statistiky |
|
||||
| `web.py` | Flask aplikace |
|
||||
|
||||
Reference in new issue
Block a user