diff options
| author | ailin-nemui | 2017-04-24 10:08:39 +0200 | 
|---|---|---|
| committer | GitHub | 2017-04-24 10:08:39 +0200 | 
| commit | 010936bf1c6eeaaca75dc6de0a798dc77065d332 (patch) | |
| tree | ba9b271486de771fa834e3372bf247546d4b648e /scripts | |
| parent | 56657dd80b97037545b26b89d8da6c3b823a8833 (diff) | |
| parent | 760ec3ff2cef6f09087caccec5e56c6188c6a6b3 (diff) | |
| download | scripts.irssi.org-010936bf1c6eeaaca75dc6de0a798dc77065d332.tar.bz2 | |
Merge pull request #400 from mh-source/master
mh_sbuserinfo.pl v1.06
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/mh_sbuserinfo.pl | 53 | 
1 files changed, 46 insertions, 7 deletions
| diff --git a/scripts/mh_sbuserinfo.pl b/scripts/mh_sbuserinfo.pl index c9ee211..0a8eb9c 100644 --- a/scripts/mh_sbuserinfo.pl +++ b/scripts/mh_sbuserinfo.pl @@ -1,8 +1,8 @@  ##############################################################################  # -# mh_sbuserinfo.pl v1.05 (20161106) +# mh_sbuserinfo.pl v1.06 (20170424)  # -# Copyright (c) 2015, 2016  Michael Hansen +# Copyright (c) 2015-2017  Michael Hansen  #  # Permission to use, copy, modify, and distribute this software  # for any purpose with or without fee is hereby granted, provided @@ -20,7 +20,7 @@  #  ##############################################################################  # -# statusbar item that shows users and limit info in channels +# statusbar item that shows user count (opers, ops, halfops, voice and total) and limit info (with opless/limit warning) in channels  #  # displays in the statusbar the number of users and the limit of the channel,  # with several settings for finetuning: @@ -30,6 +30,11 @@  # "(<limitusers>)" shows the difference between the limit and current  # users (this can be negative if the limit is lower than users)  # +# (if you do not already have another script running a periodical who on channels, +# you will need one (autowho.pl from irssi.org for example). otherwise oper/away +# counts will not update correctly (if you do not use oper/away details you can ignore +# this)) +#  # setting mh_sbuserinfo_format_group_begin (default '(') and  # setting mh_sbuserinfo_format_group_end'  (default ')'); change the characters grouping  # details @@ -43,16 +48,18 @@  #  # setting mh_sbuserinfo_show_details (default ON): enable/disable showing a  # detailed breakout of users into opers, ops, halfops, voice and normal +# (further customisable with _show_details_*)  #  # setting mh_sbuserinfo_show_details_mode (default ON): enable/disable  # prefixing opers, ops, halfops and voice with *@%+ when details are enabled  # +# setting mh_sbuserinfo_format_mode_away  (default 'z'),  # setting mh_sbuserinfo_format_mode_oper  (default '*'),  # setting mh_sbuserinfo_format_mode_op    (default '@'),  # setting mh_sbuserinfo_format_mode_ho    (default '%%'),  # setting mh_sbuserinfo_format_mode_vo    (default '+') and  # setting mh_sbuserinfo_format_mode_other (default ''): change the mode prefix -# for each of oper, op, halfdop, voice and others +# for each of away, oper, op, halfdop, voice and others  #  # setting mh_sbuserinfo_show_details_halfop (default OFF): enable/disable  # showing halfops when details are enabled @@ -60,6 +67,9 @@  # setting mh_sbuserinfo_show_details_oper (default ON): enable/disable  # showing opers when details are enabled  # +# setting mh_sbuserinfo_show_details_away (default ON): enable/disable +# showing users away when details are enabled +#  # setting mh_sbuserinfo_show_details_difference (default ON): enable/disable  # showing the "(<limitusers>)"  # @@ -86,6 +96,11 @@  #  # history:  # +#	v1.06 (20170424) +#		added 'sbitems' to irssi header for better scriptassist.pl support (github issue #1) +#		added _show_details_away/_format_mode_away and supporting code +#		some description and documentation changes +#  #	v1.05 (20161106)  #		added setting _show_details_oper and supporting code  #		added setting _format_sep and supportingf code @@ -94,22 +109,27 @@  #		added setting _format_mode_oper, _format_mode_op, _format_mode_ho, _format_mode_vo and _format_mode_other, and supporting code  #		added settting _show_warning_limit_difference and supporting code (changing _show_warning_limit_percent behavior)  #		changed default of _show_warning_limit_percent from 95 to 0 +#  #	v1.04 (20151225)  #		added setting _show_details_difference and supporting code  #		changed _show_warning_limit_percent default from 90 to 95  #		added changed field to irssi header  #		added a few comments +#  #	v1.03 (20151201)  #		added setting _show_prefix and supporting code  #		changed setting _show_details_mode default to ON  #		updated documentation +#  #	v1.02 (20151127)  #		only show item when channel is synced  #		cleaned out redundant code +#  #	v1.01 (20151127)  #		call statusbar_redraw directly in signals  #		now using elsif  #		removed timeout on load +#  #	v1.00 (20151126)  #		initial release  # @@ -127,16 +147,17 @@ use strict;  use Irssi 20100403;  use Irssi::TextUI; -our $VERSION = '1.05'; +our $VERSION = '1.06';  our %IRSSI   =  (  	'name'        => 'mh_sbuserinfo', -	'description' => 'statusbar item that shows users and limit info in channels', +	'description' => 'statusbar item that shows user count (opers, ops, halfops, voice and total) and limit info (with opless/limit warning) in channels',  	'license'     => 'BSD',  	'authors'     => 'Michael Hansen',  	'contact'     => 'mh on IRCnet #help',  	'url'         => 'http://scripts.irssi.org / https://github.com/mh-source/irssi-scripts', -	'changed'     => 'Sun Nov  6 20:37:05 CET 2016', +	'changed'     => 'Mon Apr 24 09:34:36 CEST 2017', +	'sbitems'     => 'mh_sbuserinfo',  );  ############################################################################## @@ -215,6 +236,7 @@ sub statusbar_userinfo  			my $users_ho       = 0;  			my $users_vo       = 0;  			my $users_oper     = 0; +			my $users_gone     = 0;  			my $warning_format = Irssi::settings_get_str('mh_sbuserinfo_warning_format');  			for my $nick ($channel->nicks()) @@ -238,6 +260,11 @@ sub statusbar_userinfo  				{  					$users_oper++;  				} + +				if ($nick->{'gone'}) +				{ +					$users_gone++; +				}  			}  			$format .= $users; @@ -254,6 +281,16 @@ sub statusbar_userinfo  				my $showmode = Irssi::settings_get_bool('mh_sbuserinfo_show_details_mode'); +				if (Irssi::settings_get_bool('mh_sbuserinfo_show_details_away')) +				{ +					if ($showmode) +					{ +						$format .= Irssi::settings_get_str('mh_sbuserinfo_format_mode_away'); +					} + +					$format .= $users_gone . $format_sep +				} +  				if (Irssi::settings_get_bool('mh_sbuserinfo_show_details_oper'))  				{  					if ($showmode) @@ -382,11 +419,13 @@ Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_warning_format',  Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_show_prefix',                   'Users: ');  Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_details_difference',       1);  Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_details_oper',             1); +Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_details_away',             1);  Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_format_sep',                    ':');  Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_format_div',                    '/');  Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_format_group_begin',            '(');  Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_format_group_end',              ')');  Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_format_mode_oper',              '*'); +Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_format_mode_away',              'z');  Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_format_mode_op',                '@');  Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_format_mode_ho',                '%%');  Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_format_mode_vo',                '+'); | 
