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");