summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormh2016-01-23 00:22:49 +0100
committermh2016-01-23 00:22:49 +0100
commit4ba0dde83a1804e9f583c88cf5bbe80d69ea48de (patch)
tree3e81a2b3fedea772b31040188204119d27da0289
parente939f179641ece928beb0b02ac95eb3eebf9098b (diff)
downloadscripts.irssi.org-4ba0dde83a1804e9f583c88cf5bbe80d69ea48de.tar.bz2
mh_sbuserinfo.pl v1.04
statusbar item that shows users and limit info in channels changes: 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
-rw-r--r--scripts/mh_sbuserinfo.pl36
1 files changed, 29 insertions, 7 deletions
diff --git a/scripts/mh_sbuserinfo.pl b/scripts/mh_sbuserinfo.pl
index 0f0724a..fde7ebc 100644
--- a/scripts/mh_sbuserinfo.pl
+++ b/scripts/mh_sbuserinfo.pl
@@ -1,6 +1,6 @@
##############################################################################
#
-# mh_sbuserinfo.pl v1.03 (20151201)
+# mh_sbuserinfo.pl v1.04 (20151225)
#
# Copyright (c) 2015 Michael Hansen
#
@@ -25,8 +25,10 @@
# displays in the statusbar the number of users and the limit of the channel,
# with several settings for finetuning:
#
-# default settings: [Users: <users>(@<users_op>:+<users_voice>:<users_rest>)/<limit>]
-# "/<limit>" will only show when there is a limit set
+# default settings: [Users: <users>(@<users_op>:+<users_voice>:<users_rest>)/<limit>(<limitusers>)]
+# "/<limit>(<limitusers>)" will only show when there is a limit set.
+# "(<limitusers>)" shows the difference between the limit and current
+# users (this can be negative if the limit is lower than users)
#
# setting mh_sbuserinfo_show_prefix (default 'Users: '): set/unset the prefix
# in the window item
@@ -40,13 +42,16 @@
# setting mh_sbuserinfo_show_details_halfop (default OFF): enable/disable
# showing halfops when details are enabled
#
+# setting mh_sbuserinfo_show_details_difference (default ON): enable/disable
+# showing the "(<limitusers>)"
+#
# setting mh_sbuserinfo_show_warning_opless' (default ON): change the colour
# of "<users_op>" if channel is opless
#
# setting mh_sbuserinfo_show_warning_limit (default ON): change the colour
# of "<limit>" if channel is above, at or close to the limited amount of users
#
-# setting mh_sbuserinfo_show_warning_limit_percent (default 90): number in
+# setting mh_sbuserinfo_show_warning_limit_percent (default 95): number in
# percent (0-100) of users relative to the limit before a limit warning is
# triggered
#
@@ -58,6 +63,11 @@
# see '/help statusbar' for more details and do not forget to '/save'
#
# history:
+# 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
@@ -86,7 +96,7 @@ use strict;
use Irssi 20100403;
use Irssi::TextUI;
-our $VERSION = '1.03';
+our $VERSION = '1.04';
our %IRSSI =
(
'name' => 'mh_sbuserinfo',
@@ -95,6 +105,7 @@ our %IRSSI =
'authors' => 'Michael Hansen',
'contact' => 'mh on IRCnet #help',
'url' => 'http://scripts.irssi.org / https://github.com/mh-source/irssi-scripts',
+ 'changed' => 'Fri Dec 25 17:14:34 CET 2015',
);
##############################################################################
@@ -114,6 +125,9 @@ sub statusbar_redraw
if (ref($channelactive) eq 'Irssi::Irc::Channel')
{
+ #
+ # only redraw if triggered by active channel
+ #
if (lc($channelactive->{'server'}->{'tag'}) eq lc($channel->{'server'}->{'tag'}))
{
if (lc($channel->{'name'}) eq lc($channelactive->{'name'}))
@@ -211,7 +225,9 @@ sub statusbar_userinfo
if (Irssi::settings_get_bool('mh_sbuserinfo_show_details_halfop'))
{
+ #
# add halfops to ops so users calculation below matches
+ #
$users_op = $users_op + $users_ho;
if ($showmode)
@@ -257,6 +273,11 @@ sub statusbar_userinfo
}
}
+ if (Irssi::settings_get_bool('mh_sbuserinfo_show_details_difference'))
+ {
+ $limit = $limit . '(' . ($limit - $users) . ')';
+ }
+
$format = $format . $limit . '%n';
}
}
@@ -276,9 +297,10 @@ Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_details_mode',
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_int( 'mh_sbuserinfo', 'mh_sbuserinfo_show_warning_limit_percent', 95);
Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_warning_format', '%Y');
-Irssi::settings_add_str('mh_sbuserinfo', 'mh_sbuserinfo_show_prefix', 'Users: ');
+Irssi::settings_add_str( 'mh_sbuserinfo', 'mh_sbuserinfo_show_prefix', 'Users: ');
+Irssi::settings_add_bool('mh_sbuserinfo', 'mh_sbuserinfo_show_details_difference', 1);
Irssi::statusbar_item_register('mh_sbuserinfo', '', 'statusbar_userinfo');