Přidáno
- Health check endpoint (/api/health) pro monitoring systému
- Monitorování systémového zdraví (D1, KV, TMDB API)
- Monitorování sběru dat (stáří dat, počet záznamů)
- Monitorování newsletteru (poslední odeslání, počet odběratelů)
- Support pro UptimeRobot monitoring s query parametry (?check=system/data/newsletter)
- TMDB Discovery API pro bulk loading Netflix obsahu
- Rozšíření databáze na 432+ kvalitních titulů
- Emoji vlaječky pro zobrazení země původu obsahu (🇺🇸 🇰🇷 🇯🇵)
- Tooltips na vlaječkách s plným názvem země
- České názvy zemí (50+ zemí)
Změněno
- Kompletní mobilní UX optimalizace pro telefony 320px - 640px
- Horizontal scroll navigace s scroll-snap efektem
- Section tabs flex-wrap (2 tlačítka na řádek)
- Vertical stack pro controls dropdowny na mobilu
- Všechny touch targets zvětšeny na min 44px (Apple HIG)
- Font-size: 16px na inputech pro prevenci iOS auto-zoom
- Full-width newsletter form na mobilu
- Menší typography a spacing na mobilech
- Responzivní breakpointy: 640px, 768px, 1024px
- Archiv řazení změněno z "Nedávno přidané" na "Nové v archivu"
- Region filter nyní reload data z API (místo jen frontend filtru)
- Zobrazení ISO kódů zemí nahrazeno emoji vlajkami
Opraveno
- Navigační tlačítka přetékající viewport na mobilu
- Section tabs částečně mimo obrazovku (červený prvek)
- Controls dropdowny se nevešly na úzké telefony
- Touch targets příliš malé pro pohodlné ovládání
- Region filter checkbox nefungoval správně
- Origin country nezobrazovalo informace o zemi původu
- D1 batch API format error - opravena struktura prepared statements
- Zastaralá KV cache způsobující nesprávné statistiky
Technické
- Health check API s multi-level status (healthy/degraded/unhealthy)
- HTTP 200 pro healthy/degraded, 503 pro unhealthy
- Cache age monitoring s varováním při data >48h
- Newsletter monitoring s varováním při >7 dnů od odeslání
- TMDB Discovery API endpoint s filtry (provider=Netflix, region=CZ)
- Bulk content loading (až 20 stránek, rate limiting 200-250ms)
- CSS media queries optimalizované pro mobile-first approach
- Scroll-snap-type: x mandatory pro navigation
- Hidden scrollbars (scrollbar-width: none, ::-webkit-scrollbar)
- -webkit-overflow-scrolling: touch pro iOS momentum scrolling
Přidáno
- Cloudflare D1 databáze pro persistentní ukládání obsahu
- Archivní stránka (📦 Archiv) s kvalitním obsahem z historie
- API endpoint /api/archive pro zobrazení archivu
- API endpoint /api/best pro nejlepší obsah všech dob
- API endpoint /api/stats pro statistiky databáze
- Data Access Layer s optimalizovaným cachingem (KV + D1)
- Automatické ukládání Top 10 a Netflix New dat do databáze
- Sledování historie výskytů (appearances) pro každý titul
- Filtrování archivu podle typu, hodnocení a řazení
- Pagination na archivní stránce (50 položek, "Načíst další")
- Zobrazení statistik databáze na archivní stránce
- Quality tiers (excellent, good, average, below-average, poor)
- Odkaz na Archiv skrytý do 1. prosince 2025 (čekání na naplnění databáze)
Změněno
- Navigace rozšířena o odkaz na Archiv na všech stránkách
- API Top 10 a Netflix New nyní ukládají data do D1
- Denormalizovaná databázová struktura pro rychlé čtení
- Netflix New limit zvýšen z 100 na 150 titulů na kategorii (300 celkem)
- Maximální počet stránek z TMDB zvýšen z 5 na 10
- Minimální počet hlasů snížen z 50 na 30 pro více nového obsahu
- Cache verze zvýšena na v5 pro invalidaci starých dat
Technické
- Cloudflare D1 SQLite databáze s 2 tabulkami (content, appearance_history)
- 7 optimalizovaných indexů včetně partial indexů pro kvalitní obsah
- 3 SQL views pro časté dotazy (v_quality_content, v_recent_quality, v_top10_frequent)
- Hybridní caching strategie: KV (1-5ms) + D1 (10-30ms) + APIs (500-2000ms)
- Batch operations pro efektivní ukládání dat
- Automatická detekce regionálního obsahu (asijský a latinskoamerický)
- Non-blocking DB operace - chyby neblokují API odpovědi
- Migrace 0001_initial_schema.sql
Přidáno
- Navýšení limitu TMDB Discover ze 20 na 100 položek na kategorii
- Netflix New nyní zobrazuje ~200 titulů (100 filmů + 100 seriálů)
- Vícestránkové načítání z TMDB API (až 5 stránek)
- Double Opt-In systém pro newsletter (zatím neaktivní)
- Automatický režim tématu podle východu/západu slunce v Praze
- Cyklování témat: tmavé → světlé → auto → tmavé
- Newsletter stránka s formuláři pro přihlášení a odhlášení
- Šablona potvrzovacího emailu pro Double Opt-In
- Crypto utility pro šifrování/dešifrování tokenů
- Stránka s potvrzením přihlášení k newsletteru
Změněno
- Rating badge přesunut z karty na poster (vlevo nahoře)
- Rating badge umístěn nad horní hranu posteru (top: -0.8rem)
- Výchozí téma změněno na 'auto' režim
- Cache verze zvýšena na v4 pro Netflix New data
Odstraněno
- Rank badge (#1, #2, #3...) odstraněn ze všech karet
- Ikona hvězdičky (⭐) odstraněna z hodnocení
- Hodnocení nyní zobrazeno jako "70% ✅" místo "⭐ 70% ✅"
Opraveno
- Newsletter subscribe formulář - problém s načítáním DOM
- Přesnost TMDB vyhledávání s filtrováním podle roku
- Duplikátní tituly v newsletteru (deduplikace podle tmdb_id)
- Oddělení regionálního obsahu (asijská a jihoamerická tvorba)
- CSS proměnné na newsletter stránce pro správné témata
- DMARC DNS záznam - odstraněno "TTL: Auto" z hodnoty
Přidáno
- Úvodní vydání Topflix
- Integrace Netflix Top 10 ČR (filmy + seriály)
- Netflix New obsah z TMDB API (posledních 6 měsíců)
- Zobrazení hodnocení z TMDB a ČSFD
- Indikátory kvality (💣 výborné, ✅ dobré, 👍 průměrné, ⚠️ podprůměrné, ❌ špatné)
- Přepínání tmavého/světlého tématu
- Filtr regionu (skrýt/zobrazit asijský a latinskoamerický obsah)
- Možnosti řazení (pořadí, hodnocení, doporučené)
- Responzivní design pro mobily a desktop
- KV namespace caching (7denní TTL)
- Týdenní newsletter systém s Resend API
- Cron trigger pro newsletter (středy 15:00 UTC)
- Dynamické generování předmětu emailu
- List-ID a deliverability hlavičky
Technické
- Nasazení na Cloudflare Pages
- Cloudflare Workers pro cron triggery
- Integrace TMDB API
- Resend API pro doručování emailů
- Scraping Netflix Top 10 TSV dat