#!/bin/bash
# Create a nfo playlist. Just copy this file to /usr/local/bin/nfomaker and make it executable.
# Then switch into the directory where you want the album.nfo to be create and type `nfomaker`.

### Script begins here ###

TOTALLENGTH=0

create (){
	file="$i"
	if echo "$file" | grep \.[Mm][Pp]3 > /dev/null; then
		mp3info -p "%n. %a - %t  %m:%s  %r kb/s\n" "$file" >> "album.nfo"
		LENGTH=`mp3info -p "%S" "$file"`
		TOTALLENGTH=`echo "$TOTALLENGTH + $LENGTH" | bc`
	elif echo "$file" | grep \.[Oo][Gg][Gg] > /dev/null; then
		TRACKNUMBER=`ogginfo "$file" | grep "TRACKNUMBER" | sed 's/^.*TRACKNUMBER=\(.*\)$/\1/g'`
                TITLE=`ogginfo "$file" | grep "TITLE" | sed 's/^.*TITLE=\(.*\)$/\1/g'`
                ARTIST=`ogginfo "$file" | grep "ARTIST" | sed 's/^.*ARTIST=\(.*\)$/\1/g'`
		MINUTES=`ogginfo "$file" | grep "Playback length" | sed 's/^.*Playback length: \(.*\)m.*$/\1/g'`
		SECONDS=`ogginfo "$file" | grep "Playback length" | sed 's/^.*Playback length: .*m:\(.*\)\..*s.*$/\1/g'`
		BITRATE=`ogginfo "$file" | grep "Average bitrate" | sed 's/^.*Average bitrate: \(.*\)[,\.].*$/\1/g'`
		LENGTH=`echo "$MINUTES * 60 + $SECONDS" | bc`
		TOTALLENGTH=`echo "$TOTALLENGTH + $LENGTH" | bc`

		echo "$TRACKNUMBER. $ARTIST - $TITLE  $MINUTES:$SECONDS  $BITRATE kb/s" >> "album.nfo"
	fi
}

rm -f album.nfo
touch album.nfo

for i in *; do
	create
done

TOTALHOURS=`echo "$TOTALLENGTH / 3600" | bc`
TOTALMINUTES=`echo "($TOTALLENGTH - $TOTALHOURS * 3600) / 60" | bc`
TOTALSECONDS=`echo "$TOTALLENGTH - ($TOTALMINUTES * 60) - ($TOTALHOURS * 3600)" | bc`

echo "" >> album.nfo
echo "Gesamte Spieldauer: $TOTALHOURS Stunden $TOTALMINUTES Minuten $TOTALSECONDS Sekunden" >> "album.nfo"

exit 0	
