-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpat.pl
More file actions
executable file
·84 lines (67 loc) · 2.01 KB
/
Copy pathpat.pl
File metadata and controls
executable file
·84 lines (67 loc) · 2.01 KB
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
use strict;
use Irssi qw/signal_add/;
use Irssi::Irc;
use warnings;
use DBM::Deep;
use vars qw($VERSION %IRSSI);
$VERSION = "1";
%IRSSI = (
authors => '...',
contact => '...',
name => '...',
description => '...',
changed => 'yyyy-mm-dd hh:mm (UTC-8:00)',
);
sub open_db {
my $db_path = Irssi::get_irssi_dir . '/db/';
-e $db_path or mkdir $db_path;
my $db_file = $db_path . 'pats.db';
my $db = new DBM::Deep(file => $db_file);
return $db;
}
sub pat{
my ($server, $message, $nick, $address, $target) = @_;
my $channel = $server->channel_find($target);
my $pats_db = open_db();
if($nick =~ /amiigo\|\d+/i){ return; }
if($message =~ /^!pat \w+\s*$/i){
$message =~ s/^!pat\s//;
$message =~ s/\s+$//;
if($channel->nick_find($message)){
$server->command("ACTION $target pats " . $channel->nick_find($message)->{nick});
$pats_db->{$target}{lc($message)}++;
}else{
$server->command("MSG $target I dont see that user here, therefore i cannot pat them.");
}
}
}
sub pet{
my ($server, $message, $nick, $address, $target) = @_;
my $channel = $server->channel_find($target);
if($nick =~ /amiigo\|\d+/i){ return; }
if($message =~ /^!pet \w+$/i){
my (undef, $name) = split(' ', $message);
if($channel->nick_find($name)){
$server->command("ACTION $target pets $name");
}
}
}
sub pats{
my ($server, $message, $nick, $address, $target) = @_;
my $pats_db = open_db();
if($nick =~ /amiigo\|\d+/i){ return; }
if($message =~ /^!pats\s*\w*\s*$/i){
$message =~ s/^!pats\s*//;
$message =~ s/\s*$//;
if($pats_db->{$target}{lc($message)}){
$server->command("MSG $target $message has recieved " . $pats_db->{$target}{$message} . " pats.");
}elsif($message eq ""){
$server->command("MSG $target $nick has recieved " . $pats_db->{$target}{$nick} . " pats");
}else{
$server->command("MSG $target I have no recorded pats for $message in $target.");
}
}
}
signal_add('message public', \&pat);
signal_add('message public', \&pet);
signal_add('message public', \&pats);