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