html/mysqlurllogger.pl


   1 #
   2 # Logs URLs this script is just a hack. hack it to suit you
   3 # if you want to.
   4 #
   5 # table format;
   6 #
   7 #+-----------+---------------+------+-----+---------+-------+
   8 #| Field     | Type          | Null | Key | Default | Extra |
   9 #+-----------+---------------+------+-----+---------+-------+
  10 #| insertime | timestamp(14) | YES  |     | NULL    |       |
  11 #| nick      | char(10)      | YES  |     | NULL    |       |
  12 #| target    | char(255)     | YES  |     | NULL    |       |
  13 #| line      | char(255)     | YES  |     | NULL    |       |
  14 #+-----------+---------------+------+-----+---------+-------+
  15 
  16 
  17 use DBI;
  18 use Irssi;
  19 use Irssi::Irc;
  20 
  21 use vars qw($VERSION %IRSSI);
  22 
  23 $VERSION = "1.0";
  24 %IRSSI = (
  25         authors     => "Riku Voipio, lite",
  26         contact     => "riku.voipio\@iki.fi",
  27         name        => "myssqlurllogger",
  28         description => "logs url's to mysql database",
  29         license     => "GPLv2",
  30         url         => "http://nchip.ukkosenjyly.mine.nu/irssiscripts/",
  31     );
  32 
  33 $dsn = 'DBI:mysql:ircurl:localhost';
  34 $db_user_name = 'tunnus';
  35 $db_password = 'salakala';
  36 
  37 sub cmd_logurl {
  38 	my ($server, $data, $nick, $mask, $target) = @_;
  39         $d = $data;
  40         if (($d =~ /(.{1,2}tp\:\/\/.+)/) or ($d =~ /(www\..+)/)) {
  41 		db_insert($nick, $target, $1);
  42         }
  43 	return 1;
  44 }
  45 
  46 sub cmd_own {
  47 	my ($server, $data, $target) = @_;
  48 	return cmd_logurl($server, $data, $server->{nick}, "", $target);
  49 }
  50 sub cmd_topic {
  51 	my ($server, $target, $data, $nick, $mask) = @_;
  52 	return cmd_logurl($server, $data, $nick, $mask, $target);
  53 }
  54 
  55 sub db_insert {
  56 	my ($nick, $target, $line)=@_;
  57 	my $dbh = DBI->connect($dsn, $db_user_name, $db_password);
  58 	my $sql="insert into urlevent (insertime, nick, target,line) values (NOW()".",". $dbh->quote($nick) ."," . $dbh->quote($target) ."," . $dbh->quote($line) .")";
  59 	my $sth = $dbh->do($sql);
  60 	$dbh->disconnect();
  61 	}
  62 
  63 Irssi::signal_add_last('message public', 'cmd_logurl');
  64 Irssi::signal_add_last('message own_public', 'cmd_own');
  65 Irssi::signal_add_last('message topic', 'cmd_topic');
  66 
  67 Irssi::print("URL logger by lite/nchip loaded.");
  68 
  69