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.

in Photos/AAAA/MM/GG.

Carica file**: in Safari il drag&drop fallisce con NSPOSIXErrorDomain:1 (il Mac non

da' a Safari il permesso di leggere il file trascinato).

non sposta: i doppioni su Nextcloud sono normali e vanno puliti a mano.

(per i filmati) ffprobe, poi il nome file, poi l'mtime se spuntato. Senza data ->

ANNO/ANNO_da_archiviare/indecise/nextcloud_<acct>/.

spunta *anteprima*. Tutto SKIPPED (doppione by size) -> e' gia' in leNostre, si puo'

cancellare. Ancora IMPORTED -> manca roba.

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:

2023 -> 79, 2024 -> 130, 2025 -> 3, 2026 -> 0.

originali IMG_*.mov). Da quando il giro passa dal Wizard, non entravano piu'.

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)

FileCosa
platform/lib/vrw.phpVRW_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.phpscansiona e importa i filmati, scarta le clip Live Photo, badge col numero di filmati per giorno
wiz_foto/vrw_provider.phpil 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.jsunico 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

erano solo nel cestino:

(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)

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

filmati ripristinati non sono stati importati in leNostre, il cestino e'

ancora l'unica altra copia.

Aperto / da decidere (Vitti)

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.

o per mtime. Da vedere quando si toccheranno gli anni vecchi.

lenostre.foto che va esteso - oggi filtra jpe?g|png|heic in lenostre_index.php.


4. Cose utili sapute per esperienza

Cannot restore the video part of a live photo. Va ripristinata la foto gemella,

o la cartella-giorno intera dal cestino.

rimette nella radice dei file dell'utente, non al suo posto.

cartelle non esistono).

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.

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.

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.