10 KiB
FotkyBuzalkovi — pracovní deník
Živý dokument. Zapisujeme sem co jsme zjistili, co jsme rozhodli a co je na řadě. Technická reference →
CONTEXT.md, návrh architektury →NAVRH.md.
Session 2026-06-04
Stav DB na začátku
| Tabulka | Řádky |
|---|---|
zaloha_obrazku |
1 717 182 |
zdrojove_soubory |
3 573 846 |
photos |
1 717 175 |
photo_errors |
3 185 319 |
Všechny fotky mají processing_status = 'pending' — pipeline doběhla, další zpracování nezačalo.
Co jsme zjistili
Problém 1 — V záloze je spousta odpadu, ne jen rodinné fotky.
Pipeline sebrala vše co má příponu .jpg/.jpeg — včetně:
- PhotoPrism cache thumbnailů (
appdata/photoprism/cache/) — 229 521 ks, <10 kB - Plex / Immich cache
- MP3 a LP obaly
- DVD obaly, eBook obálky
- ABC vystřihovánky (skenované na 1200 DPI → soubory 60–100 MB)
- Reprodukce obrazů z torrentů (Raffael, Rembrandt... v muzejní kvalitě)
- Stažené obrázky z webu (Dropbox/!!!Days/Stefajir/...)
- Windows AppData (Kindle covers, .NET watermark...)
Problém 2 — Rok pořízení je hodně porušený.
- Rok 2024 má 985 754 fotek (>57 % všech) — zřejmě chybný fallback na mtime místo EXIF
- Rok 1863, 2031–4501 — garbage v EXIF
- Rok 2026 má 93 492 — suspektní
Sloupec wanted:
Přidán photos.wanted BOOLEAN NOT NULL DEFAULT FALSE — všech 1 717 175 fotek má FALSE.
Účel: budeme označovat fotky které chceme zachovat / zpracovat.
Nástroje
-
00 PictureCollector/preview_sample.py— zobrazí náhled fotek podle ID
Použití:python preview_sample.py 101 202 303 ...
Claude vybere ID přes MCP dotazy, předá příkaz ke spuštění. -
00 PictureCollector/migrate_add_wanted.py— přidal sloupecwanted(idempotentní)
Rozhodnutí
Pravidla vyloučení cest — část 1 (2026-06-04)
Tyto cesty nechceme — wanted zůstane FALSE, nezpracovávat:
| Vzor cesty (obsahuje) | Důvod | Počet |
|---|---|---|
Torrents/Downloads/OOPS!!! International |
porno screenshoty | ~7 105 |
Torrents/Downloads/Tampons Pads Period |
porno | ~9 600 |
#ColdData/Porno/ |
porno screenlists | — |
Porno1/ |
porno | ~2 730 |
#ColdData/000 TORENT OBRAZKY/National Geographic Wallpapers |
stažené wallpapery | ~7 188 |
#ColdData/000 TORENT OBRAZKY/[OnlyFans] |
OnlyFans | ~1 377 |
#ColdData/000 TORENT OBRAZKY/Great Painters |
reprodukce obrazů | — |
UltraCC/ a obsahuje /jpg |
Hot Wheels katalog a jiné torrent obrázky | ~3 484 |
Magentic/Runtime/UserPhotos/css |
webové ikonky | ~1 034 |
.Icecream Ebook Reader/ |
obrázky z epub knih | — |
photoprism/sidecar/ |
XMP sidecar soubory | — |
Otevřené: appdata/photoprism/cache, Immich thumbs, MP3/LP obaly, eBooks — vyřeší se v další části pravidel.
Schéma — nové sloupce v photos
| Sloupec | Typ | Popis |
|---|---|---|
wanted |
BOOLEAN NOT NULL DEFAULT FALSE |
chceme tuto fotku zachovat/zpracovat |
category |
VARCHAR(100) |
kategorie: Fotopast, Rodina, Skeny, … |
Označené kategorie
| Kamera / kritérium | wanted | category | Počet |
|---|---|---|---|
| BolyMedia SG520 | TRUE | Fotopast | 42 688 |
| Apple iPhones + iPad (viz update_wanted.py) | TRUE | Rodina | — |
| 15 kompaktů (Panasonic, Canon, GoPro, …) | TRUE | Rodina | — |
| Samsung + profesionální (Nikon D5/D4…) | TRUE | Rodina | — |
| 32 dalších fotoaparátů (update_wanted_batch2.py) | TRUE | Rodina | 13 056 |
Vyloučené skenery (wanted=FALSE, category='Skener-nechceme')
| Skener | Počet | Poznámka |
|---|---|---|
CanoScan 8800F (make IS NULL) |
1 567 | Skeny, nechceme |
Ostatní skenery (LiDE 300/210/100, 4400F, HP Scanjet G2710, pls3015, djf300/2100/2200, MP210/190) — dosud nerozhodnuto.
Na řadě
- Prozkoumat co přesně je v záloze — jaký podíl jsou skutečné rodinné fotky
- Rozhodnout jak filtrovat odpad (path blacklist? size? absence kamery?)
- Vyřešit problém s roky — proč 57 % fotek padá do 2024
- Označit první várku fotek jako
wanted = TRUE
Session 2026-06-05
Nástroje — nový web preview na Toweru
00 PictureCollector/preview_server.py— HTTP server běžící v Docker kontejnerupython-runnerna Toweru. Renderuje thumbnaily lokálně (rychlé), má lightbox (klik = plné rozlišení přes/image?id=).- URL:
http://192.168.1.76:8766/preview?ids=101,202,303&thumb=320 - Kontejner má mount
/mnt/remotes/TOWER1.LAN_ZalohaVsechObrazku→/mnt/ZalohaVsechObrazku:ro - Knihovny v image:
psycopg(v3!),Pillow(zabakováno přesdocker commit)
- URL:
- MCP konektor
fotky-buzalkovi—query/tables/describe_table/stats. SQL dotazy pouštím přímo, bez mezikroku.
Pracovní metodika (důležité!)
- NEoznačovat nechtěné proaktivně — vždy jen po explicitním pokynu uživatele.
- Před každým hromadným označením složky za odpad: ověřit jedinečnost přes
pixel/file-hash (
sha256_pixels,sha256_file). V cache/odpadních složkách se můžou skrývat unikátní rodinné fotky (viz „Maminka" níže). - UPDATE pouštět vždy jako jedna session, autocommit — paralelní běhy způsobují
deadlock. Před každým během kontrola
pg_stat_activityna zaseklé UPDATE. - Marker skripty:
mark_*.pyv00 PictureCollector/(idempotentní přes filtrcategory IS DISTINCT FROM ...).
Kategorie (rozšířený číselník)
| category | wanted | význam |
|---|---|---|
Rodina |
TRUE | rodinné fotky |
Kamaradi |
TRUE | fotky kamarádů (Jan Luxemburk – Xperie) |
Fotopast |
TRUE | fotopast |
Odpad-cache |
FALSE | cache aplikací, obaly, web obrázky |
Odpad-torrent |
FALSE | stažené torrenty (komiksy, vystřihovánky, software) |
Odpad-sken |
FALSE | skenované publikace (série stránek) |
Odpad-obaly |
FALSE | CD inlety/obaly s EXIF |
Odpad-dokumenty |
FALSE | skeny dokumentů/smluv |
Odpad-screenshot |
FALSE | screenshoty z her/aplikací |
Porno |
FALSE | porno |
Skener-nechceme |
FALSE | skenery (viz session 2026-06-04) |
Zpracované velké složky
| Složka | Fotek | Výsledek |
|---|---|---|
| Tower/appdata | 1 006 032 | odpad (Odpad-cache); zachráněno 2 274 fotek Maminky (iPhone 12) z photoprism/sidecar/Maminka → Rodina |
| Tower/Sabnzbd | 48 442 | celé odpad (usenet downloads, profi Nikon D5/D4 = stažené, ne rodina) |
| Tower/Torrents + Tower1/Torrents | 100 938 | celé odpad (Odpad-torrent) |
| Tower1/#ColdData | 84 374 | roztříděno 100 %, viz níže |
| Tower1/#Synology | 66 462 | rozpracováno (~95 %), viz níže |
#Synology — rozpracováno (Public/...)
Velký rodinný NAS fotoarchiv. Hash-check potvrdil, že HD02#FOTKY je z 99,6 %
unikátní (jen 132 fotek má kopii jinde) — není to duplikát jiné zálohy.
Rodina (chceme) — HOTOVO:
#SERVER/Y/HD02#FOTKY(30 789) — hlavní archiv 2008–2020#SERVER/Y/HD02#FOTKY MAMKA(1 167)DropboxFotky(14 882)HD02#DVD OSOBNI(5 834)Fotky(2 138)#SERVER/Y/WEBSgalerijní alba (906) — starý web Buzalka.com/Gallery2, alba akcí (USA 2006, lyžování Stoderzinken 2007, Orlík, Střetávka…)
Odpad — HOTOVO:
#SERVER/Y/WEBSzbytek (2 153) — web šablony/skiny/moduly Buzalka.cz e-shop → Odpad-cache
JEŠTĚ NEROZHODNUTO (zbývá ~9 200):
AFotkyFotky(4 550, 2 245 EXIF) — pravděpodobně fotky#SERVER/JNJ(1 835, 45 modelů) — smíšené#SERVER/E(1 629) — smíšenéVideoMichalkaiCloud(277) — Michalka iCloud, pravděpodobně rodinaGoPro(70) — pravděpodobně rodina- drobnosti (
###StatSoft,#SOFTWARE,HD02#AUDIO CD A DVD,#Kurzy,X…) ~220 → odpad
#ColdData — detailní rozpad
Rodina (chceme):
SynologyMaly/photo(24 198) +SynologyMaly/Public/Dropbox(447) — rodinný archiv 1998–2015 (Canon S40/A40/IXUS, Nikon D80, iPhony, Lumia). Unikátní (bez duplikátů).VladkoSoubory(871) — syn Vladimír Buzalka ml.DedupPhotos(285) — Samsung S7 Edge 2019, ověřeno unikátní.LTBS(40) — rodina (názvy souborů obsahují BUZALKA).Tatinek U/.../Fractal(19) — iPhone 13, táta.pomocSamsung GT-S5230 (26) — rodina.
Kamaradi (chceme): Honza fotky z Xperie (2 047) — kamarád Jan Luxemburk.
Odpad:
Porno,Porno1,MadelineIsWicked→ Porno000 TORENT OBRAZKY,Qnap_nepotrebne(X-Men komiksy, učebnice, software) → Odpad-torrentSynologyMaly/Public/X(9 134, série e0xxx skenů) → Odpad-skenQnap(MP3 obaly, downloads, 81 EXIF CD inletů) → Odpad-cache/Odpad-obalyMuseum of Modern Art NY, hudební alba, Salvador Dali, eBooky, Truecrypt,DropBox(software help obrázky) → Odpad-cacheTatinek UCompass dokumenty +212smlouvy → Odpad-dokumenty; DarthAnihilator/Screenshots → Odpad-screenshotpomocLegalPorno/Kink snapshoty (28) → Porno
Výsledek #ColdData: Rodina 25 889 · Kamaradi 2 047 · Porno 23 502 · Odpad-torrent 21 300 · Odpad-sken 9 134 · Odpad-cache 2 269 · ostatní odpad 228.
Poučení
- Cache/download složky ≠ čistý odpad. PhotoPrism si do
sidecar/ukládá unikátní JPEG kopie fotek, jejichž originály v záloze nejsou → před smazáním vždy hash-check. - Camera-rules (např. „všechny Nikon D5/D4 = Rodina") dávají false-positives ve stažených složkách → path má přednost, ale ověřit obsah.
Na řadě
- Dokončit #Synology — zbývá ~9 200:
AFotkyFotky,JNJ,E,VideoMichalkaiCloud,GoPro(náhledy → rozhodnout), drobnosti → odpad - Velké zbývající:
TW22/D(63 706),Tower1/#Pomoc(34 500),Tower1/#Synologymaly(29 934) - Dokončit Canony (a pak ostatní značky foťáků)
- „BEZ KAMERY" skupina (path-based)
Backlog otevřených otázek
- Co s "sirotky" bez EXIF —
mtime/ odmítnout / označit? - Při shodě
sha256_pixels— přeskočit / sloučit metadata / uložit oba? - Storage layout — nechat in-place /
archiv/YYYY/MM// content-addressable? - Jak poznat "rodinná fotka" od odpadu bez ruční kontroly?