Pre-rempli a l'ouverture de l'import Appareil/SD.
Pre-rempli a l'ouverture de l'import Autre dossier.
Si renseigne, les previews d'import sont generees sur le VPS (beaucoup plus rapide).
Dossier local pour stocker les fichiers en mode hors-ligne (pas sur le kDrive).
Rappels des processus a ne pas oublier. Detail technique inclus.
Detection des fichiers ignores : la table ignored_files memorise (filename, file_size) pour 2 cas : (1) fichiers non selectionnes lors d'un import precedent (raison user_skipped), (2) photos supprimees dans PhotoPilot (raison deleted). Ces fichiers sont automatiquement filtres aux scans suivants. Le compteur "X fichiers ignores" apparait dans les resultats du scan, avec un bouton Re-scanner en incluant les ignores si tu veux les revoir.
Quatre sources d'import dans le menu Import :
SmartPhone/SaveSmartphone/<modele> sur kDrive (Samsung A54 par defaut). Modifier la liste dans import_session.py → SMARTPHONE_DIRS.Detection des doublons : pre-check par (nom, taille) pendant le scan, puis hash SHA-256 pendant l'import. Les doublons sont ignores silencieusement.
Cible des originaux : kDrive\Photo\Originaux\YYYY\YYYY-MM-DD\. La date provient de l'EXIF, sinon du nom de fichier, sinon du mtime.
Phase 1 — Scan : PROPFIND recursif sur kDrive. Liste les fichiers, exclut screenshots/, filtre par extensions photo/raw/video, pre-check doublons.
Phase 2 — Previews : si VPS configure (Parametres → URL VPS), la generation est deleguee au VPS via POST /api/remote/generate-thumbs. Le VPS telecharge depuis kDrive (datacenter, rapide), genere les thumbs 300px, et le PC affiche les URLs https://photos.franck-berthelot.fr/api/remote/thumb/<idx>. Sans VPS configure : telechargement local (lent).
Phase 3 — Selection : grille avec filtres par date et type. Clic sur thumb = zoom 500px. Clic sur le reste de la carte = toggle selection.
Phase 4 — Import : pour chaque fichier selectionne, telechargement WebDAV vers staging local, ingest (hash, EXIF, thumbs/previews), copie WebDAV serveur-a-serveur (WebDAV COPY) vers Originaux/YYYY/YYYY-MM-DD/.
A ne pas oublier : apres l'import, deployer (le marqueur last_admin_change active le bouton Deployer).
MTP n'est pas un vrai systeme de fichiers — PhotoPilot ne peut pas le scanner directement.
Ce PC\<Telephone>\Stockage interne\DCIM\Camera dans l'Explorateur.C:\Temp\<source>-import (hors kDrive).Detection automatique de l'editeur : ON1 Photo RAW (2024-2026) prioritaire, sinon Lightroom Classic. Cherche les chemins dans retouch.py → EDITORS.
Phase 1 — Materialisation : selectionne des photos, lance "Retoucher". Les originaux (+ XMP + .on1 si presents) sont telecharges depuis kDrive vers C:\PhotoPilot\Retouche\<timestamp>\. Mode original par defaut, mode current pour partir d'un export JPG existant.
Phase 2 — Edition : ON1 (ou LR) est lance. ON1 doit etre configure pour demarrer sur C:\PhotoPilot\Retouche. Tu travailles normalement, exportes les _edit.jpg dans exports/ ou directement dans le dossier session.
Phase 3 — Scan resultats : detecte les XMP modifies, les .on1 modifies, les fichiers DNG/JPG modifies (par mtime), et les exports *_edit.*.
Phase 4 — Finalisation :
• XMP → upload vers kDrive/Photo/Originaux/...
• .on1 → upload vers kDrive/Photo/Originaux/...
• Fichiers modifies → re-upload, recalcul du hash, update photos.hash_sha256
• Exports _edit.* → upload vers kDrive/Photo/Exports/YYYY/YYYY-MM-DD/, indexation dans table exports, mise a jour photos.display_file_id (la galerie affiche desormais l'export).
Detection des modifs : un fichier est considere modifie si son mtime depasse l'initial de plus d'1 seconde. Les exports doivent contenir _edit dans le nom pour etre matches.
A ne pas oublier : finaliser avant d'eteindre le PC, sinon les modifs restent en local. La session est verrouillee tant qu'elle n'est pas finalisee ou annulee.
Pre-requis : configurer Dossier de stockage offline dans Parametres (ex: C:\PhotoPilot\Offline). Doit etre hors kDrive.
Activer : bouton En ligne / Hors ligne dans le header. Persiste dans metadata.config_offline_mode.
Comportement : pendant l'offline, tous les uploads kDrive (imports, retouche) sont rediriges vers le dossier offline, structure Originaux/ et Exports/ identique. Chaque fichier ecrit ajoute une ligne dans la table pending_sync.
Resynchroniser : desactiver le mode offline, puis cliquer Synchroniser dans le header. Les fichiers pending_sync sont uploades vers kDrive (originaux, exports, XMP, .on1, fichiers modifies). Status passe a synced dans la table.
A ne pas oublier : la materialisation pour retouche cherche d'abord dans le dossier offline si configure (avant kDrive). Donc en offline, les originaux deja importes restent retouchables.
Bouton Deployer apparait dans le header quand last_admin_change > last_deploy (toute modif catalogue : import, retouche, partage).
Que deploie-t-il ?
1. catalog.db → scp vers /opt/photopilot/catalog.db
2. thumbs/ et previews/ manquants → analyse via find distant, envoi des nouveaux uniquement
3. Restart systemctl restart photopilot sur le VPS
4. Update metadata.last_deploy
Deploiement complet du code : ./deploy.sh dans le terminal (transfert tar.gz, install deps, systemd, nginx). ./deploy.sh --sync-data pour aussi pousser catalog.db + thumbs + previews complets.
VPS : root@213.165.95.59, path /opt/photopilot, domaine https://photos.franck-berthelot.fr, port interne 8003 derriere nginx.
Credentials kDrive sur le VPS : /opt/photopilot/Gestion_photos/.kdrive_creds (necessaire pour la generation distante de previews).
C:\Users\franc\kDrive\Developpement\PhotoPilot\C:\Users\franc\PhotoPilot\ (catalog.db, family.db, thumbs/, previews/, import_staging/, remote_thumbs/)C:\Users\franc\kDrive\Photo\Originaux\YYYY\YYYY-MM-DD\C:\Users\franc\kDrive\Photo\Exports\YYYY\YYYY-MM-DD\C:\PhotoPilot\Retouche\<timestamp>\python -m uvicorn photopilot.web:app --host 127.0.0.1 --port 8500https://403440.connect.drive.infomaniak.com, creds dans Gestion_photos/.kdrive_credsLes fichiers seront deplaces dans la corbeille kDrive. Cette action est reversible depuis le kDrive.