This is the original version of the compressed code snippet
which I just accidentially posted under 'Code Obfuscation'.
It accepts one argument, searches the Internet Movie DataBase for this string, and returns the full title + rating of this movie.
my $string = shift;
getIMDB($string);
sub getIMDB($){
use LWP;
use LWP::Simple;
sub LWP::UserAgent::redirect_ok { 1 };
# LWP::Debug::level('+') ;
$ua = new LWP::UserAgent;
$ua->agent("Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; Dig
+Ext)");
$req = new HTTP::Request POST => 'http://www.imdb.com/Find';
$req->content_type('application/x-www-form-urlencoded');
$req->content('for='. $string . '&select=All');
my $res = $ua->request($req);
if ($res->is_success) {
my $c = $res->content;
my ($nr,$title,$rating);
#</P><OL><LI><A HREF="/Title?0138704">Pi (1998)</A>
if($c =~ /<\/P><OL><LI><A HREF="\/Title\?(\d+)">.+?<\/
+A>/i){
$nr = $1;
print "Found '$string': $nr, retrieving page.\
+n";
$c = get("http://www.imdb.com/Title?$nr");
}
# <TITLE>Virgin Suicides, The (1999)</TITLE>
# <BASE HREF="http://us.imdb.com/Title?0159097">
if($c =~ /<BASE HREF="http:\/\/.+?\/Title\?(\d+)\">/i)
+{
$nr = $1;
($title,$rating) = getstuff($c);
}elsif($c =~ /We\'re Sorry/){
$nr = '0';
$title = 'Unknown movie';
$rating = 0;
}else{
print "Unhandled:\n$c\n";
exit;
}
print "$title ($nr) -> $rating\n";
} else {
print "Bad luck this time\n";
}
}
sub getstuff
{
my($contents) = shift;
my($title,$rating);
$_ = $contents;
if(/<TITLE>(.+?)<\/TITLE>/i){
$title = $1;
}
if(/<B>([\d\.]+)<\/B>\/\d+/i){
$rating = $1;
}else{
$rating = "(no rating available)";
}
return($title,$rating);
}