The Hybrid Oper Script Collection I use only irssi

2004-10-19 Note: This page is obsolet! See new HOSC collection instead.

This is a collection of scripts for irssi to make life of opers on a hybrid server (and in particular, EFnet) easier.
irssi lacks good oper tools, and this is an attempt to provide a collection of tools for opers on hybrid and similar ircds. Any comments, suggestions and requests are very welcome: please email them to garion (at) efnet (.) nl.

Here are some tips for EFnet opers using irssi

Last updates:
3 Jun 2003: added ho_easykline.
23 Mar 2003: added ho_killreconnect.

Important note. These script were evolving so quickly and so disorganized that I've decided to stop coding and start designing. Please read the current design document and comment on it.

NOTICE: all scripts have been renamed from ho-*.pl to ho_*.pl to conform with irssi script naming.

File Name Version Author Description
ho_challenge Challenge 0.0 zapi Uses /CHALLENGE to oper up via ssl. Is being developed.
ho_easykline Easy K-line 1.0 i think Garion Adds a window in which you can paste irc logs. These are parsed and K-lines are placed for every user@host encountered in the log.
ho_killreconnect Killreconnect 1.1 Garion Reconnects your client when you are killed by an oper.
ho_mkill Mass kill 1.1 Garion A /MKILL command to mass-kill all users in a channel.
ho_operit operit 0.0 zapi An EFnet-specific rewrite of pasky's operit. Is being developed.
ho_operwall Operwall 1.4 JamesOff Uses two windows, one for operwall and one for locops. All operwalls and locops are sent to these windows, and if you type in that window, an operwall or locops is sent.
ho_reformat Reformat 1.8 Garion Server notice reformatting script. Requires hybrid 6 datafile or hybrid 7 datafile. The datafiles must be stored in ~/.irssi/.
ho_track Track 1.7 Garion, JamesOff, AilleCat This script looks at incoming server notices and finds any unusual activity. This is then reported or acted on.

NOTE: There are some more scripts, but these are oper/EFnet specific. Message Garion or JamesOff on EFnet about these.
Simple mass kill command. Use /mkill help for help.
The main feature of this script is fully customizable reformatting and redirection of server notices. In other words, you can define any number of regular expressions with which each incoming notice is matched; if a match occurs, the message is sent to a window of choice using a format of choice. Here are some screenshots:

Unformatted server notices
Kill window of reformatted notices
kill window
Local window of reformatted notices
local window

The script exists of a script file and a data file. The data file is loaded when the script is loaded, and it contains any number of data blocks describing what to do with each incoming server notice. An example of such a data block is:

(.*)!.*@.*\{.*\} added temporary ([0-9]+) min\. K-Line for \[(.*)@(.*)\] \[.*dns pollution.*\]
%rTKLINE%n dnsspam $3@$4 ($1).
kill MSG

The first line is the name of this server notice reformatting (I think I'll call it 'reformatting' from now on). This name must be unique because an irssi format is registered using this string.

The second line contains the regular expression with which the server notice is matched.

The third line is the reformatting itself. In this format, the matched tokens of the regular expression can be used; they are given by $1 .. $n. The server tag of the server notice is present in $0.

The fourth and last line contains the name of the window to which the reformatted server notice will be sent, and the message level that is used to send this message. This means that you have to give one of your windows this name (using /win name [name]). If no window with this name is found, the message will be sent to window 1. The message level is by default CRAP, which causes a lightblue number in the activity bar; using MSG or HILIGHT will use those message levels instead. This means that you could for example get a HILIGHT in your "kill" window each time a G-line is triggered.

By default, there are six windows for output: warning, local, client, server, kill, and rest. You can add/remove/rename these windows, of course.

To use this script, get both the latest (store it in ~/.irssi/scripts/) and a datafile (store it in ~/.irssi/). If you don't have a datafile, will download a default datafile from Then type /script load ho_reformat in irssi and you're ready to go.

NOTE: in my own client, I'm not using auto-creation of anything, and I'm not using a statuswindow. It might very well be that either (or both) of these things interfere with proper functioning of the script. Please let me know if this is the case.
Server connection tracking script

Does the following things:

Example of the reconnections:

14:59.12 -!- ho: Warning 8/16: R1talin (
14:59.14 -!- ho: Warning 9/18: R1talin (
14:59.20 -!- ho: Warning 10/24: R1talin (
14:59.20 -!- ho: K-lined for hammering.

The inviter warning is just a warning. Do with it what you will.

If you're currently not using irssi, I can highly recommend it. I've written a list of features of irssi which might convince you to at least try it. Note that the default settings might not be the best ones for you. A brief tutorial can be found on the irssi documentation website.

Any comments/suggestions/changes/bugreports are VERY welcome. You can find me on EFnet, using the nick Garion.