Files
pgz-sport/_handoff/HANDOFF_20260429_1007.md
T

3.8 KiB
Raw Blame History

PGŽ SPORT — UPDATE — 29.04.2026 10:00 (Damir radio + Claude radio)

Što je dovršeno u OVOM nastavku

1. Parser v3 — robust text-line based

  • Prepoznaje <div class="homeTeam"/>"awayTeam"> divove
  • Iz <li class="row match_lineup"> čita line text "12 Matia Torbarina Vratar 85'"
  • Regex extracts: broj_dresa, ime+prezime, pozicija (Vratar/Igrač), captain (C), eventi (minute)
  • Slika URL iz <img>, HNS pid iz <a href>
  • Match metadata: datum, vrijeme, gledatelja, rezultat, natjecanje
  • Bench detekcija preko <li class="header separatorTitle"> "Pričuvni igrači"

2. cmd_klub upgrade

  • Sad puni svih 9 polja (ime, prezime, slika_url, broj_dresa, pozicija, klub_id, source, source_id, source_url, slug)
  • Plus napuni utakmice_log redak po igraču po utakmici (clan_id, datum, natjecanje, klub_dom/gost, rezultat, za_klub_id, starter, source_match_id)
  • ON CONFLICT update — idempotent (može se re-runnati)
  • max_matches parameter: za prvi sweep koristio 1, za drugi sweep 5

3. Re-run klub_all v3 (deep)

  • Svaki od 16 PGŽ klubova obrađen do 5 najnovijih utakmica
  • Rezultat:
    • 218/218 sportaša ima sliku
    • 217/218 sportaša ima broj dresa
    • 217/218 sportaša ima poziciju
    • utakmice_log napunjen
    • 12 različitih utakmica ulogirano (1 sweep) → ~80 nakon 5 sweep-a

4. Frontend pageSportasi grid (NEW)

  • Dodano u NAV pod "Organizacija" → "Igrači · Foto"
  • Pretraživa galerija: search box + dropdown filter po klubu
  • Card grid s fotom + ime + klub + dob (auto-grid responsive 180px columns)
  • Klik na card → otvara pageSportas profil
  • Lazy loading slika

5. Embedding refresh

  • Sportaši re-embedani (sad imaju poziciju + dres + klub u tekstu)
  • pgz_sport_v1 collection auto-updated kroz cron + manual run

STATE NAKON RUN-A

Metrika Prije Sad
Sportaši (HNS) sa slikom 1 218/218 (100%)
Sa brojem dresa 0 217/218 (99.5%)
Sa pozicijom 17 217/218 (99.5%)
utakmice_log redaka 0 ~80 (5 sweepova × 16 klubova)
Frontend pages 12 13 (+ Igrači · Foto)

TEST URL

  • https://api.rinet.one/sport/ — frontend
    • sidebar → "Igrači · Foto" → grid svih 218 sportaša s fotom
    • klik na card → semafor-style profil s utakmicama
  • /api/v2/sportas/{id}/profile — pojedini sportaš
  • /api/v2/klub/{kid}/sportasi — roster po klubu
  • /api/v2/sportas/search?q=ime — pretraga

OTKRIVENA STRUKTURA HNS SEMAFOR

URL patterni:

  • Player: /igraci/{hns_pid}/{slug}/
  • Klub: /klubovi/{hns_klub_id}/{slug}/
  • Match: /utakmice/{match_id}/{slug}/
  • Competition: /natjecanja/{comp_id}/{slug}/

Match HTML struktura:

  • <div class="homeTeam playerslist"> i <div class="awayTeam playerslist">
  • Unutar svakog <ul>:
    • <li class="header clubName"> — naziv tima
    • <li class="row match_lineup"> × 11 — početni 11
    • <li class="header separatorTitle"> "Pričuvni igrači"
    • <li class="row match_lineup"> × N — pričuvni
  • Match meta: datum, vrijeme, mjesto, suci, gledatelja u body text (regex parse)

TODO ZA SLJEDEĆI RUN

  1. Pogoci/kartoni parsing: trenutno utakmice_log ima minute događaja ali ne i tip. Iz scorers liste prije lineup-a (npr. "Đoša Lazarević 25'") → mapirati na clan_id + napuniti pogodaka. Slično za žute/crvene iz HTML class signala.
  2. Šira sezonska aggregacija: scrape-ati ne samo 5 najnovijih utakmica nego cijelu trenutnu sezonu (~15-20 utakmica × 16 klubova = ~300 utakmica × ~16 igrača = potencijalno 5000 utakmice_log redaka).
  3. HRS scraper za rukomet (Davor Šimunović iz Zameta i Tihomir iz Kvarner Kostrene su tajnici — trebaju to vidjeti)
  4. HKS scraper za košarku
  5. HVS scraper za odbojku
  6. Dashboard widget "Najaktivniji igrači PGŽ" — top scorer/nastupi po klubu
  7. HNS daily cron sad može pokupiti nove utakmice automatski