From: bw1 Date: Thu, 14 Jun 2018 18:57:12 +0000 (+0200) Subject: [imdb] update connection to the website X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=f908292a0a49b37dafa19ffe10a21f32fbbda2c8;p=irssi-scripts.irssi.org.git [imdb] update connection to the website --- diff --git a/scripts/imdb.pl b/scripts/imdb.pl index b23d65c..cf5fca7 100644 --- a/scripts/imdb.pl +++ b/scripts/imdb.pl @@ -1,25 +1,26 @@ +use strict; use Irssi; use LWP::UserAgent; -use strict; +use HTML::Entities; use vars qw($VERSION %IRSSI $cache); -$VERSION = '1.01'; +$VERSION = '1.02'; %IRSSI = ( authors => 'Eric Jansen', contact => 'chaos@sorcery.net', name => 'imdb', description => 'Automatically lookup IMDB-numbers in nicknames', license => 'GPL', - modules => 'LWP::UserAgent', + modules => 'LWP::UserAgent HTML::Entities', url => 'http://xyrion.org/irssi/', - changed => 'Sat Mar 1 12:39:49 CET 2003' + changed => '2018-06-14' ); my $ua = new LWP::UserAgent; $ua->agent('Irssi; ' . $ua->agent); -# Set the timeout to one second, so it won't freeze the client too long on laggy connections -$ua->timeout(1); +# Set the timeout to five second, so it won't freeze the client too long on laggy connections +$ua->timeout(5); sub event_nickchange { @@ -41,16 +42,22 @@ sub event_nickchange { else { # Fetch the movie detail page - my $req = new HTTP::Request(GET => "http://us.imdb.com/Title?$id"); + my $req = new HTTP::Request(GET => "http://us.imdb.com/title/tt$id"); my $res = $ua->request($req); # Get the title and year from the fetched page - if($res->is_success && $res->content =~ /(.+?) \((\d+)\)<\/title>/) { + if($res->is_success + && $res->content =~ /<title>(.+?) \((.+)\).*<\/title>/) { + + # https://www.imdb.com/title/tt1234567/ + # <title>"So You Think You Can Dance" The Top 14 Perform (TV Episode 2008) - IMDb + # https://www.imdb.com/title/tt0234567/ + # The Ranchman's Nerve (1911) - IMDb my ($title, $year) = ($1, $2); # Decode special characters in the title - $title =~ s/&#(\d+);/pack('U*', $1)/eg; + $title= decode_entities($title); # Print it $channel->printformat(MSGLEVEL_CRAP, 'imdb_lookup', $old_nick, $title, $year);