chiark / gitweb /
correct doctype
[irc.git] / servus.html
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html 
3      PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
4      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
7 <head>
8 <title>Servus Documentation</title>
9 <style type="text/css">
10 body {background: white; color: black; text-align: left}
11 h1 {text-align: center; font-weight: bold; font-size: xx-large}
12 h2 {font-weight: bold; font-size: x-large}
13 h3, h4, h5, h6 {font-weight: bold; font-size: large}
14 li {list-style-type: circle}
15 hr {clear: both}
16 span.code {font-family: courier, monospace}
17 </style>
18 </head>
19
20 <body>
21 <h1>Servus Documentation</h1> 
22
23 <h2>Introduction</h2>
24 <p>Servus is one of the IRC bots on <span
25 class="code">#chiark</span>. This page documents the available
26 commands. You can get a copy of the source code by running <span
27 class="code">git-clone <a
28 href="http://www.pick.ucam.org/~matthew/irc/.git">http://www.pick.ucam.org/~matthew/irc/.git</a></span></p>
29
30 <h2>Invocation</h2>
31 <p>Servus may be invoked in-channel using either <span
32 class="code">!command</span> or <span
33 class="code">~command</span>. Alternatively, you may pass commands by
34 <span class="code">/msg</span>.
35 </p>
36
37 <h2>Commands</h2>
38
39 <ul>
40 <li><a href="#die">die</a></li>
41 <li><a href="#do">do</a></li>
42 <li><a href="#fish">fish</a></li>
43 <li><a href="#flirt">flirt</a></li>
44 <li><a href="#google">google</a></li>
45 <li><a href="#help">help</a></li>
46 <li><a href="#info">info</a></li>
47 <li><a href="#karma">karma</a></li>
48 <li><a href="#karmadel">karmadel</a></li>
49 <li><a href="#karmalist">karmalist</a></li>
50 <li><a href="#list">list</a></li>
51 <li><a href="#quiet">quiet</a></li>
52 <li><a href="#quit">quit</a></li>
53 <li><a href="#reload">reload</a></li>
54 <li><a href="#rot13">rot13</a></li>
55 <li><a href="#say">say</a></li>
56 <li><a href="#slash">slash</a></li>
57 <li><a href="#trout">trout</a></li>
58 <li><a href="#units">units</a></li>
59 </ul>
60
61 <hr />
62
63 <h3><a name="die">die</a></h3>
64 <p>This command must be invoked by <span class="code">/msg</span> only,
65 and is only effective if invoked by the bot's owner. The bot
66 exits.</p>
67
68 <h3><a name="do">do</a></h3>
69 <p>This command must be invoked by <span class="code">/msg</span>, and
70 is only effective if invoked by the bot's owner. The syntax is:<br />
71 <span class="code">/msg Servus do thing</span><br />...which results
72 in output to the channel of the form:<br />
73 <span class="code">* Servus/#chiark thing</span></p>
74
75 <h3><a name="fish">fish</a></h3>
76 <p>This command must be invoked by <span class="code">/msg</span>, and
77 is only effective if invoked by the bot's owner. It
78 returns some details about the internal state of the "fishpond" (a
79 simple rate-limiting feature for restricting the over-use of <span
80 class="code">trout</span>, <span class="code">flirt</span>, and <span
81 class="code">slash</span>).</p>
82
83 <h3><a name="flirt">flirt</a></h3>
84 <p>The syntax is:<br /> <span
85 class="code">flirt target</span><br /> Servus picks a flirt at random
86 from the flirts list (<span
87 class="code">/home/matthew/programming/irc/flirts</span> on rapun),
88 and substitutes "target" for "%s" in the flirt line. If this command
89 is invoked by <span class="code">/msg</span>, there is a 10% chance
90 of Servus stating who invoked it by adding "(but nick is their secret
91 admirer)" to the end of the flirt. Further suggestions for flirts
92 should be submitted by email; a list of current flirts may be found
93 online at <a
94 href="flirts">http://www.pick.ucam.org/~matthew/irc/flirts</a>.</p>
95
96 <h3><a name="google">google</a></h3>
97 <p>This command returns (either on-channel or by <span
98 class="code">/msg</span>) the "I'm feeling lucky" result of google
99 searching for the argument(s) of the "google" command.</p>
100
101 <h3><a name="help">help</a></h3>
102 <p>This command returns (either on-channel or by <span
103 class="code">/msg</span>) the location of this help file.</p>
104
105 <h3><a name="info">info</a></h3>
106 <p>This command returns (either on-channel or by <span
107 class="code">/msg</span>) information about the software version
108 running, which channel the bot is on, the bot's owner, and how many
109 items have karma recorded about them</p>
110
111 <h3><a name="karma">karma</a></h3>
112 <p>The syntax is:<br />
113 <span class="code">karma target</span><br />
114 It returns (either on-channel or by <span class="code">/msg</span>)
115 the current karma value for <span class="code">target</span> or "<span
116 class="code">target has no karma set.</span>" as appropriate. Items
117 gain or lose karma as the result of commands of the form:<br />
118 <span class="code">target++</span><br />or<br />
119 <span class="code">target--</span><br />
120 Note that if issued in-channel, the initial <span
121 class="code">!</span> or <span class="code">~</span> should not be
122 included. Karma targets must be one word only.</p>
123
124 <h3><a name="karmadel">karmadel</a></h3>
125 <p>The syntax is:<br /> <span
126 class="code">karmadel target</span><br /> <span
127 class="code">target</span>'s karma entry is deleted. An error message
128 is produced if <span class="code">target</span> has no karma set.</p>
129
130 <h3><a name="karmalist">karmalist</a></h3>
131 <p><span style="font-weight: bold">Do not use this
132 command</span>. Servus has too long a list of karma items, so
133 attempting to use this command will DoS the bot (it gets temporarily
134 removed from channel for excess flooding).</p>
135
136 <h3><a name="list">list</a></h3>
137 <p>This command returns (either on-channel or by <span
138 class="code">/msg</span>) a list of the commands Servus
139 understands</p> 
140
141 <h3><a name="quiet">quiet</a></h3>
142 <p>This command prevents the use of <span
143 class="code">trout</span>, <span class="code">flirt</span>, and <span
144 class="code">slash</span> for a short period of time (and will tell
145 anyone who attempts to do so that you have invoked this command).</p> 
146
147 <h3><a name="quit">quit</a></h3>
148 <p>This command is identical to <a href="#die">die</a>.</p>
149
150 <h3><a name="reload">reload</a></h3>
151 <p>This command may only be invoked by <span class="code">/msg</span>,
152 and only by the bot's owner. It causes Servus to re-load its <span
153 class="code">trout</span>, <span class="code">flirt</span>, and <span
154 class="code">slash</span> files, and to re-stock its fishpond.</p>
155
156 <h3><a name="rot13">rot13</a></h3>
157 <p>The syntax is:<br />
158 <span class="code">rot13 some text</span><br />
159 It returns by <span class="code">/msg</span>
160 the argument rot13d (so "<span class="code">fbzr grkg</span>" in this
161 case).</p>
162
163 <h3><a name="say">say</a></h3>
164 <p>This command must be invoked by <span class="code">/msg</span>, and
165 is only effective if invoked by the bot's owner. The syntax is:<br />
166 <span class="code">/msg Servus say thing</span><br />...which results
167 in output to the channel of the form:<br />
168 <span class="code">&lt;Servus&gt; thing</span></p>
169
170 <h3><a name="slash">slash</a></h3>
171 <p>The syntax is:<br /> <span
172 class="code">slash target1 / target2 </span><br /> Servus picks a slash at random
173 from the slashes list (<span
174 class="code">/home/matthew/programming/irc/slashes</span> on rapun),
175 and substitutes "target1" for the first "%s" and "target2 for the
176 second "%s" in the slash line. If this command
177 is invoked by <span class="code">/msg</span>, there is a 10% chance
178 of Servus stating who invoked it by adding "(while nick watches)" to
179 the end of the slash. Further suggestions for slashes should be
180 submitted by email; a list of current slashes may be found online at <a
181 href="slashes">http://www.pick.ucam.org/~matthew/irc/slashes</a>.</p>
182
183 <h3><a name="trout">trout</a></h3>
184 <p>The syntax is:<br /> <span
185 class="code">trout target</span><br /> Servus picks a trout at random
186 from the trouts list (<span
187 class="code">/home/matthew/programming/irc/trouts</span> on rapun),
188 and substitutes "target" for "%s" in the trout line. If this command
189 is invoked by <span class="code">/msg</span>, there is a 10% chance
190 of Servus stating who invoked it by adding "(at the instigation of
191 nick)" to the end of the trout. Further suggestions for trouts should
192 be submitted by email; a list of current trouts may be found online at
193 <a href="trouts">http://www.pick.ucam.org/~matthew/irc/trouts</a>.</p>
194
195 <h3><a name="units">units</a></h3>
196 <p>The syntax is:<br /> <span
197 class="code">units x unit1 as unit2</span><br />or:<br /> <span
198 class="code">units unit1 as unit2</span><br />or:<br /> <span
199 class="code">units x unit1 as ?</span><br />or:<br /> <span
200 class="code">units unit1 as ?</span><br />
201 The first two will give the first value in terms of the second unit;
202 the latter two forms convert the first value into SI units. This
203 command is implemented by calling <span class="code">units(1)</span>.</p>
204
205 <hr />
206 <address>
207   <a href="mailto:matthew@sel.cam.ac.uk">Matthew Vernon</a><br />
208   Cambridge, England
209 </address>
210  <p>
211 <a href="http://validator.w3.org/check/referer"><img
212         src="http://www.w3.org/Icons/valid-xhtml10"
213         alt="Valid XHTML 1.0!" height="31" width="88" /></a>
214 <a href="http://jigsaw.w3.org/css-validator/check/referer">
215 <img style="width:88px;height:31px"
216        src="http://jigsaw.w3.org/css-validator/images/vcss" 
217        alt="Valid CSS!" />
218 </a>
219 </p>
220 </body>
221 </html>
222