]> git.vpit.fr Git - perl/scripts/xchat.git/blob - hl.pl
Rename %words to %hl
[perl/scripts/xchat.git] / hl.pl
1 package Xchat::VPIT::Highlight;
2
3 use strict;
4 use warnings;
5
6 use Xchat qw/:all/;
7
8 use lib get_info 'xchatdir';
9 use Xchat::XPI;
10 use Xchat::XPI::Events qw/filter/;
11
12 our $VERSION = '0.02';
13
14 my $ph;
15
16 sub guihl {
17  command 'GUI FLASH';
18  command 'GUI COLOR 3';
19 }
20
21 hook_print 'Private Message to Dialog', sub { guihl; return EAT_NONE };
22
23 my %hl = (
24  '#cpantesters' => [ qw/
25     Acme-CPANAuthors-You-re_using
26     B-RecDeparse
27     CPANPLUS-Dist-Gentoo
28     Lexical-Types
29     Linux-SysInfo
30     MorseSignals
31     Perl-Critic-Policy-Dynamic-NoIndirect
32     Regexp-Wildcards
33     Scalar-Vec-Util
34     Scope-Upper
35     Sub-Nary
36     Sub-Prototype-Util
37     Test-Valgrind
38     Thread-Cleanup
39     Variable-Magic
40     indirect-
41     rgit-
42     subs-auto
43     with-
44   / ],
45 );
46
47 for (keys %hl) {
48  my $rx = '(?:' . join('|', @{$hl{$_}}) . ')';
49  $hl{$_} =  qr/$rx/;
50 }
51
52 filter 'Channel Action' => sub {
53  my $chan = lc get_info 'channel';
54  if ($hl{$chan} and $_[1] =~ /$hl{$chan}/) {
55   guihl;
56   1;
57  } else {
58   0;
59  }
60 } => 'Channel Action Hilight';
61
62 $ph = new Xchat::XPI name   => 'Smart highlighting',
63                      tag    => 'HL',
64                      desc   => 'Highlight on private messages',
65                      author => 'Vincent Pit (VPIT)',
66                      email  => 'perl@profvince.com',
67                      url    => 'http://www.profvince.com';
68  
69 1;
70