annotate irssi/scripts/queryresume.pl @ 148:4e92ca6c779a

add irssi conf
author zegervdv <zegervdv@me.com>
date Sat, 18 Oct 2014 10:06:58 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
148
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
1 # QueryResume by Stefan Tomanek <[email protected]>
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
2 #
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
3 use strict;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
4
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
5 use vars qw($VERSION %IRSSI);
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
6 $VERSION = '2003021201';
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
7 %IRSSI = (
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
8 authors => 'Stefan \'tommie\' Tomanek',
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
9 contact => '[email protected]',
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
10 name => 'QueryResume',
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
11 description => 'restores the last lines of a query on re-creation',
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
12 license => 'GPLv2',
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
13 modules => 'Date::Format File::Glob',
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
14 changed => $VERSION,
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
15 );
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
16
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
17 use Irssi 20020324;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
18 use Date::Format;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
19 use File::Glob ':glob';
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
20
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
21 sub draw_box ($$$$) {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
22 my ($title, $text, $footer, $colour) = @_;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
23 my $box = '';
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
24 $box .= '%R,--[%n%9%U'.$title.'%U%9%R]%n'."\n";
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
25 foreach (split(/\n/, $text)) {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
26 $box .= '%R|%n '.$_."\n";
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
27 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
28 $box .= '%R`--<%n'.$footer.'%R>->%n';
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
29 $box =~ s/%.//g unless $colour;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
30 return $box;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
31 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
32
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
33 sub sig_window_item_new ($$) {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
34 my ($win, $witem) = @_;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
35 return unless (ref $witem && $witem->{type} eq 'QUERY');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
36 my @data;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
37 my $filename = Irssi::settings_get_str('autolog_path');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
38 my $servertag = $witem->{server}->{tag};
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
39 my $name = lc $witem->{name};
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
40 $filename =~ s/(\$tag|\$1)/$servertag/g;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
41 $filename =~ s/\$0/$name/g;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
42 my @lt = localtime(time);
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
43 my $zone;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
44 $filename = strftime($filename, @lt, $zone);
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
45 $filename =~ s/(\[|\])/\\$1/g;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
46 local *F;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
47 open(F, "<".bsd_glob($filename));
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
48 my $lines = Irssi::settings_get_int('queryresume_lines');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
49 foreach (<F>) {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
50 unless (/^--- Log/) {
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
51 push(@data, $_);
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
52 shift(@data) if (@data > $lines);
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
53 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
54 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
55 my $text;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
56 $text .= $_ foreach @data;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
57 $text =~ s/%/%%/g;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
58 $witem->print(draw_box('QueryResume', $text, $filename, 1), MSGLEVEL_CLIENTCRAP) if $text;
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
59 }
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
60
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
61 Irssi::settings_add_int($IRSSI{name}, 'queryresume_lines', 10);
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
62
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
63 Irssi::signal_add('window item new', 'sig_window_item_new');
4e92ca6c779a add irssi conf
zegervdv <zegervdv@me.com>
parents:
diff changeset
64