41 lines
1.5 KiB
Markdown
41 lines
1.5 KiB
Markdown
# Licznik opinii Google Maps
|
||
|
||
Lekka strona pokazująca dokładne liczniki opinii 1–5. Odczytuje tekstowe wartości dostępności histogramu Google — nie szacuje ich z długości pasków, nie pobiera treści opinii i niczego nie zapisuje.
|
||
|
||
## Lokalnie
|
||
|
||
```bash
|
||
python -m venv .venv
|
||
source .venv/bin/activate
|
||
pip install -r requirements.txt
|
||
playwright install chromium
|
||
python app.py
|
||
```
|
||
|
||
Otwórz `http://127.0.0.1:8080`.
|
||
|
||
## Raspberry Pi OS (bez Dockera)
|
||
|
||
```bash
|
||
sudo apt update
|
||
sudo apt install chromium python3-venv
|
||
python3 -m venv .venv
|
||
source .venv/bin/activate
|
||
pip install -r requirements.txt
|
||
CHROMIUM_PATH=/usr/bin/chromium gunicorn --workers 1 --threads 2 --bind 127.0.0.1:8080 app:app
|
||
```
|
||
|
||
Na świat wystaw aplikację przez nginx/Caddy z HTTPS. Zostaw jeden worker: aplikacja celowo dopuszcza tylko jedno sprawdzenie naraz, by chronić RAM i CPU RPi.
|
||
|
||
Google może czasem pokazać niezalogowanej przeglądarce „ograniczony widok” i ukryć wszystkie opinie. Wtedy aplikacja zwraca błąd — nigdy nie zgaduje wartości z długości pasków.
|
||
|
||
Jeśli ograniczony widok pojawia się stale, można utworzyć osobny profil Chromium, zalogować go ręcznie i ustawić `CHROMIUM_PROFILE_PATH`. Profil przechowuje sesję przeglądarki; aplikacja nadal nie zapisuje opinii.
|
||
|
||
Jeśli Google ogranicza wyłącznie tryb bez okna, ustaw `CHROMIUM_HEADLESS=0` i uruchom proces na zwykłym albo wirtualnym ekranie (`xvfb-run`).
|
||
|
||
## Testy
|
||
|
||
```bash
|
||
python -m unittest discover -s tests -v
|
||
```
|