Here are some of the perl scripts I wrote for Irssi, a modular IRC client. Those scripts are also available from the Irssi scripts page.
All scripts include a script-info header as defined by Juerd in his proposal. If you encounter any problems with the scripts, please feel free to contact me about it. However, I won't take any responsibility for any damage caused directly or indirectly by these scripts... so, use them at your own risk.
By the way, I can often be found on the IRCNet, the SILCNet and the MoPo-IRC Server of my universities WLAN project always using the nick "c0ffee".
This script adds some usefull options and features to the three kick(ban) commands Irssi provides. These features include mainly (semi-) random ban reasons and matching nicks by different masks.
There were two versions of that script available. The old version is no longer available, only the new version (named from now on kicks.pl).
The script can be downloaded here. There are also some collections of kick reasons available, working with both versions. The new version requires a configuration file which is also available for download:
For kicks.pl you might want to modify the kicks.conf file to suit your needs. The script takes three options as default: -default, -topic and -none. Using the config file you can overwrite any of those and add other options. A line like this:
bofh ~/.irssi/kickreasons.bofh
adds the option -bofh which will use kickreasons from the file ~/.irssi/kickreasons.bofh. Using backticks programs can be used to generate kickreasons - have a look at the example configuration for this feature. Please note that expandos in kickreasons will be expanded, so you might need to escape them from your kickreasons.
This script provides the command /ls which takes a regular expression and displays any nick which matches the given regex. The matching is done against the full nick, i.e. including user name and host.
On the rare occassions (i.e. every weekend) when some kiddiots start to attack the IRCNet, it is sometimes usefull to change your nick every now and then to avoid getting collided of the network. And because i dislike constantly giving /nick commands I wrote a little script that does this for me.
The script has two commands, /nickmix and /stopmix. Both commands operate on the server the window you give the command in is assigned to. The command /nickmix takes one parameter, your nickname and a mask (i.e. nick/mask). The mask specifies the part of your nick, you wish to keep constant, for example nick/2 will keep "ni" and add two random characters. If you supply no parameter at all, information is displayed which nicks are mixed currently. Use /stopnick without any parameter to stop mixing your nick.
This is a script providing a /page command as the one spifff coded for the mIRC client. Besides the fact that I don't really care for compatibility with some proprietary crapware, it's just easier to type "/page spifff Hey! WAKE UP MAN!!!" instead of "/ctcp spifff PAGE ...".
The original version of this script should also be available somewhere, as soon as I find it, I'll put a link here or mirror it... whatever.
The script now also supports making some noise, just /set pager_cmd ... to whatever (Irssi) command you want to be executed, some examples are included in the script itself (at the bottom).
This script allows you to collect statistics off the IRC clients used in a channel. Don't use it too often, because all that CTCP VERSION is rather annoying...
The syntax is /vstat secs top where secs are the period of time you want to collect the version replies and top is the number of top-used clients you want to include in the statistics. The command must be issued in the channel you want to collect the stats from.
The /act command selectively de-hilights windows. Without parameters all windows with level "text" are reset. With the parameter public also those with level "msg" are removed, the parameter all resets all windows.
Thanks to Mikael Magnusson this script comes now with tab completion!
This script works around a bug in 0.8.12 that wouldn't let you join channels with e.g. latin1 encoded names (or talk in there). Use join18n to join such channels, msg18n to talk in such channels, and part18n to leave them again.