1use strict; 2use vars qw($VERSION %IRSSI); 3use Irssi; 4use Irssi::Irc; 5use Irssi::TextUI; 6 7my $instrut = 8 ".--------------------------------------------------.\n". 9 "| 1.) shell> mkdir ~/.irssi/scripts |\n". 10 "| 2.) shell> cp twprompt.pl ~/.irssi/scripts/ |\n". 11 "| 3.) shell> cp twprompt.pl ~/.irssi/scripts/ |\n". 12 "| 4.) shell> mkdir ~/.irssi/scripts/autorun |\n". 13 "| 5.) shell> ln -s ~/.irssi/scripts/twprompt.pl \\ |\n". 14 "| ~/.irssi/scripts/autorun/twprompt.pl |\n". 15 "| 6.) /sbar prompt remove prompt |\n". 16 "| 7.) /sbar prompt remove prompt_empty |\n". 17 "| 8.) /sbar prompt add -before input -priority 100 |\n". 18 "| -alignment left twprompt |\n". 19 "| 9.) /toggle twprompt_instruct and last /save |\n". 20 "|--------------------------------------------------|\n". 21 "| Options: Default: |\n". 22 "| /set twprompt_refresh <speed> 100 |\n". 23 "| /set twprompt_color_a <string> %%C |\n". 24 "| /set twprompt_color_b <string> %%c |\n". 25 "| /toggle twprompt_instruct |Startup instructions |\n". 26 "\`--------------------------------------------------'"; 27 28 29$VERSION = '1.00'; 30%IRSSI = ( 31 authors => 'John Engelbrecht', 32 contact => 'jengelbr@yahoo.com', 33 name => 'twprompt.pl', 34 description => 'BitchX\'s CrackRock3 animated prompt bar.', 35 sbitems => 'twprompt', 36 license => 'Public Domain', 37 changed => 'Wed Sep 29 02:58:28 CDT 2004', 38 url => 'http://irssi.darktalker.net'."\n", 39); 40 41my $twprompt_file = "$ENV{HOME}/.irssi/twprompt.data"; 42my $num = 1; 43my $jk=0; 44my $timeout; 45 46sub reload { Irssi::statusbar_items_redraw('twprompt'); } 47 48sub setup { 49 my $time = Irssi::settings_get_int('twprompt_refresh'); 50 Irssi::timeout_remove($timeout); 51 $timeout = Irssi::timeout_add($time, 'reload' , undef); 52} 53 54sub show { 55 my ($item, $get_size_only) = @_; 56 my $text = get(); 57 $item->default_handler($get_size_only, "{prompt ".$text."}", undef, 1); 58} 59 60sub get { 61 my $str = Irssi::active_win()->{active}->{name}; 62 $str = "Status" if($str eq ""); 63 my @chars = split //, $str; 64 my $total = $#chars; 65 my $text = ""; 66 my $col_a = Irssi::settings_get_str('twprompt_color_a'); 67 my $col_b = Irssi::settings_get_str('twprompt_color_b'); 68 for my $cx (0..$total) { 69 if($cx == ($num - 1)) { 70 $text.=$col_a.$chars[$cx]; 71 } else { 72 $text.=$col_b.$chars[$cx]; 73 } 74 } 75 if(!$jk) { 76 $jk=1; 77 return $text; 78 } 79 if($num <= ($total + 1)) { 80 $num++; 81 } 82 else { 83 $num = 1; 84 } 85 $jk=0; 86 return $text; 87} 88 89Irssi::statusbar_item_register('twprompt', '$0', 'show'); 90Irssi::settings_add_str('tech_addon', 'twprompt_color_b',"%c"); 91Irssi::settings_add_str('tech_addon', 'twprompt_color_a',"%C"); 92Irssi::settings_remove('twprompt_instruct'); 93Irssi::settings_add_bool('tech_addon', 'twprompt_instruct', 1); 94Irssi::settings_add_int('tech_addon', 'twprompt_refresh', 100); 95Irssi::signal_add('setup changed', 'setup'); 96$timeout = Irssi::timeout_add(Irssi::settings_get_int('twprompt_refresh'), 'reload' , undef); 97 98if(Irssi::settings_get_bool('twprompt_instruct')) { 99 print $instrut; 100 } 101