Files
pgz-sport/_handoff/HANDOFF_20260429_1007.md

88 lines
3.8 KiB
Markdown
Raw Permalink 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: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