Compare commits
2 Commits
1c7dff9f83
...
2c5854c835
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2c5854c835 | ||
|
|
bfa7ac2f10 |
88
toys/checkmissing
Executable file
88
toys/checkmissing
Executable file
@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# config structures
|
||||
declare -A \
|
||||
destinationchannels \
|
||||
destinationfat32compat \
|
||||
destinationcopymime \
|
||||
destinationformat \
|
||||
destinationfrequency \
|
||||
destinationid \
|
||||
destinationloss \
|
||||
destinationmaxbps \
|
||||
destinationnormalize \
|
||||
destinationpath \
|
||||
destinationquality \
|
||||
destinationrename \
|
||||
destinationnoresample \
|
||||
destinationrenamepath \
|
||||
destinationskipmime \
|
||||
|| {
|
||||
echo "Check your Bash version. You need >= 4.0" >&2
|
||||
exit $EBASHVERS
|
||||
}
|
||||
|
||||
declare -r \
|
||||
DOCDIR=./doc \
|
||||
LIBDIR=./lib \
|
||||
SHAREDIR=./share
|
||||
declare -r \
|
||||
exampleconf=$DOCDIR/example.cfg \
|
||||
schema=$SHAREDIR/schema.sql \
|
||||
\
|
||||
oldIFS="$IFS"
|
||||
|
||||
cffile="$HOME/.atom/atom.cfg"
|
||||
LC_ALL=C
|
||||
|
||||
shopt -s extglob
|
||||
|
||||
for function in "$LIBDIR"/*/*
|
||||
do
|
||||
source "$function"
|
||||
done
|
||||
|
||||
while getopts 'Dr' opt
|
||||
do
|
||||
case $opt in
|
||||
D) (( debug++ )) ;;
|
||||
r) regen=1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
getConfig
|
||||
|
||||
openDatabase
|
||||
|
||||
echo 'SELECT id,filename FROM destination_files WHERE filename IS NOT NULL;' >&3
|
||||
echo 'SELECT "AtOM:NoMoreFiles";' >&3
|
||||
|
||||
read -u4 filename
|
||||
until [[ $filename == AtOM:NoMoreFiles ]]
|
||||
do
|
||||
files+=("$filename")
|
||||
read -u4 filename
|
||||
done
|
||||
|
||||
echo 'BEGIN TRANSACTION;' >&3
|
||||
|
||||
echo -n "Checking for missing files... "
|
||||
for filename in "${files[@]}"
|
||||
do
|
||||
id=${filename%%::AtOM:SQL:Sep::*}
|
||||
filename=${filename#*::AtOM:SQL:Sep::}
|
||||
if ! [ -f "$filename" ]
|
||||
then
|
||||
echo -e "\r$filename\033[K"
|
||||
((regen))&&Update destination_files last_change 0 <<<"id = $id"
|
||||
echo -n "Checking for missing files... "
|
||||
(( missing++ ))
|
||||
fi
|
||||
progressSpin
|
||||
done
|
||||
|
||||
echo 'COMMIT;' >&3
|
||||
|
||||
echo -e "\r${missing:-0} missing files\033[K"
|
||||
|
||||
closeDatabase
|
||||
@ -407,10 +407,13 @@ do
|
||||
rest="${rest#*::AtOM:SQL:Sep::}"
|
||||
case $mimetype in
|
||||
application/ogg\ opus) type=Opus ;;
|
||||
audio/ogg\ opus) type=Opus ;;
|
||||
application/ogg\ vorbis) type=Vorbis ;;
|
||||
audio/ogg\ vorbis) type=Vorbis ;;
|
||||
audio/mp4) type=MPEG4\ Audio;;
|
||||
audio/mpeg) type=MPEG\ Audio;;
|
||||
audio/x-flac) type=FLAC ;;
|
||||
audio/flac) type=FLAC ;;
|
||||
video/mpeg) type=MPEG\ Video;;
|
||||
video/webm) type=WebM ;;
|
||||
video/x-flv) type=Flash\ Video;;
|
||||
@ -687,9 +690,9 @@ maxcountlen=${#maxcountlen}
|
||||
rest="${line#*::AtOM:SQL:Sep::}::AtOM:SQL:Sep::"
|
||||
totalsize="${line%%::AtOM:SQL:Sep::*}"
|
||||
for format in \
|
||||
audio/x-flac \
|
||||
application/ogg\ vorbis \
|
||||
application/ogg\ opus \
|
||||
audio/flac \
|
||||
audio/ogg\ vorbis \
|
||||
audio/ogg\ opus \
|
||||
audio/mpeg \
|
||||
audio/mp4 \
|
||||
\
|
||||
@ -715,11 +718,11 @@ do
|
||||
size="${rest%%::AtOM:SQL:Sep::*}"
|
||||
(( count )) || continue
|
||||
case $format in
|
||||
application/ogg\ opus) type=Opus ;;
|
||||
application/ogg\ vorbis) type=Vorbis ;;
|
||||
audio/ogg\ opus) type=Opus ;;
|
||||
audio/ogg\ vorbis) type=Vorbis ;;
|
||||
audio/mp4) type=MPEG4\ Audio ;;
|
||||
audio/mpeg) type=MPEG\ Audio ;;
|
||||
audio/x-flac) type=FLAC ;;
|
||||
audio/flac) type=FLAC ;;
|
||||
video/mpeg) type=MPEG\ Video ;;
|
||||
video/webm) type=WebM ;;
|
||||
video/x-flv) type=Flash\ Video ;;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user