diff options
| author | mh | 2015-11-27 14:10:13 +0100 |
|---|---|---|
| committer | mh | 2015-11-27 14:10:13 +0100 |
| commit | 1b57d4efe283c3be448e40801fb24c196f4b334d (patch) | |
| tree | 270d627b80880f31b9ce5a67fd136e734a490a8b | |
| parent | 3f050b509be002a79420bb810febefefca4c0308 (diff) | |
| download | scripts.irssi.org-1b57d4efe283c3be448e40801fb24c196f4b334d.tar.bz2 | |
mh_sbuserinfo.pl v1.01
statusbar item that shows users and limit info in channels
changes:
call statusbar_redraw directly in signals
now using elsif
removed timeout on load
| -rw-r--r-- | scripts/mh_sbuserinfo.pl | 110 |
1 files changed, 32 insertions, 78 deletions
diff --git a/scripts/mh_sbuserinfo.pl b/scripts/mh_sbuserinfo.pl index f45e761..75089da 100644 --- a/scripts/mh_sbuserinfo.pl +++ b/scripts/mh_sbuserinfo.pl @@ -1,6 +1,6 @@ ############################################################################## # -# mh_sbuserinfo.pl v1.00 (20151126) +# mh_sbuserinfo.pl v1.01 (20151127) # # Copyright (c) 2015 Michael Hansen # @@ -20,7 +20,7 @@ # ############################################################################## # -# statusbar item that shows userinfo in channels +# statusbar item that shows users and limit info in channels # # displays in the statusbar the number of users and the limit of the channel, # with several settings for finetuning: @@ -55,6 +55,10 @@ # see '/help statusbar' for more details and do not forget to '/save' # # history: +# v1.01 (20151127) +# call statusbar_redraw directly in signals +# now using elsif +# removed timeout on load # v1.00 (20151126) # initial release # @@ -72,11 +76,11 @@ use strict; use Irssi 20100403; use Irssi::TextUI; -our $VERSION = '1.00'; +our $VERSION = '1.01'; our %IRSSI = ( 'name' => 'mh_sbuserinfo', - 'description' => 'statusbar item that shows userinfo in channels', + 'description' => 'statusbar item that shows users and limit info in channels', 'license' => 'BSD', 'authors' => 'Michael Hansen', 'contact' => 'mh on IRCnet #help', @@ -120,41 +124,6 @@ sub statusbar_redraw # ############################################################################## -sub signal_channel_sync_last -{ - my ($channel) = @_; - - statusbar_redraw($channel); -} - -sub signal_channel_mode_changed_last -{ - my ($channel, $setby) = @_; - - statusbar_redraw($channel); -} - -sub signal_nick_mode_changed_last -{ - my ($channel, $nick, $setby, $mode, $type) = @_; - - statusbar_redraw($channel); -} - -sub signal_nicklist_new_last -{ - my ($channel, $nick) = @_; - - statusbar_redraw($channel); -} - -sub signal_nicklist_remove_last -{ - my ($channel, $nick) = @_; - - statusbar_redraw($channel); -} - sub signal_setup_changed_last { statusbar_redraw(Irssi::active_win->{'active'}); @@ -199,19 +168,13 @@ sub statusbar_userinfo { $users_op++; - } else { - - if ($nick->{'halfop'}) - { - $users_ho++; - - } else { + } elsif ($nick->{'halfop'}) + { + $users_ho++; - if ($nick->{'voice'}) - { - $users_vo++; - } - } + } elsif ($nick->{'voice'}) + { + $users_vo++; } } @@ -269,9 +232,8 @@ sub statusbar_userinfo if ($setting_percent > 100) { $setting_percent = 100; - } - if ($setting_percent < 0) + } elsif ($setting_percent < 0) { $setting_percent = 0; } @@ -309,31 +271,23 @@ sub statusbar_userinfo # ############################################################################## -sub script_on_load -{ - Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_details', 1); - Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_details_mode', 0); - Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_details_halfop', 0); - Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_warning_opless', 1); - Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_warning_limit', 1); - Irssi::settings_add_int( 'mh_sbuserinfo', 'mh_sbuserinfo_show_warning_limit_percent', 90); - Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_warning_format', '%Y'); - - Irssi::statusbar_item_register('mh_sbuserinfo', undef, 'statusbar_userinfo'); - - Irssi::signal_add_last('channel sync', 'signal_channel_sync_last'); - Irssi::signal_add_last('channel mode changed', 'signal_channel_mode_changed_last'); - Irssi::signal_add_last('nick mode changed', 'signal_nick_mode_changed_last'); - Irssi::signal_add_last('nicklist new', 'signal_nicklist_new_last'); - Irssi::signal_add_last('nicklist remove', 'signal_nicklist_remove_last'); - Irssi::signal_add_last('setup changed', 'signal_setup_changed_last'); - Irssi::signal_add_last('window changed', 'signal_window_changed_last'); -} - -# -# start script in a timeout to avoid printing before irssis "loaded script" -# -Irssi::timeout_add_once(10, 'script_on_load', undef); +Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_details', 1); +Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_details_mode', 0); +Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_details_halfop', 0); +Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_warning_opless', 1); +Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_warning_limit', 1); +Irssi::settings_add_int( 'mh_sbuserinfo', 'mh_sbuserinfo_show_warning_limit_percent', 90); +Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_warning_format', '%Y'); + +Irssi::statusbar_item_register('mh_sbuserinfo', '', 'statusbar_userinfo'); + +Irssi::signal_add_last('channel sync', 'statusbar_redraw'); +Irssi::signal_add_last('channel mode changed', 'statusbar_redraw'); +Irssi::signal_add_last('nick mode changed', 'statusbar_redraw'); +Irssi::signal_add_last('nicklist new', 'statusbar_redraw'); +Irssi::signal_add_last('nicklist remove', 'statusbar_redraw'); +Irssi::signal_add_last('setup changed', 'signal_setup_changed_last'); +Irssi::signal_add_last('window changed', 'signal_window_changed_last'); 1; |
