mardi 13 janvier 2015

Pcmanfm keeps deleting and recreating my thumbnails


I wrote a little shell script to handle cbz/cbr thumbnails in Pcmanfm instead of using Evince and every GNOME thing coming with it. The thumbnails are created and can be used normally BUT they seem to be deleted and recreated each time I come across the associated files.


Here's the script:



#!/bin/sh
#cbz cbr thumbnailer made to be used this way: cbz_thumbnailer.sh input (%i) size (%s) output (%o)
#dependencies: unzip unrar file imagemagick awk

TMP_FILE="/tmp/cbz_thumbnailer_tmp"
LOG_FILE="/tmp/cbz_thumbnailer.log"

if [ ! -e "$3" ]
then
echo "$3 doesn't exist" >> $LOG_FILE
else
echo "$3 already exist" >> $LOG_FILE
exit 1
fi

case $(file -b --mime-type "$1") in
application/zip )
FIRST_IMAGE="$(unzip -l "$1" | awk 'NR==4 {print $4}')"
[ "$FIRST_IMAGE" = "" ] && echo "$1 is empty" >> $LOG_FILE && exit 1
unzip -p "$1" "$FIRST_IMAGE" > $TMP_FILE
;;
application/x-rar )
FIRST_IMAGE="$(unrar lb "$1" | awk 'NR==1')"
unrar p -inul "$1" "$FIRST_IMAGE" > $TMP_FILE
;;
* )
echo "$1 is not a zip nor a rar file" >> $LOG_FILE
exit 1
;;
esac

case $(file -b --mime-type $TMP_FILE) in
image/png | image/jpeg )
convert -define jpeg:size='512x512' $TMP_FILE -thumbnail "$2x$2" "$3"
;;

* )
echo "The first file of $1 isn't an image (png/jpeg)" >> $LOG_FILE
exit 1
;;
esac

rm "$TMP_FILE"


And here's the file in /usr/share/thumbnailers:



[Thumbnailer Entry]
TryExec=cbz_cbr_thumbnailer.sh
Exec=cbz_cbr_thumbnailer.sh %i %s %o
MimeType=application/x-cbz;application/x-cbr;


I even tried to log the result of ls -Al /home/user/.thumbnails/normal at the beginning of the script, and the displayed thumbnails are indeed destroyed before calling it.


I'm at loss for words. Thanks for your attention.



Aucun commentaire:

Enregistrer un commentaire