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
|
#!/usr/bin/perl -w
# resets window activity status
# by c0ffee
# - http://www.penguin-breeder.org/irssi/
#<scriptinfo>
use vars qw($VERSION %IRSSI);
use Irssi 20020120;
$VERSION = "0.13";
%IRSSI = (
authors => "c0ffee",
contact => "c0ffee\@penguin-breeder.org",
name => "Reset window activity status",
description => "Reset window activity status. defines command /act",
license => "Public Domain",
url => "http://www.penguin-breeder.org/irssi/",
changed => "Wed Jun 23 08:34:53 CEST 2004",
);
#</scriptinfo>
#
# /ACT [PUBLIC|ALL]
#
# /ACT without parameters marks windows as non-active where no
# public talk occured.
#
# /ACT PUBLIC also removes those where no nick hilight was triggered
#
# /ACT ALL sets all windows as non-active
sub cmd_act {
my ($data, $server, $channel) = @_;
if ($data eq "") {
$level = 1;
} elsif ($data =~ /^public$/i) {
$level = 2;
} elsif ($data =~ /^all$/i) {
$level = 3;
} else {
Irssi::signal_emit("error command", -3, $data);
return;
}
foreach (Irssi::windows()) {
if ($_->{data_level} <= $level) {
Irssi::signal_emit("window dehilight", $_);
}
}
}
my @arguments = ('public', 'all');
sub sig_complete ($$$$$) {
my ($list, $window, $word, $linestart, $want_space) = @_;
return unless $linestart =~ /^.act/;
foreach my $arg (@arguments) {
if ($arg =~ /^$word/i) {
$$want_space = 0;
push @$list, $arg;
}
}
Irssi::signal_stop();
}
Irssi::command_bind("act", "cmd_act");
Irssi::signal_add_first('complete word', \&sig_complete);
|