Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
images "tronquées"
#3
Salut, tu peux utiliser ce script darktable fermé:
c'est un script que j'ai récupéré sur le net (p-e même ici) mais malheureusement je ne peux pas citer la source
car je ne retrouve pas la page en question.
En revanche ça fonctionne nickel pour nettoyer la bd de DT.
Je crois avoir compris que dans la future version une fonction similaire sera intégrée.

Code :
#!/bin/bash
#
#    DARKTABLE DATABASE CLEANER
#
#       This script removes from the database the files
#   that are not located where they are supposed to be.
#
#       USAGE :
#   ./darktable_db_cleaner.sh
#       Will use the database located in :
#         ~/.config/darktable/library.db
#
#   ./darktable_db_cleaner.sh /path/to/library.ext
#       Will use the specified database
#
# Created by Rufus Wilson
#   contact : marsou75@gmail.com
#


if [ ! "`type -t sqlite3`"=="file" ] ; then
   echo "sqlite3 is required"
   sudo apt-get install sqlite3
fi

if [ -f "$1" ] ; then
   library="$1"
else
   library="/home/"$USER"/.config/darktable/library.db"
fi

for film_roll_id in `sqlite3 -noheader -list -interactive $library "SELECT id FROM film_rolls WHERE 1 ORDER BY id ASC;"`
do
   film_roll_folder="`sqlite3 -noheader -list -interactive $library "SELECT folder FROM film_rolls WHERE id=$film_roll_id ORDER BY id ASC;"`"
   echo "***  "$film_roll_folder"  ***"

   echo "-- cleaning database"
   for photo_id in `sqlite3 -noheader -list -interactive $library "SELECT id FROM images WHERE film_id=$film_roll_id ORDER BY filename ASC;"`
   do
       photo_filename=`sqlite3 -noheader -list -interactive $library "SELECT filename FROM images WHERE id=$photo_id ORDER BY filename ASC;"`
       if [ ! -f "$film_roll_folder/$photo_filename" ] ; then
           echo $photo_filename" deleted"
           sqlite3 -noheader -list -interactive $library "DELETE FROM images WHERE id=$photo_id;"
       fi
   done
   nb=`sqlite3 -noheader -list -interactive $library "SELECT count(id) FROM images WHERE film_id=$film_roll_id ORDER BY filename ASC;"`
   if [ "$nb" -eq "0" ] ; then
       sqlite3 -noheader -list -interactive $library "DELETE FROM film_rolls WHERE id=$film_roll_id;"
   fi
   echo "    ->cleaned"
done

# Shrink the size of database
sqlite3 -noheader -list -interactive $library "VACUUM"
Répondre


Messages dans ce sujet
images "tronquées" - par CHRISTIAN - 28-11-17, 15:46
RE: images "tronquées" - par jpverrue - 28-11-17, 16:58
RE: images "tronquées" - par pluton - 28-11-17, 17:16
RE: images "tronquées" - par CHRISTIAN - 28-11-17, 18:14
RE: images "tronquées" - par pluton - 28-11-17, 18:42
RE: images "tronquées" - par pascal - 28-11-17, 18:59
RE: images "tronquées" - par pluton - 28-11-17, 20:24
RE: images "tronquées" - par CHRISTIAN - 28-11-17, 19:03
RE: images "tronquées" - par jpverrue - 28-11-17, 19:07
RE: images "tronquées" - par pascal - 28-11-17, 19:10
RE: images "tronquées" - par patrick L - 28-11-17, 20:42
RE: images "tronquées" - par pluton - 29-11-17, 05:37

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)