#!/bin/bash

pageurl="$1"
tmpprefix="/tmp/bca-$(echo "$pageurl" | tr -cd 'A-Za-z0-9')"
pagetmp="$tmpprefix.html"
cookies="$tmpprefix.cookies"


wget=( wget -nc -U "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" --load-cookies "$cookies" --save-cookies "$cookies" --keep-session-cookies )

"${wget[@]}" "$pageurl" -O "$pagetmp"
sed -i 's/&quot;/"/g' "$pagetmp"


#packageline="$(grep 'packages:' "$pagetmp")"
#echo "Packages line: $packageline"
#album="$(echo "$packageline" | sed -r 's/.*"album_title":"([^"]+)".*/\1/')"
#longdate="$(echo "$packageline" | sed -r 's/.*"album_release_date":"([^"]+)".*/\1/')"
#artist="$(echo "$packageline" | sed -r 's/.*"download_artist":"([^"]+)".*/\1/')"
#artid="$(echo "$packageline" | sed -r 's/.*"download_art_id":([0-9]+).*/\1/')"

#artist="$(sed -nr 's/^ *artist: *"([^"]+)",$/\1/p' "$pagetmp" | head -n 1)"
currentline="$(grep '\"current\":' "$pagetmp")"
#echo "Current line: $currentline"
artist="$(echo "$currentline" | sed -r 's/.*"artist":"([^"]+)".*/\1/')"
album="$(echo "$currentline" | sed -r 's/.*"title":"([^"]+)".*/\1/')"
longdate="$(echo "$currentline" | sed -r 's/.*"release_date":"([^"]+)".*/\1/')"
artid="$(echo "$currentline" | sed -r 's/.*"art_id":([0-9]+).*/\1/')"


relyr="$(date -d "$longdate" '+%Y')"
echo "Album: $artist - $album ($relyr)"

#globalsline="$(grep 'TemplGlobals' "$pagetmp")"
#echo "$globalsline"
#artroot="$(echo "$globalsline" | sed -r 's/.*"image_siteroot_https":"([^"]+)".*/\1/')"
datavarsline="$(grep 'data-vars' "$pagetmp")"
#echo "$datavarsline"
artroot="$(echo "$datavarsline" | sed -r 's/.*"image_siteroot_https":"([^"]+)".*/\1/')"
arturl="$artroot/img/a""$artid""_10.jpg"
echo "Art url: $arturl"

#exit
#read
sleep 5

dir="$artist - $album ($relyr)"
mkdir "$dir"

"${wget[@]}" "$arturl" -O "$dir/$dir.jpg"


while IFS= read -r trackline
  do
    #echo "Track line: $trackline"
    rawtracknum="$(echo "$trackline" | sed -r 's/.*"track_num":([0-9]+).*/\1/')"
    tracknum="$(printf "%02d" $rawtracknum)"
    title="$(echo "$trackline" | sed -r 's/.*"title":"([^"]+)".*/\1/')"
    title="$(echo "$title" | sed 's/&amp;/\&/g' | sed 's/&quot;/"/g')"
    url="$(echo "$trackline" | sed -r 's/.*"file":\{"([^"]+)":"([^"]+)"\}.*/\2/')"
    echo "Track $tracknum - \"$title\": $url"
    file="$dir/$dir - $tracknum - $title.mp3"
    "${wget[@]}" "$url" -O "$file"
    let "delay = $RANDOM % 15 + 10"
    echo "Sleeping $delay seconds."
    sleep $delay
  done < <(grep '"trackinfo":' "$pagetmp" | sed 's/},{/\n/g')


