html/autowrap.pl
1 use strict;
2 use Text::Wrap;
3
4 use vars qw($VERSION %IRSSI);
5 $VERSION = '2007031900';
6 %IRSSI = (
7 authors => 'Bitt Faulk',
8 contact => 'lxsfx3h02@sneakemail.com',
9 name => 'autowrap',
10 description => 'Automatically wraps long sent messages into multiple shorter sent messages',
11 license => 'BSD',
12 url => 'none',
13 modules => 'Text::Wrap',
14 );
15
16 sub event_send_text () {
17 my ($line, $server_rec, $wi_item_rec) = @_;
18 my @shortlines;
19 if (length($line) <= 400) {
20 return;
21 } else {
22 # split line, recreate multiple "send text" events
23 local($Text::Wrap::columns) = 400;
24 @shortlines = split(/\n/,wrap('','',$line));
25 foreach (@shortlines) {
26 if ($_ >= 400) {
27 Irssi::print("autowrap: unable to split long line. sent as-is");
28 return;
29 }
30 }
31 foreach (@shortlines) {
32 Irssi::signal_emit('send text', $_, $server_rec, $wi_item_rec);
33 }
34 Irssi::signal_stop();
35 }
36 }
37
38 Irssi::signal_add_first('send text', "event_send_text");