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 }