html/twprompt.pl


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