Newer
Older
Import / code / Scripts / lookupIMDB.sh
#!/bin/bash


TITLE=0
FOUND_OVERVIEW=0
FOUND_DETAILS=0
FOUND_PLOT=0
FOUND_SYNOPSIS=0


function lookup_title
{
	wget "http://www.imdb.com/find?s=all&q=$1" -O - 2> /dev/null | grep "Titles.*<a href=\"/title/" | perl -pe 's|(.*?<a href=\"/title/)||' | cut -d '/' -f 1 > tmp.1
	while read TITLE
	do
		echo "$TITLE"
		break 1
	done < tmp.1
}


function get_basic_details
{
	echo "<html><head><title>$1 (IMDB)</title>"
	echo "<style>"
	echo "body { font: 13px Gill Sans, sans-serif; } .info { margin-left: 10em; margin-bottom: 1em; } hr { border: 1px #999; height: 1px; border-style: dotted none none none; clear: none; margin-left: 0px; } .info h5 { margin-top: 0; position: absolute; margin-left: -10em; } .headerinline { margin-top: 0px; margin-bottom: 6px; }"
	echo "td { font: 12px Arial; } #Cast .info { margin-left: 3em; font: 10px Arial; } .cast * { font: 10px Arial; } .odd * { background-color: #efefff; } table.cast { border-collapse: collapse; } table.cast td { height: 36px; border-top: 1px dotted #999; border-bottom: 1px dotted #999; vertical-align: middle; padding-left: 0.5em; padding-right: 0.5em; } table tr.odd { background: #fafafa; } table tr.even { background: #f0f1f7; }"
	echo "#Cast { float: right; width: 295px; top: 0; } #Overview { float: left; width: 295px; }"
	echo ".break { clear: both; padding-top: 1px; }"
	echo "h1, h5 { color: darkorange; }"
	echo "#Photo, #Fun, #Cast, #Details, #Plot, #Synopsis, #Overview { background: #f8f8f8; margin: 6px; padding: 4px; }"
	echo "body table { background: #e0e8f0; }"
	echo "h3 { color: darkblue; }"
	echo "#Title h1 { font: 25px Gill Sans, sans-serif; color: #ffffff; padding-left: 12px; padding-top: 9px; margin: 0px; }"
	echo "#Photo { float: right; width: 295px; }"
	echo "#Photo img {  margin-left: 24px; margin-bottom: 10px; width: 250px; }"
	echo "#Overview { float: left; width: 295px; }"
	echo "#Cast { float: right; width: 295px; }"
	echo "#Details { float: left; width: 295px; }"
	echo "</style>"
	echo "</head><body>"
	echo "<center><table><tr><td width=630>"
	echo "<div id=\"Title\"><h1>$1</h1></div>"
	echo "<hr/>"
	echo "<!-- looking up overview for \"$1\" which is \"$2\" in IMDB -->"

	wget "http://www.imdb.com/title/$2/" -O - 2> /dev/null > tmp.2
	while read LINE
	do
		PHOTO=`echo "$LINE" | grep -c "<div class=\"photo\">"`
		BEGIN1=`echo "$LINE" | grep -c "<h5>Director"`
		END1=`echo "$LINE" | grep -c "<h3>Cast</h3>"`
		BEGIN2=`echo "$LINE" | grep -c "<h3>Additional Details</h3>"`
		END2=`echo "$LINE" | grep -c "<h3>FAQ</h3>"`

		if [ x"$PHOTO" = x"1" ]
		then
			read LINE
			IMG=`echo "$LINE" | sed "s/.*src\=\"\(http:\/\/ia.media-imdb.com\/.*@@\).*/\1/"`
			wget "$IMG" -O "$1 - Title Cover.jpg" > /dev/null 2>&1
			echo "<div id=\"Photo\"><h3>Photo</h3><img src=\"$1 - Title Cover.jpg\" width=250></div>"
		fi

		if [ x"$FOUND_OVERVIEW" = x"1" ]
		then
			if [ x"$END1" = x"1" ]
			then
				echo "</div>"
				echo "<div id=\"Cast\">"
				echo "$LINE" | sed "s/\(.*\)<div><form.*<\/form><\/div>\(.*\)/\1\2/"
				echo "</div>"
				echo "<!-- Got to end of overview data -->"
				echo "<div id=\"Details\">"
				FOUND_OVERVIEW=2
			else
				if [ "$LINE" != "<hr/>" ]
				then
					echo "$LINE"
				fi
			fi
		fi
		if [ x"$BEGIN1" = x"1" ]
		then
			echo "<div id=\"Overview\">"
			echo "<h3>Overview</h3>"
			echo "<div class=\"info\">"
			echo "$LINE"
			FOUND_OVERVIEW=1
		fi

		if [ x"$FOUND_DETAILS" = x"1" ]
		then
			if [ x"$END2" = x"1" ]
			then
				echo "</div>"
				echo "<!-- Got to end of details data -->"
				echo "<div class=\"break\"><hr/></div>"
				FOUND_DETAILS=2
				break 
			else
				if [ "$LINE" = "<h3>Fun Stuff</h3>" ]
				then
					echo "</div><div class=\"break\"><hr/></div><div id=\"Fun\">"
				fi
				if [ "$LINE" != "<hr/>" ]
				then
					echo "$LINE"
				fi
			fi
		fi
		if [ x"$BEGIN2" = x"1" ]
		then
			echo "$LINE"
			FOUND_DETAILS=1
		fi
	done < tmp.2
}


