#! /bin/bash
#all variables :P
AID="0"
ARTIST=""
IMG=""
OLD=""
OLDINFO=""
declare -a SARRAY
function getArtistName {
wget -q --keep-session-cookies --load-cookies=./cookies.txt --save-cookies=./cookies.txt -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12" "http://what.cd/artist.php?action=edit&artistid=$AID" -O files/$AID
ARTIST=$( grep "
Edit " files/$AID | sed 's/.*id=.*\">\(.*\)<\/a>.*/\1/' )
}
function getInfo {
wget -q --keep-session-cookies --load-cookies=./cookies.txt --save-cookies=./cookies.txt -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12" --no-check-certificate "http://last.fm/music/$ARTIST/+wiki?action=edit" -O - |
perl -0777 -lne 'print for m[id="wikitextarea">(.*?)]sg' |
perl -0777 -lpe 's/\[.*?]//g' |
sed -e 's/\"/\"/g' > information/$AID
IMG=$( wget -q --keep-session-cookies --load-cookies=./cookies.txt --save-cookies=./cookies.txt -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12" --no-check-certificate "http://last.fm/music/$ARTIST/+wiki?action=edit" -O - |
grep imgHolder | grep -o 'src=".*[png|jpg|jpeg|gif]"' |
sed 's/src="\(.*\)" alt.*/\1/' )
}
function getOldImg {
OLD=$( wget -q --keep-session-cookies --load-cookies=./cookies.txt --save-cookies=./cookies.txt -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12" --no-check-certificate "http://what.cd/artist.php?action=edit&artistid=$AID" -O - |
grep "name=\"image\"" | sed 's/.*value=\"\(.*\)\".*/\1/' )
}
function getOldInfo {
OLDINFO=$( wget -q --keep-session-cookies --load-cookies=./cookies.txt --save-cookies=./cookies.txt -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12" --no-check-certificate "http://what.cd/artist.php?id=$AID" -O - |
perl -0777 -lne 'print for m[class="body">(.*?)]sg' )
}
function postInfo {
getOldImg
wget -q --keep-session-cookies --load-cookies=./cookies.txt --save-cookies=./cookies.txt -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12" --post-data="body=$( cat ./information/$AID | sed 's/\&/and/g' )&image=$OLD&summary=automatically.generated.description&action=edit" --no-check-certificate "http://what.cd/artist.php?action=edit&artistid=$AID" &&
rm artist*
}
function postIMG {
wget -q --keep-session-cookies --load-cookies=./cookies.txt --save-cookies=./cookies.txt -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12" --post-data="image=$IMG&summary=automatically.generated.image&action=edit" --no-check-certificate "http://what.cd/artist.php?action=edit&artistid=$AID" &&
rm artist*
}
function getSimilars {
COUNT=0
wget -q http://last.fm/music/$ARTIST -O - |
grep "
array
exec 10&-
rm array
}
function postSimilars {
for (( i=0; i<${#SARRAY[@]}; i++ )); do
wget -q --keep-session-cookies --load-cookies=./cookies.txt --save-cookies=./cookies.txt -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12" --post-data="action=add_similar&artistid=$AID&submit=+&artistname=${SARRAY[i]}" --no-check-certificate "http://what.cd/artist.php?id=$AID"
rm artist*
SARRAY[$i]=""
done
}
for i in `seq 10066 45000`; do
AID=$i
getArtistName
echo -e "\nArtist: $ARTIST found with AID: $AID"
if [ "$ARTIST" != "" ]; then
getInfo
#the rest is going to go inside a loop that happens if there is last.fm data
#that we've downloaded, otherwise we're wasting our time and resources, eh?
if [ "$( cat information/$AID )" != "" ]; then
getOldImg
if [ "$OLD" = "" ]; then
if [ "$IMG" != "" ]; then
postIMG
echo "Added image for $ARTIST"
else
echo "No image on last.fm!"
fi
else
echo "Image for $ARTIST already exists!"
fi
getOldInfo
if [ "$OLDINFO" = "" ]; then
postInfo
echo "Added information for $ARTIST"
else
echo "Information for $ARTIST already exists on what.cd!"
fi
getSimilars
postSimilars
echo "Similar Artists for $ARTIST added!"
else
echo "No information for artist found!"
fi
fi
done