Richieste di Elena - Wizard foto / leNostre
_File di passaggio consegne fra le chat (MastroLindo e gli altri Claude) e Vitti.
In ASCII puro come da B200 sez. 1.7.
Ultimo aggiornamento: 2026-08-05 (mattina)_
1. Come funziona il giro oggi
Nextcloud = transito, leNostre = archivio.
- Le foto arrivano su Nextcloud dai telefoni (
vitti-> Xiaomi,lella-> iPhone)
in Photos/AAAA/MM/GG.
- Da PC si caricano dal browser (
cloud.casarosini.duckdns.org), **col pulsante+->
Carica file**: in Safari il drag&drop fallisce con NSPOSIXErrorDomain:1 (il Mac non
da' a Safari il permesso di leggere il file trascinato).
- Il Wizard (
/srv/http/lab/public/wiz_foto/nextcloud_import.php) copia in leNostre,
non sposta: i doppioni su Nextcloud sono normali e vanno puliti a mano.
- La cartella-giorno su Nextcloud non decide la destinazione: conta l'EXIF, poi
(per i filmati) ffprobe, poi il nome file, poi l'mtime se spuntato. Senza data ->
ANNO/ANNO_da_archiviare/indecise/nextcloud_<acct>/.
- Verifica "posso cancellare da Nextcloud?": rilanciare l'import del giorno con la
spunta *anteprima*. Tutto SKIPPED (doppione by size) -> e' gia' in leNostre, si puo'
cancellare. Ancora IMPORTED -> manca roba.
- leNostre e' nel backup notturno su NAS (
vv_backup_sacro.sh, 03:10). Nextcloud non e'
un archivio (quota 40 GB a testa).
2. FATTA (02/08/2026) - il Wizard gestisce i filmati
Implementata e collaudata con Vitti ed Elena la sera del 02/08. Dettaglio tecnico e
collaudo nel diario di coding, voci 2026-08-02 e
2026-08-02 (2).
In breve: i filmati si importano da Nextcloud (datati con ffprobe, in mancanza dal nome
del file), finiscono nella cartella-giorno insieme alle foto, e nel Gestore si vedono
come mattonelle col fotogramma e il bollino play (il clic apre il filmato). Le clip Live
Photo dell'iPhone vengono scartate.
Il problema com'era
Il Wizard non importava i video (nextcloud_import.php prendeva solo
vrw_is_jpeg()/vrw_is_heic()) e il Gestore non li mostrava (vrw_provider.php
elencava solo jpg/jpeg/png). Conseguenze misurate il 02/08:
- leNostre ha 424 filmati (
.mov,.mp4,.mpg,.avi), ma per anno:
2023 -> 79, 2024 -> 130, 2025 -> 3, 2026 -> 0.
- Nel 2023/24 Elena li metteva a mano in
ANNO/9999 Filmati(209 file, nomi
originali IMG_*.mov). Da quando il giro passa dal Wizard, non entravano piu'.
- I video gia' in archivio erano invisibili nel Gestore.
- Rischio concreto: pulendo Nextcloud dopo l'import si cancellavano filmati mai
archiviati. Successo davvero: 3 filmati recuperati a mano dal cestino di Nextcloud.
La decisione presa con Elena
I filmati vanno nella cartella-giorno insieme alle foto, non in 9999 Filmati.
Motivo: quando sposta le foto di un evento nella cartella dell'evento, il filmato la
segue e resta legato al momento giusto (ed e' come stanno i 424 filmati gia' in archivio).
Com'e' stata fatta (5 file)
| File | Cosa |
platform/lib/vrw.php | VRW_VIDEO_EXT, VRW_FFPROBE/FFMPEG a path assoluto; vrw_is_video(), vrw_video_date() (ffprobe -> fuso locale), vrw_is_live_photo(), vrw_count_videos(); vrw_ingest() consapevole dell'estensione; vrw_filename_date() legge l'anno a 2 cifre |
wiz_foto/nextcloud_import.php | scansiona e importa i filmati, scarta le clip Live Photo, badge col numero di filmati per giorno |
wiz_foto/vrw_provider.php | il Gestore elenca i video (fotogramma + bollino play + href) e conta foto e filmati separatamente |
wiz_foto/vrw_vthumb.php (nuovo) | cappello che estrae il fotogramma con ffmpeg, gemello di nc_thumb.php e share/thumb.php; cache in VRP_SHARED_DIR/vrw_vthumb, FUORI da leNostre |
public/js/vrp-explorer.js | unico ritocco JS, additivo: usa res.countLabel se il servizio lo manda, altrimenti conta come prima -> lo share non cambia |
Backup di tutti i file toccati con la convenzione .bak_AAAAMMGG_HHMMSS_etichetta
(_prevideo e _precontafilmati).
Le tre scelte non ovvie
1. Live Photo riconosciute dal gemello, non dalla dimensione. I .mov da 0,4-6 MB
dell'iPhone sono il pezzo-video di una foto: si scartano se accanto c'e' un file con
lo stesso stem (X.mov + X.jpg). Una soglia di MB sbaglierebbe sui filmati brevi veri.
2. Niente full sui video nel provider. Il lightbox dell'explorer e' un <img>: dare
full a un video lo romperebbe. Senza, il video resta fuori dall'array immagini e il
clic cade sul ramo it.href -> si apre nel lettore del browser.
3. Il conteggio dei filmati si fa sul filesystem, non dall'indice: lenostre.foto e'
l'indice delle FOTO (GPS e ricerca) e i video non ci devono entrare. Costo misurato:
0 ms per una cartella-giorno, 12 ms per un anno, 225 ms per l'intero archivio.
2bis. FATTA (05/08/2026) - il bottone "Pulisci su Nextcloud"
Codice fatto e collaudato da riga di comando. Manca il collaudo di Elena
(pomeriggio del 05/08). Progetto: VRW_pulizia_nextcloud.md;
dettaglio tecnico nel diario di coding, voce 2026-08-05.
Sulla riga di ogni giorno c'e' un'icona 🧹 (la vedono solo admin ed editor;
l'ospite non ce l'ha proprio). Premendola non cancella niente: ricontrolla il
giorno file per file, e dice in parole sue quanti sono gia' in leNostre e quali
restano, col perche'. Solo il bottone verde del pannello cestina davvero, e i
file finiscono nel cestino di Nextcloud (da cui si ripristinano dal browser).
Il giro non passa mai dal filesystem: si chiede a Nextcloud di cancellare, con
una DELETE via WebDAV. Ogni account usa la propria password-applicazione, quindi
nel registro di Nextcloud si vede chi ha cancellato.
Il punto da ricordare: il ricontrollo cerca in tutto l'archivio, non
nella cartella dove l'import aveva messo la foto - se no, appena Elena sposta le
foto nella cartella dell'evento, il bottone non troverebbe piu' niente da pulire.
3. Stato al 2026-08-02 (sera)
Fatto
- Elena ha importato le sue foto di lavoro e ripulito Nextcloud per l'account
lella. - Recuperati a mano 2 filmati che non erano mai arrivati in archivio e che su Nextcloud
erano solo nel cestino:
/srv/http/leNostre/2026/9999 Filmati/26-03-11 15-37-37 9907.mov(50 MB)/srv/http/leNostre/2025/9999 Filmati/25-09-06 08-39-24 8829.mov(17 MB)
(il terzo, il .mp4 del 6/2, e' stato tolto da li' apposta e importato dal Wizard
durante il collaudo: e' in 2026/2026_da_archiviare/0206/20260206-112343.mp4)
- Modifica ai filmati fatta e collaudata da Elena nel browser: import OK, filmato
visibile nel Gestore col fotogramma. Difetto trovato da lei e corretto: una cartella
col solo filmato diceva "0 foto" (il numero veniva dall'indice foto).
Da fare, nell'ordine _(aggiornato 05/08)_
1. Ri-collaudo di Elena sui conteggi corretti ("1 filmato" dentro la cartella,
"1 pellicola" sulla mattonella, "8 foto" invariato dove non ci sono video).
2. ✅ I 25 filmati del cestino di vitti: controllati il 05/08 (erano 18
distinti, e nessuno era in archivio) e rimessi su Nextcloud. Vedi
VRW_pulizia_nextcloud.md sez. 10.
3. ⏳ Importarli dal Wizard: 11 cartelle-giorno nuove per l'account vitti
(dal 2026/04/26 al 2026/07/05; il 28 giugno da solo ne ha 6, 2,6 GB).
4. ⏳ Collaudo di Elena del bottone 🧹, su un giorno solo dell'account lella.
Da non fare intanto
- Non svuotare i cestini di Nextcloud (ne'
vittine'lella): finche' i
filmati ripristinati non sono stati importati in leNostre, il cestino e'
ancora l'unica altra copia.
Aperto / da decidere (Vitti)
- Baco preesistente, NON toccato:
vrp_asset_url()(inplatform/lib/vrp_util.php)
cerca la mtime in VRP_PLATFORM_DIR . '/' . $rel = lab/platform/public/js/..., che non
esiste (i file stanno in lab/public/). @filemtime fallisce sempre e ripiega su
time(): l'URL cambia a ogni caricamento, quindi CSS/JS dell'esploratore non vengono
mai messi in cache dal browser. Correzione = una riga (dirname(VRP_PLATFORM_DIR)),
ma attiva la cache dove finora non c'era mai stata -> decisione di Vitti.
mpgeavivecchi: ffprobe spesso non hacreation_time, quindi finiranno per nome
o per mtime. Da vedere quando si toccheranno gli anni vecchi.
- Se un domani si vorranno i video cercabili (o col pallino GPS), e' l'indice
lenostre.foto che va esteso - oggi filtra jpe?g|png|heic in lenostre_index.php.
4. Cose utili sapute per esperienza
- Nextcloud rifiuta di ripristinare da solo il
.movdi una Live Photo:
Cannot restore the video part of a live photo. Va ripristinata la foto gemella,
o la cartella-giorno intera dal cestino.
- Ripristinando un file la cui cartella originale e' stata cancellata, Nextcloud lo
rimette nella radice dei file dell'utente, non al suo posto.
- Le cartelle si cancellano solo dall'app File, non dall'app Foto (in Foto le
cartelle non esistono).
- Il caricamento automatico e' a senso unico (telefono -> server): cancellare su
Nextcloud non tocca il rullino, e l'app non ricarica cio' che ha gia' caricato. Si
propagherebbe solo con i file "disponibili offline" o col client desktop
(sincronizzazione vera a due vie). Da controllare sul telefono di vitti prima della sua
pulizia: l'opzione Android "elimina l'originale dopo il caricamento" - se attiva,
Nextcloud e' l'unica copia fino all'import.
- Tutto il wiz risponde 302 a curl anonimo: e' la guardia di login della piattaforma,
non un guasto. Per collaudare le pagine serve una sessione; la logica si prova da CLI
facendo require di platform/boot/3_2_1_Go.php.
- Con Elena: passi piccoli, niente gergo, e avvisarla quando si sta solo leggendo del
codice - le richieste di conferma dei tool la mettono in difficolta'. Le sue
segnalazioni sono buone: quella dei conteggi ha scoperto un numero sbagliato, non una
scritta sbagliata.