function get_more_details
{
	echo "<!-- looking up plot for \"$1\" which is \"$2\" in IMDB -->"
	echo "<div id=\"Plot\">"
	echo "<h3>Plot</h3>"
	echo "<div class=\"info\">"
	wget "http://www.imdb.com/title/$2/plotsummary" -O - 2> /dev/null > tmp.2
	while read LINE
	do
		BEGIN=`echo "$LINE" | grep -c "<p class=\"plotpar\">"`
		END=`echo "$LINE" | grep -c "<div class=\"info\">"`
		if [ x"$FOUND_PLOT" = x"1" ]
		then
			if [ x"$END" = x"1" ]
			then
				echo "<!-- Got to end of plot data -->"
				break 1
			else
				if [ "$LINE" != "<hr/>" ]
				then
					echo "$LINE"
				fi
			fi
		fi
		if [ x"$BEGIN" = x"1" ]
		then
			FOUND_PLOT=1
		fi
	done < tmp.2
	echo "</div>"
	echo "</div>"

	echo "<!-- looking up synopsis for \"$1\" which is \"$2\" in IMDB -->"
	echo "<div class=\"break\"><hr/></div>"
	echo "<div id=\"Synopsis\">"
	echo "<h3>Synopsis</h3>"
	echo "<div class=\"info\">"
	wget "http://www.imdb.com/title/$2/synopsis" -O - 2> /dev/null > tmp.2
	while read LINE
	do
		BEGIN=`echo "$LINE" | grep -c "<div id=\"swiki\.2\.1\">"`
		END=`echo "$LINE" | grep -c "</div>"`
		if [ x"$FOUND_SYNOPSIS" = x"1" ]
		then
			if [ x"$END" = x"1" ]
			then
				echo "<!-- Got to end of synopsis data -->"
				break 1
			else
				echo "$LINE"
			fi
		fi
		if [ x"$BEGIN" = x"1" ]
		then
			FOUND_SYNOPSIS=1
		fi
	done < tmp.2
	echo "</div>"
	echo "</div>"
}




TITLE=`lookup_title "$1"`
get_basic_details "$1" "$TITLE" | sed "s/href=\"\//href=\"http:\/\/www.imdb.com\//g"
get_more_details "$1" "$TITLE" | sed "s/href=\"\//href=\"http:\/\/www.imdb.com\//g"
echo "</td></tr></table></center>"
echo "</body></html>"
rm tmp.1 tmp.2