class="code">#chiark</span>. This page documents the available
commands. You can get a copy of the source code by running <span
class="code">git-clone <a
-href="http://www.pick.ucam.org/~matthew/irc/.git">http://www.pick.ucam.org/~matthew/irc/.git</a></span></p>
+href="http://www.chiark.greenend.org.uk/~matthewv/irc/.git">http://www.chiark.greenend.org.uk/~matthewv/irc/.git</a></span>,
+or via <span class="code">gitweb</span> at <a href="http://www.chiark.greenend.org.uk/ucgi/~matthewv/git/irc.git/">http://www.chiark.greenend.org.uk/ucgi/~matthewv/git/irc.git/</a>.</p>
<h2>Invocation</h2>
<p>Servus may be invoked in-channel using either <span
<h2>Commands</h2>
<ul>
+<li><a href="#define">define</a></li>
<li><a href="#die">die</a></li>
<li><a href="#do">do</a></li>
<li><a href="#fish">fish</a></li>
<li><a href="#karmadel">karmadel</a></li>
<li><a href="#karmalist">karmalist</a></li>
<li><a href="#list">list</a></li>
+<li><a href="#nsfw">nsfw</a></li>
+<li><a href="nws">nws</a></li>
<li><a href="#quiet">quiet</a></li>
<li><a href="#quit">quit</a></li>
<li><a href="#reload">reload</a></li>
<li><a href="#say">say</a></li>
<li><a href="#slash">slash</a></li>
<li><a href="#trout">trout</a></li>
+<li><a href="#twit">twit</a></li>
<li><a href="#units">units</a></li>
+<li><a href="#url">url</a></li>
</ul>
<hr />
+<h3><a name="define">define</a></h3>
+<p>This command returns (either on-channel or by <span
+class="code">/msg</span>) a definition of the argument(s) of the
+"define" command. This is done by using a "define:" query on
+google, so the results may be a little unusual at times...</p>
+
<h3><a name="die">die</a></h3>
<p>This command must be invoked by <span class="code">/msg</span> only,
and is only effective if invoked by the bot's owner. The bot
<p>The syntax is:<br /> <span
class="code">flirt target</span><br /> Servus picks a flirt at random
from the flirts list (<span
-class="code">/home/matthew/programming/irc/flirts</span> on rapun),
+class="code">/home/matthew/programming/irc/bot/flirts</span> on rapun),
and substitutes "target" for "%s" in the flirt line. If this command
is invoked by <span class="code">/msg</span>, 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 <a
-href="flirts">http://www.pick.ucam.org/~matthew/irc/flirts</a>.</p>
+href="flirts">http://www.chiark.greenend.org.uk/~matthewv/irc/flirts</a>.</p>
<h3><a name="google">google</a></h3>
<p>This command returns (either on-channel or by <span
class="code">/msg</span>) a list of the commands Servus
understands</p>
+<h3><a name="nsfw">nsfw</a></h3>
+<p>This command is the same as <a href="#url">url</a>, 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 <a href="#url">url</a>.</p>
+
+<h3><a name="nws">nws</a></h3>
+<p>This is an alias for <a href="nsfw">nsfw</a>.</p>
+
<h3><a name="quiet">quiet</a></h3>
<p>This command prevents the use of <span
class="code">trout</span>, <span class="code">flirt</span>, and <span
<p>The syntax is:<br /> <span
class="code">slash target1 / target2 </span><br /> Servus picks a slash at random
from the slashes list (<span
-class="code">/home/matthew/programming/irc/slashes</span> on rapun),
-and substitutes "target1" for the first "%s" and "target2 for the
+class="code">/home/matthew/programming/irc/bot/slashes</span> 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 <span class="code">/msg</span>, 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 <a
-href="slashes">http://www.pick.ucam.org/~matthew/irc/slashes</a>.</p>
+href="slashes">http://www.chiark.greenend.org.uk/~matthewv/irc/slashes</a>.</p>
<h3><a name="trout">trout</a></h3>
<p>The syntax is:<br /> <span
class="code">trout target</span><br /> Servus picks a trout at random
from the trouts list (<span
-class="code">/home/matthew/programming/irc/trouts</span> on rapun),
+class="code">/home/matthew/programming/irc/bot/trouts</span> on rapun),
and substitutes "target" for "%s" in the trout line. If this command
is invoked by <span class="code">/msg</span>, 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
-<a href="trouts">http://www.pick.ucam.org/~matthew/irc/trouts</a>.</p>
+<a href="trouts">http://www.chiark.greenend.org.uk/~matthewv/irc/trouts</a>.</p>
+
+<h3><a name="twit">twit</a></h3>
+<p>The syntax is:<br /><span
+class="code">twit twitter-url</span><br /> Servus returns (either on-channel or by <span
+class="code">/msg</span>) the content
+of the tweet and the twitter user who posted it.</p>
<h3><a name="units">units</a></h3>
<p>The syntax is:<br /> <span
the latter two forms convert the first value into SI units. This
command is implemented by calling <span class="code">units(1)</span>.</p>
+<h3><a name="url">url</a></h3>
+<p>Servus now tracks URLs pasted into <span
+class="code">#chiark</span>, and will comment if you post a duplicate
+URL. The <span class="code">url</span> 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:<br /> <span class="code">/msg Servus url
+http://some.url</span><br /> Servus will either paste the URL into
+channel, or <span class="code">/msg</span> you to tell you it was a
+duplicate; in the latter case, the URL will be sent to <span
+class="code">#urls</span>. Although you can use this command
+in-channel (and get a response by <span class="code">/msg </span>),
+this is discouraged. Servus also understands <span
+class="code">nsfw://</span> and <span class="code">nsfws://</span>
+URLs, and knows they are an obfuscation of the relevant <span
+class="code">http://</span> or <span class="code">https://</span> URL
+for URLs that are not work-safe. You can make your firefox understand
+<span class="code">nsfw://</span> URLS by visiting <a
+href="http://www.chiark.greenend.org.uk/~owend/free/nsfw/">http://www.chiark.greenend.org.uk/~owend/free/nsfw/</a>.</p>
+
<hr />
<address>
- <a href="mailto:matthew@sel.cam.ac.uk">Matthew Vernon</a><br />
- Cambridge, England
+ <a href="mailto:matthewv@chiark.greenend.org.uk">Matthew Vernon</a><br />
+ Coventry, England
</address>
<p>
<a href="http://validator.w3.org/check/referer"><img