use warnings; require LWP; my ($script_name, $script_version, $script_description) = ("URL-Title-Fetch", "0.2", "Automatically grabs, parses and prints title from URLs"); Xchat::register($script_name, $script_version, $script_description); Xchat::hook_print("Channel Message", sub { my ($nick, $text, $modechar) = @{$_[0]}; my @words=split " ",$text; foreach (@words) { if ( m/http|www\./) { if ( $_ =~ "www." and $_ !~ "http://" ) { $_="http://".$_;} my $request = HTTP::Request->new(GET => $_); my $ua = LWP::UserAgent->new; my $result = $ua->request($request); if ($result->is_success) { my $ct = $result->header("Content-Type"); if($ct =~ m/html|xml/ and $result ne '') { my $title = $result->title; Xchat::print("URL Title - $title"); } } else { Xchat::print("Invalid URL or no title"); } # !/\.(jpg|txt|png|gif|zip|rar|mp3|ogg|flac|wmv|mkv|mp4|avi|torrent|wav|aac)$/ } } return Xchat::EAT_NONE; });