Servus Documentation

Introduction

Servus is one of the IRC bots on #chiark. This page documents the available commands.
You can get a copy of the source code by running git-clone http://www.chiark.greenend.org.uk/~matthewv/irc/.git, or via gitweb at http://www.chiark.greenend.org.uk/ucgi/~matthewv/git/irc.git/.

Invocation

Servus may be invoked in-channel using either !command or ~command. Alternatively, you may pass commands by /msg.

Commands


blame

The syntax is:
blame text
or:
blame #trouts text
or:
blame #flirts text
or:
blame #slashes text
or:
blame #last
The first form will search for text in the trouts, flirts, and slashes lists, and return information on when the relevant item was added, and by whom. The next three forms restrict the search to the specified list. The last form is a special case that searches for the last trout, flirt, or slash that Servus emitted.

currency

The syntax is:
currency curr1 as curr2
This will give the first currency in terms of the second currency. Currencies must be specified using their standard currency code. The currency conversion is performed using xe.com's currency converter.

define

This command no longer works, as google have broken 'define'-style searches; it will return an error message if invoked.

die

This command must be invoked by /msg only, and is only effective if invoked by the bot's owner. The bot exits.

do

This command must be invoked by /msg, and is only effective if invoked by the bot's owner. The syntax is:
/msg Servus do thing
...which results in output to the channel of the form:
* Servus/#chiark thing

fish

This command must be invoked by /msg, and is only effective if invoked by the bot's owner. It returns some details about the internal state of the "fishpond" (a simple rate-limiting feature for restricting the over-use of trout, flirt, and slash).

flirt

The syntax is:
flirt target
Servus picks a flirt at random from the flirts list (/home/matthew/programming/irc/bot/flirts on rapun), and substitutes "target" for "%s" in the flirt line. If this command is invoked by /msg, there is a 10% chance of Servus stating who invoked it by adding "(but nick is their secret admirer)" to the end of the flirt. Further suggestions for flirts should be submitted by email; a list of current flirts may be found online at http://www.chiark.greenend.org.uk/~matthewv/irc/flirts.

google

This command returns (either on-channel or by /msg) the "I'm feeling lucky" result of google searching for the argument(s) of the "google" command.

help

This command returns (either on-channel or by /msg) the location of this help file.

info

This command returns (either on-channel or by /msg) information about the software version running, which channel the bot is on, the bot's owner, and how many items have karma recorded about them

karma

The syntax is:
karma target
It returns (either on-channel or by /msg) the current karma value for target or "target has no karma set." as appropriate. Items gain or lose karma as the result of commands of the form:
target++
or
target--
Note that if issued in-channel, the initial ! or ~ should not be included. Karma targets must be one word only.

karmadel

The syntax is:
karmadel target
target's karma entry is deleted. An error message is produced if target has no karma set.

karmalist

Do not use this command. Servus has too long a list of karma items, so attempting to use this command will DoS the bot (it gets temporarily removed from channel for excess flooding).

list

This command returns (either on-channel or by /msg) a list of the commands Servus understands

nsfw

This command is the same as url, only you should use it for URLs that are not work-safe. Servus will replace the "http" in your URL with "nsfw", before passing it to url.

nws

This is an alias for nsfw.

quiet

This command prevents the use of trout, flirt, and slash for a short period of time (and will tell anyone who attempts to do so that you have invoked this command).

quit

This command is identical to die.

reload

This command may only be invoked by /msg, and only by the bot's owner. It causes Servus to re-load its trout, flirt, and slash files, and to re-stock its fishpond.

rot13

The syntax is:
rot13 some text
It returns by /msg the argument rot13d (so "fbzr grkg" in this case).

say

This command must be invoked by /msg, and is only effective if invoked by the bot's owner. The syntax is:
/msg Servus say thing
...which results in output to the channel of the form:
<Servus> thing

slash

The syntax is:
slash target1 / target2
Servus picks a slash at random from the slashes list (/home/matthew/programming/irc/bot/slashes on rapun), and substitutes "target1" for the first "%s" and "target2" for the second "%s" in the slash line. If this command is invoked by /msg, there is a 10% chance of Servus stating who invoked it by adding "(while nick watches)" to the end of the slash. Further suggestions for slashes should be submitted by email; a list of current slashes may be found online at http://www.chiark.greenend.org.uk/~matthewv/irc/slashes.

trout

The syntax is:
trout target
Servus picks a trout at random from the trouts list (/home/matthew/programming/irc/bot/trouts on rapun), and substitutes "target" for "%s" in the trout line. If this command is invoked by /msg, there is a 10% chance of Servus stating who invoked it by adding "(at the instigation of nick)" to the end of the trout. Further suggestions for trouts should be submitted by email; a list of current trouts may be found online at http://www.chiark.greenend.org.uk/~matthewv/irc/trouts.

twit

The syntax is:
twit twitter-url
Servus returns (either on-channel or by /msg) the content of the tweet and the twitter user who posted it.

units

The syntax is:
units x unit1 as unit2
or:
units unit1 as unit2
or:
units x unit1 as ?
or:
units unit1 as ?
The first two will give the first value in terms of the second unit; the latter two forms convert the first value into SI units. This command is implemented by calling units(1).

url

Servus now tracks URLs pasted into #chiark, and will comment if you post a duplicate URL. The url command provides a way for you to check if a URL has been posted before (if not, Servus posts it on your behalf). The syntax is:
/msg Servus url http://some.url
Servus will either paste the URL into channel, or /msg you to tell you it was a duplicate; in the latter case, the URL will be sent to #urls. Although you can use this command in-channel (and get a response by /msg ), this is discouraged. Servus also understands nsfw:// and nsfws:// URLs, and knows they are an obfuscation of the relevant http:// or https:// URL for URLs that are not work-safe. You can make your firefox understand nsfw:// URLS by visiting http://www.chiark.greenend.org.uk/~owend/free/nsfw/.


Matthew Vernon
Coventry, England

Valid XHTML 1.0! Valid CSS!