Files
pgz-sport/_handoff/HANDOFF_20260429_1024.md
T

66 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.