scan destination_files

This commit is contained in:
Vincent Riquer 2013-04-07 17:01:22 +02:00
parent 2c507a4181
commit 496c48d04d

View File

@ -69,14 +69,70 @@ echo '
; ;
SELECT "AtOM:NoMoreFiles"; SELECT "AtOM:NoMoreFiles";
' >&3 ' >&3
getdstfiles() {
local \
line \
lines
unset dest
for destination in "${!destinationformat[@]}"
do
if [[ ${destinationformat["$destination"]} != $format ]]
then
continue
fi
echo '
SELECT
destination_files.id,
destination_files.filename
FROM destination_files
INNER JOIN source_files
ON
destination_files.source_file_id=source_files.id
INNER JOIN destinations
ON
destinations.id=destination_files.destination_id
WHERE source_files.id='$fileid'
AND destinations.name="'"$destination"'"
AND destination_files.filename IS NOT NULL
AND destination_files.filename NOT LIKE
"%'$extension'"
;
SELECT "AtOM:NoMoreFiles";
'>&3
while read -u4 line
do
if [[ $line == AtOM:NoMoreFiles ]]
then
break
fi
lines+=("$line")
done
done
for line in "${lines[@]}"
do
fileid=${line%|*}
filename=${line#*|}
echo $'\t'"$filename"
(( rename )) && echo -n $'\t'
(( rename )) && renameFile
done
}
renameFile() { renameFile() {
echo $'\t'"${filename%.*}$extension" echo " -> ${filename%.*}$extension"
if ! (( pretend )) if ! (( pretend ))
then then
mv \ mv \
"$sourcepath/$filename" \ "${dest:+$dest/}$filename" \
"$sourcepath/${filename%.*}$extension" \ "${dest:+$dest/}${filename%.*}$extension" \
&& Update source_files filename "${filename%.*}$extension"<<-EOW if [[ $dest == '' ]]
then
table=destination_files
else
table=source_files
fi
&& Update $table filename "${filename%.*}$extension"<<-EOW
id = $fileid id = $fileid
EOW EOW
fi fi
@ -98,39 +154,58 @@ do
rest=${rest#*|} rest=${rest#*|}
mimetype=${rest%%|*} mimetype=${rest%%|*}
rest=${rest#*|} rest=${rest#*|}
dest=$sourcepath
case "$mimetype" in case "$mimetype" in
'audio/mpeg') 'audio/mpeg')
if [[ ${filename##*.} != mp3 ]] if [[ ${filename##*.} != mp3 ]]
then then
format=mp3
extension=.mp3 extension=.mp3
echo "$filename: MP3 ($extension)" echo "$filename: MP3 ($extension)"
(( rename )) && renameFile (( rename )) && renameFile
getdstfiles
fi fi
;; ;;
'application/ogg vorbis') 'application/ogg vorbis')
if [[ ${filename##*.} != ogg ]] if [[ ${filename##*.} != ogg ]]
then then
format=vorbis
extension=.ogg extension=.ogg
echo "$filename: Ogg Vorbis ($extension)" echo "$filename: Ogg Vorbis ($extension)"
(( rename )) && renameFile (( rename )) && renameFile
getdstfiles
fi fi
;; ;;
'application/ogg opus') 'application/ogg opus')
if [[ ${filename##*.} != opus ]] if [[ ${filename##*.} != opus ]]
then then
format=opus
extension=.opus extension=.opus
echo "$filename: Opus ($extension)" echo "$filename: Opus ($extension)"
(( rename )) && renameFile (( rename )) && renameFile
getdstfiles
fi fi
;; ;;
'audio/x-flac') 'audio/x-flac')
if [[ ${filename##*.} != flac ]] if [[ ${filename##*.} != flac ]]
then then
format=flac
extension=.flac extension=.flac
echo "$filename: FLAC ($extension)" echo "$filename: FLAC ($extension)"
(( rename )) && renameFile (( rename )) && renameFile
fi fi
;; ;;
'application/data')
extendedtype=$(file -b "$sourcepath/$filename")
[[ $extendedtype =~ Mmeusepack ]] || continue
if [[ ${filename##*.} != flac ]]
then
format=mpc
extension=.mpc
echo "$filename: Musepack ($extension)"
(( rename )) && renameFile
fi
;;
esac esac
done done