88 lines
3.8 KiB
Markdown
88 lines
3.8 KiB
Markdown
# 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
|
||
|