#!/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