# PGŽ SPORT — UPDATE — 29.04.2026 10:25 — Eventi + Stats Dashboard ## Ovaj korak (parser v4 + dashboard) ### Parser v4 — **REAL EVENT TYPES** - Class signali: `
  • ` - `data-personid` attribute za HNS pid (cleaner od URL parsing) - `
    ` za broj dresa - `
    ` → `` za sliku - `
    ` → `
      ` → 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.