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 16use strict; 17use DBI; 18use Irssi; 19use Irssi::Irc; 20 21use 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 33my $dsn = 'DBI:mysql:ircurl:localhost'; 34my $db_user_name = 'tunnus'; 35my $db_password = 'salakala'; 36 37sub cmd_logurl { 38 my ($server, $data, $nick, $mask, $target) = @_; 39 my $d = $data; 40 if (($d =~ /(.{1,2}tp\:\/\/.+)/) or ($d =~ /(www\..+)/)) { 41 db_insert($nick, $target, $1); 42 } 43 return 1; 44} 45 46sub cmd_own { 47 my ($server, $data, $target) = @_; 48 return cmd_logurl($server, $data, $server->{nick}, "", $target); 49} 50sub cmd_topic { 51 my ($server, $target, $data, $nick, $mask) = @_; 52 return cmd_logurl($server, $data, $nick, $mask, $target); 53} 54 55sub 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 63Irssi::signal_add_last('message public', 'cmd_logurl'); 64Irssi::signal_add_last('message own_public', 'cmd_own'); 65Irssi::signal_add_last('message topic', 'cmd_topic'); 66 67Irssi::print("URL logger by lite/nchip loaded."); 68 69 70