PGŽ Sport Platform — Round 1+2 baseline (sport2.html + API)
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user