annotate teh-lol.pl @ 3:6c34daa0afb0

Mimic lolling more subtly, delay lol reply
author Jordi Gutiérrez Hermoso <jordigh@gmail.com>
date Wed, 12 Aug 2009 18:24:52 -0500
parents 34a80b4f5e34
children 64eeadb27362
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
1 #Copyright © 2009 Jordi Gutiérrez Hermoso
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
2 #
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
3 #teh-lol.pl is free software: you can redistribute it and/or modify
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
4 #it under the terms of the GNU General Public License as published by
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
5 #the Free Software Foundation, either version 3 of the License, or
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
6 #(at your option) any later version.
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
7 #
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
8 #This program is distributed in the hope that it will be useful,
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
9 #but WITHOUT ANY WARRANTY; without even the implied warranty of
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
10 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
11 #GNU General Public License for more details.
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
12 #
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
13 #You should have received a copy of the GNU General Public License
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
14 #along with this program. If not, see <http://www.gnu.org/licenses/>.
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
15
3
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
16 Xchat::register('teh lol', '0.1.3', 'lols back');
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
17
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
18 Xchat::hook_print('Channel Message', \&check_lol);
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
19
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
20 my %timestamp;
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
21
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
22 sub check_lol {
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
23 my $chan = Xchat::get_info("channel");
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
24
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
25 if ($_[0][1] =~ /\b(lo+l)\b/i) {
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
26
3
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
27 my $lol = $1;
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
28
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
29 my $relol;
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
30
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
31 #Mimic long lols
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
32 if (length $lol > 3 ) {
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
33 my $numos = int rand(3);
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
34 $numos += 3;
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
35 $relol = "l".("o" x $numos)."l";
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
36 }
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
37 else {
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
38 $relol = "lol";
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
39 }
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
40
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
41 sleep(rand(5));
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
42
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
43 if (time - $timestamp{$chan} > 59 or
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
44 undef $timestamp{$chan}
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
45 ) {
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
46
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
47 #Delay the response a little, for maximum annoyance.
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
48 sleep (rand(5)+2);
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
49
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
50 Xchat::command("say $1");
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
51 }
6c34daa0afb0 Mimic lolling more subtly, delay lol reply
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents: 2
diff changeset
52
0
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
53 $timestamp{$chan} = time;
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
54 }
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
55 return Xchat::EAT_NONE;
25377c6b6550 Per-channel timestamps
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
diff changeset
56 }