#!/bin/bash

set -e

if test -e /dev/cdrom -a ! -d /dev/cdroms ; then DEV="" ; else DEV=0; fi
if test "$1" = "1" ; then DEV=1; shift; fi
if test -d /dev/cdroms; then
        D=/dev/cdroms/cdrom$DEV
else
        D=/dev/cdrom$DEV
fi

if test -d /mnt/disk/sounds ; then
        X=/mnt/disk/sounds/cd
elif test -d /smurf/sounds ; then
        X=/smurf/sounds/cd
elif test -d /daten/sound ; then
        X=/daten/sound/cd
elif test -d /daten/Sound ; then
        X=/daten/Sound/cd
elif test -d ~/sound ; then
        X=~/sound/cd
else
        echo "kein sound-Verzeichnis?" >&2
fi

cdcd -d $D close
f=$(tempfile)

while : ; do
python <<END
import musicbrainz2.disc as md
import musicbrainz2.webservice as ws
import time
while True:
	try:
		d = md.readDisc("$D")
		break
	except Exception,e:
		time.sleep(2)
print "***",d.id
f=open("$f","w")
print >>f,d.id
f.close()

q=ws.Query()
dly=2.0
while True:
	try:
		filter = ws.ReleaseFilter(discId=d.id)
		res = q.getReleases(filter)
		break
	except ws.WebServiceError,e:
		print "Error:", e
		time.sleep(dly)
		dly = dly * 1.6
if res and len(res)==1:
	res = res[0].release
	print res.artist.name
	print res.title
else:
	print md.getSubmissionUrl(d)
END
read id <$f
rm $f

cdcd -d $D open >/dev/null 2>&1 || cdcd -d $D open >/dev/null 2>&1 || /bin/true
eject $D

if test -z "$id" ; then exit 1; fi

if test -n "$X" ; then
if test -d $X/$id ; then
	if test -d $X/mb_$id ; then
		rm -r $X/$id
	else
		mv $X/$id $X/mb_$id
	fi
fi
if test -d $X/mb_$id ; then
	du -h $X/mb_$id 
else
	echo $id +++ unbekannt
fi
fi
echo ""

done
