c38f15a566
1) HNS direct link u research_links: za sportaš s profile_url/source_url (npr. https://semafor.hns.family/igraci/X/...) generira [⭐DIRECT] link na vrhu liste, umjesto generic Google search. _research_links sada prima row dict. 2) Avatar cache buster: applyMeToHeader dodaje ?t=Date.now() na sve avatar img tagove. Avatar upload handler dodatno persistira novi avatar_url u localStorage.pgz_user tako da preživi page refresh + cross-page navigacije. 3) Logo home link: <div class='logo'> → <a href='/' class='logo'> u app.html i sport2.html. Klik na PGŽ SPORT logo vodi na public portal. 4) Klub → Sportaši drill-down: u klub Info tabu dodan button '👥 Vidi sportaše ovog kluba (N)' koji prebacuje na k-clan tab. Plus '🌐 Službena stranica' link kad klub ima web. 5) Smarter klub enrichment: - URL validacija (skip placeholder strings poput 'godisnjak_zspgz_2025') - Domain candidate guesser (slug → 16 candidate URLs s common HR TLD-ovima i sport prefix-ima) - Parallel HEAD probe (8 threads, 10s budget) — first 200 + name token match wins - Subpage scrape (/kontakt, /uprava, /o-nama, /o-klubu, /predsjednik) za richer evidence - HNK Orijent (id 3766) test: pogađa https://www.orijent.hr/, predlaže web+email+telefon+opis E2E verified: - 9/9 sidebar URL-ova → 200 - /users/me/gdpr-export → 200 (28KB JSON) - /users/me/request-deletion → 200 (DB row pgz_sport.gdpr_erasure_requests) - /enrich/klub/3766 → 4 proposed fields (web, email, telefon, opis) - HNS sportaš research_links: ⭐ HNS profil DIRECT link na vrhu Backend: routers/enrich_router.py Frontend: static/app.html, static/sport2.html Backups: _backups/sprint_1777940670/ Tag: R7-demo-ready