#!/bin/bash

CURL=/opt/local/bin/curl
MPLAYER=/usr/local/bin/mplayer
NORMALIZE=/opt/local/bin/normalize
LAME=/opt/local/bin/lame

##################

SCRIPT=rip-cod$RANDOM
TRACK=0

"$CURL" $1 |
while read LINE
do
	echo $LINE | grep -q "<ENTRY>"
	if [[ $? -eq 0 ]]; then
		NEW_ENTRY=1
		TRACK=$(($TRACK + 1))
	fi

	echo $LINE | grep -q "</ENTRY>"
	if [[ $? -eq 0 ]]; then
		NEW_ENTRY=0
	fi

	echo $LINE | grep -q "<TITLE>"
	if [[ $? -eq 0 ]]; then
		if [[ NEW_ENTRY -eq 1 ]]; then
			TITLE=`echo $LINE | sed -E "s/[ ]*<.?TITLE>[ ]*//g" | sed -E "s/[^a-zA-Z0-9 -]+//g"`
		else
			ARTIST=`echo $LINE | sed -E "s/[ ]*<.?TITLE>[ ]*//g" | sed -E "s/[^a-zA-Z0-9 -]+//g"`
		fi
	fi

	echo $LINE | grep -q "<REF HREF"
	if [[ $? -eq 0 ]]; then
		URL=`echo $LINE | sed -E "s/<REF HREF=.//g" | sed -E "s/ \/>//g" | sed -E "s/[^a-zA-Z0-9:\/\.]*//g"`
	fi

	if [[ -n $ARTIST && -n $TITLE && -n $URL ]]; then
		FILE=`echo "$ARTIST $TRACK $TITLE" | sed -e 's/ /_/g'`
		echo "$MPLAYER -really-quiet -ao pcm:file=$FILE.wav $URL; $NORMALIZE $FILE.wav; $LAME -b 192 -h $FILE.wav $FILE.mp3; rm $FILE.wav" >> $SCRIPT
		URL=''
		TITLE=''
	fi
done

chmod 755 $SCRIPT
./$SCRIPT
rm $SCRIPT
