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