Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
scripts.irssi.org/scripts/mass_hilight_blocker.pl
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
62 lines (54 sloc)
2.12 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # disable hilighting of mass-hilights | |
| # (messages which contain a lot of nicknames) | |
| # | |
| # DESCRIPTION | |
| # sometimes a jester annoys a channel with a message | |
| # containing a lot of nicks that are in that channel. | |
| # this script prevents hilighting of a window in this | |
| # case. number of nicks in the message is user | |
| # configurable in the variable mass_highlight_threshold. | |
| # | |
| # CHANGELOG | |
| # * 01.05.2004 | |
| # fixed problems with nicks containing brackets | |
| # added comments, description and this changelog :) | |
| # * 30.05.2004 | |
| # first version of the script | |
| use strict; | |
| use Irssi; | |
| use vars qw($VERSION %IRSSI); | |
| $VERSION = "0.4"; | |
| %IRSSI = ( | |
| authors => "Uli Baumann", | |
| contact => "f-zappa\@irc-muenster.de", | |
| name => "mass_hilight_blocker", | |
| description => "Disables hilighting for messages containing a lot of nicknames", | |
| license => "GPL", | |
| changed => "Sun Nov 11 15:30:00 CET 2018", | |
| ); | |
| sub sig_printtext { | |
| my ($dest, $text, $stripped) = @_; # our parameters | |
| my $window = $dest->{window}; # where irssi wants to output | |
| my $num_nicks=-1; # don't count target's nick | |
| my $max_num_nicks=Irssi::settings_get_int('mass_hilight_threshold'); | |
| if ($dest->{level} & MSGLEVEL_HILIGHT)# we solely look at hilighted messages | |
| { | |
| my $server = $dest->{server}; # get server and channel for target | |
| my $channel = $server->channel_find($dest->{target}); | |
| foreach my $nick ($channel->nicks()) # walk through nicks | |
| { | |
| $nick = $nick->{nick}; | |
| if ($text =~ /\Q$nick/) # does line contain this nick? | |
| {$num_nicks++;} # then increase counter | |
| } | |
| if ($num_nicks>=($max_num_nicks)) # all criteria match? | |
| { | |
| $dest->{level} = MSGLEVEL_CLIENTCRAP; | |
| Irssi::signal_continue($dest, $text, $stripped); # continue with changed level | |
| $window->print('mass-hilighting in above message ('.$num_nicks.' nicks)',MSGLEVEL_CLIENTCRAP); | |
| } | |
| } | |
| } | |
| # tell irssi to use this and initialize variable if necessary | |
| Irssi::signal_add_first('print text', 'sig_printtext'); | |
| Irssi::settings_add_int('misc','mass_hilight_threshold',3); |