2009-12-09 02:08:12 +01:00
|
|
|
#!/usr/bin/perl -w -I /home/msmud/lib/lib/perl5/site_perl/5.10.0/
|
|
|
|
|
|
|
|
# Quick and dirty by :pragma
|
|
|
|
|
|
|
|
use LWP::UserAgent;
|
2010-06-27 04:52:38 +02:00
|
|
|
use HTML::Entities;
|
2009-12-09 02:08:12 +01:00
|
|
|
|
|
|
|
my ($text);
|
|
|
|
|
|
|
|
if ($#ARGV <= 0)
|
|
|
|
{
|
|
|
|
print "Usage: !title nick URL\n";
|
2010-03-22 08:33:44 +01:00
|
|
|
exit;
|
2009-12-09 02:08:12 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
my $nick = shift(@ARGV);
|
|
|
|
$arguments = join("%20", @ARGV);
|
|
|
|
|
2010-03-22 08:33:44 +01:00
|
|
|
exit if($arguments =~ m/imagebin/i);
|
|
|
|
exit if($arguments =~ m/\/wiki\//i);
|
2010-06-27 04:52:38 +02:00
|
|
|
exit if($arguments =~ m/github.com/i);
|
|
|
|
exit if($arguments =~ m/wiki.osdev.org/i);
|
2010-03-22 08:33:44 +01:00
|
|
|
exit if($arguments =~ m/wikipedia.org/i);
|
|
|
|
exit if($arguments =~ m/everfall.com/i);
|
2010-06-27 04:52:38 +02:00
|
|
|
exit if($arguments =~ m/\/paste\//i);
|
2010-03-22 08:33:44 +01:00
|
|
|
exit if($arguments =~ m/pastie/i);
|
2010-06-27 04:52:38 +02:00
|
|
|
exit if($arguments =~ m/ideone.com/i);
|
|
|
|
exit if($arguments =~ m/codepad.org/i);
|
|
|
|
exit if($arguments =~ m/^http\:\/\/past(e|ing)\./i);
|
|
|
|
exit if($arguments =~ m/paste.*\.(?:com|org|net|ch|ca|uk|info)/i);
|
|
|
|
exit if($arguments =~ m/pasting.*\.(?:com|org|net|ca|uk|info|ch)/i);
|
2009-12-09 02:08:12 +01:00
|
|
|
|
|
|
|
my $ua = LWP::UserAgent->new;
|
|
|
|
$ua->agent("Mozilla/5.0");
|
|
|
|
$ua->max_size(200 * 1024);
|
|
|
|
|
|
|
|
my $response = $ua->get("$arguments");
|
|
|
|
|
|
|
|
if (not $response->is_success)
|
|
|
|
{
|
|
|
|
#print "Couldn't get link.\n";
|
2010-03-22 08:33:44 +01:00
|
|
|
die "Couldn't get link: $arguments";
|
2009-12-09 02:08:12 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
$text = $response->content;
|
|
|
|
|
|
|
|
if($text =~ m/<title>(.*?)<\/title>/msi)
|
|
|
|
{
|
|
|
|
$t = $1;
|
|
|
|
} else {
|
|
|
|
#print "No title for link.\n";
|
2010-03-22 08:33:44 +01:00
|
|
|
exit;
|
2009-12-09 02:08:12 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
my $quote = chr(226) . chr(128) . chr(156);
|
|
|
|
my $quote2 = chr(226) . chr(128) . chr(157);
|
|
|
|
my $dash = chr(226) . chr(128) . chr(147);
|
|
|
|
|
|
|
|
$t =~ s/\s+/ /g;
|
|
|
|
$t =~ s/^\s+//g;
|
|
|
|
$t =~ s/\s+$//g;
|
|
|
|
$t =~ s/<[^>]+>//g;
|
|
|
|
$t =~ s/<\/[^>]+>//g;
|
|
|
|
$t =~ s/$quote/"/g;
|
|
|
|
$t =~ s/$quote2/"/g;
|
|
|
|
$t =~ s/$dash/-/g;
|
|
|
|
$t =~ s/"/"/g;
|
2010-03-22 08:33:44 +01:00
|
|
|
$t =~ s/“/"/g;
|
|
|
|
$t =~ s/”/"/g;
|
2009-12-09 02:08:12 +01:00
|
|
|
$t =~ s/&/&/g;
|
|
|
|
$t =~ s/&nsb;/ /g;
|
|
|
|
$t =~ s/'/'/g;
|
|
|
|
$t =~ s/</</g;
|
|
|
|
$t =~ s/>/>/g;
|
2010-06-27 04:52:38 +02:00
|
|
|
$t =~ s/«/<</g;
|
|
|
|
$t =~ s/»/>>/g;
|
|
|
|
$t =~ s/>/>/g;
|
|
|
|
$t =~ s/•/-/g;
|
2009-12-09 02:08:12 +01:00
|
|
|
$t =~ s/<em>//g;
|
|
|
|
$t =~ s/<\/em>//g;
|
|
|
|
|
|
|
|
if(length $t > 150) {
|
|
|
|
$t = substr($t, 0, 150);
|
|
|
|
$t = "$t [...]";
|
|
|
|
}
|
|
|
|
|
|
|
|
# $nick =~ s/^(.)(.*)/$1|$2/;
|
|
|
|
|
2010-06-27 04:52:38 +02:00
|
|
|
$t = decode_entities($t);
|
|
|
|
|
2009-12-09 02:08:12 +01:00
|
|
|
print "Title of $nick\'s link: $t\n";
|