-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathszotar.pl
57 lines (46 loc) · 1.2 KB
/
szotar.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
use strict;
use Irssi;
my $ltime = time;
my %szotar = (
);
my $lastreload = 0;
sub reload {
%szotar = ();
system("cd ~/hejesirssi; git pull >/dev/null 2>&1");
open my $in, '<', '/home/web/hejesirssi/lista.dat' or print "Can't read file: $!";
my $i = 0;
while (<$in>) {
m/^(.*) => (.*)$/;
$szotar{$1} = $2;
$i++;
}
$lastreload = time;
# print "$i word pair loaded.\n";
}
reload();
sub event_pub {
my ($server, $data, $nick, $address) = @_;
Irssi::signal_continue($server, $data, $nick, $address);
my ($target, $msg) = split(/ :/, $data, 2);
my $ctime = time;
return if ($ctime - $ltime < 2);
$msg =~ s/\x03\d?\d?(,\d?\d?)?|\x02|\x1f|\x16|\x06|\x07//g;
$target = $nick if($target !~ /^[!&#+]/);
reload() if ($lastreload + 600 < $ctime or $msg =~ m/^\.reload( szotar)?$/);
my $text = "";
foreach my $key (keys %szotar) {
if($msg =~ m/(^|\s)$key($|\s|[,:;?!])/) {
if ($text eq "") {
$text = "$nick: [helyesen] ${szotar{$key}}";
}
else {
$text .= ", ${szotar{$key}}";
}
}
}
return if ($text eq "");
$ltime = $ctime;
$server->command("msg $target $text");
return;
}
Irssi::signal_add_last("event privmsg", "event_pub");