1 # QueryResume by Stefan Tomanek <stefan@pico.ruhr.de>
5 use vars qw($VERSION %IRSSI);
6 $VERSION = '2003021201';
8 authors => 'Stefan \'tommie\' Tomanek',
9 contact => 'stefan@pico.ruhr.de',
10 name => 'QueryResume',
11 description => 'restores the last lines of a query on re-creation',
13 modules => 'Date::Format File::Glob',
19 use File::Glob ':glob';
22 my ($title, $text, $footer, $colour) = @_;
24 $box .= '%R,--[%n%9%U'.$title.'%U%9%R]%n'."\n";
25 foreach (split(/\n/, $text)) {
26 $box .= '%R|%n '.$_."\n";
28 $box .= '%R`--<%n'.$footer.'%R>->%n';
29 $box =~ s/%.//g unless $colour;
33 sub sig_window_item_new ($$) {
34 my ($win, $witem) = @_;
35 return unless (ref $witem && $witem->{type} eq 'QUERY');
37 my $filename = Irssi::settings_get_str('autolog_path');
38 my $servertag = $witem->{server}->{tag};
39 my $name = lc $witem->{name};
40 $filename =~ s/(\$tag|\$1)/$servertag/g;
41 $filename =~ s/\$0/$name/g;
42 my @lt = localtime(time);
44 $filename = strftime($filename, @lt, $zone);
45 $filename =~ s/(\[|\])/\\$1/g;
47 open(F, "<".bsd_glob($filename));
48 my $lines = Irssi::settings_get_int('queryresume_lines');
52 shift(@data) if (@data > $lines);
56 $text .= $_ foreach @data;
58 $witem->print(draw_box('QueryResume', $text, $filename, 1), MSGLEVEL_CLIENTCRAP) if $text;
61 Irssi::settings_add_int($IRSSI{name}, 'queryresume_lines', 10);
63 Irssi::signal_add('window item new', 'sig_window_item_new');