PGŽ Sport Platform — Round 1+2 baseline (sport2.html + API)

This commit is contained in:
Damir Radulić
2026-05-04 23:39:08 +02:00
commit a7ec0a86be
1820 changed files with 694455 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
# PGŽ SPORT — UPDATE — 29.04.2026 10:25 — Eventi + Stats Dashboard
## Ovaj korak (parser v4 + dashboard)
### Parser v4 — **REAL EVENT TYPES**
- Class signali: `<li class="goal/yellow/red/substitutionIn/substitutionOut/ownGoal">`
- `data-personid` attribute za HNS pid (cleaner od URL parsing)
- `<div class="shirtNumber">` za broj dresa
- `<div class="playerPhoto">``<img>` za sliku
- `<div class="matchEvents">``<ul class="events">` → svi eventi po igraču
- Minute estimation: starter + subOut(min) → minute=min, starter no sub → 90, bench + subIn(min) → minute=90-min
### cmd_klub v2 + utakmice_log full stats
- Sad upisuje: pogodaka, zuti_kartoni, crveni_kartoni, minute, klub_dom_logo, klub_gost_logo
- ON CONFLICT update — idempotent
- max_matches=999 (cijela sezona)
- Fuzzy team-name matching (rješava klubove s "(B)" suffix-om)
### klub_all FULL (background, in progress)
- 16 klubova × svih ~24 utakmica = scrape u tijeku
- Progres na 6 / 16 klubova završeno (klub_all još radi)
- Trenutni state: **1804 redaka utakmice_log, 146 igrača, 99 utakmica, 170 golova, 192 žutih, 5 crvenih**
- Završetak: ~7 min (oko 10:30 CET)
### Backend dashboard
- `/api/v2/dashboard/sport-stats` — summary KPI + top_scorers + top_appearances + most_carded + klub_breakdown + recent_matches
### Frontend pageSportStats
- Sidebar: NAV "⚽ Sport Stats" (zamijenila "Statistika")
- KPI grid (9 KPI brojeva)
- Top strijelci (foto + ime + klub + golovi + nast)
- Top nastupi (foto + ime + klub + nast + minute)
- Najviše kartona (žuti × 1 + crveni × 2 weight)
- Zadnje utakmice (datum + natjecanje + dom logo + rezultat + gost logo)
- Klik na bilo kojeg igrača → pageSportas profil
## Trenutni live stats (running klub_all)
-**170 golova** zabilježeno
- 🟨 **192 žuta kartona**
- 🟥 **5 crvenih kartona**
- 99 utakmica × 16 igrača avg = ~1600 nastupa (1804 stvarno)
## TOP 3 strijelca (mid-run)
1. Marko Jelić (NK Krk) — 9 golova / 8 nastupa
2. Niko Maksić (NK Klana) — 9 golova / 8 nastupa
3. Ivan Laginja (NK Klana) — 6 golova / 5 nastupa
## URL-ovi
- https://api.rinet.one/sport/ → sidebar "⚽ Sport Stats"
- https://api.rinet.one/sport/ → sidebar "Igrači · Foto"
- https://api.rinet.one/sport/api/v2/dashboard/sport-stats — JSON dashboard
- https://api.rinet.one/sport/api/v2/sportas/{id}/profile — semafor profil
## Što JE u Qdrantu
- pgz_sport_v1: ~57500 točaka (savezi + klubovi + sportaši)
- AI search radi na cijeli PGŽ sport ekosustav
## TODO
1. **Cron poboljšan**: trenutno daily HNS u 04:00 → može pokupiti nove utakmice. Ali `cmd_daily` poziva samo `cmd_player` na poznate. Treba ga prepraviti da poziva `cmd_klub_all` jednom tjedno (subota?) za nove rosters.
2. **HRS (rukomet) scraper** — HRS portal (hrs.hr) nema semafor-style stranicu. Treba istražiti druge izvore (npr. eurohandball.com, mreza-handball.com, ili scraping league-page sa prijavljenim igračima).
3. **HKS (košarka)** — slično. Treba istražiti.
4. **HVS (odbojka)** — treba istražiti.
5. **NK Doker / HNK Kozala fix** — bez rostera. Možda je naziv u HNS drugačiji (B team itd.). Fuzzy match v2 trebao bi pomoći.
6. **Frontend**: klub-link UI, permissions matrix UI, ručni unos sportaša za klubove.