irssi: update url_log.pl
authorMatthew Mondor <mmondor@pulsar-zone.net>
Sat, 11 Feb 2017 06:07:00 +0000 (06:07 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Sat, 11 Feb 2017 06:07:00 +0000 (06:07 +0000)
mmsoftware/irssi/url_log.pl

index d41f763..8bf7f08 100644 (file)
@@ -17,6 +17,17 @@ use Irssi;
 use Irssi::Irc;
 use vars qw($VERSION %IRSSI);
 
+$VERSION = "2.0";
+%IRSSI = (
+       authors     => "Matthew Mondor",
+       contact     => "mm_delete_software\@pulsar-zone.net",
+       name        => "url_log",
+       licence     => "BSD",
+       description => "Log URLs into PostgreSQL DB and keeps them up to one week",
+       changed     => "Sat Feb 11 22:02:47 EST 2017"
+);
+
+
 use DBI qw(:sql_types);
 use DBD::Pg qw(:pg_types);
 
@@ -46,16 +57,29 @@ sub db_log {
 }
 
 sub url_check {
-       my ($l) = @_;
-       if (($l =~ /(.{1,2}tp\:\/\/[^\s]+)/) or ($l =~ /(www\..+)/)) {
-               return $1;
+       my ($line) = @_;
+       my @words = split /\s+/, $line;
+       my @urls;
+
+       foreach my $word (@words) {
+               if ($word =~ /(.\:\/\/[^\s]+)/) {
+                       push(@urls, $word);
+               } elsif ($word =~ /(www\..+)/) {
+                       push(@urls, "http://" . $word);
+               } elsif (length($word) == 11 &&
+                        $word =~ /([a-zA-Z0-9_-]{11}$)/ &&
+                        $word =~ /[A-Z]/) {
+                       push(@urls,
+                           "https://www.youtube.com/watch?v=" . $word);
+               }
        }
-       return 0;
+
+       return @urls;
 }
 
 sub url_log {
        my ($server, $channel, $nick, $line) = @_;
-       if ((my $url = url_check($line))) {
+       foreach my $url (url_check($line)) {
                db_log($server, $channel, $nick, $url);
        }
 }