chiark / gitweb /
topicedit: add a timeout; better error handling
[ircbot.git] / helpinfos
1 ::wwwtitle      Blight (chiark IRC bot) help
2 ::wwwaddress    chiark IRC operators <ircop@chiark>
3
4 :
5 See http://www.chiark.greenend.org.uk/ucgi/~ijackson/blight-help
6 or /msg me with `help !overview'.
7
8 :overview
9 General commands:           Registration and user settings:
10  !help [<cmd>|<opt>|<topic>]  !register [insecure|delete]
11  !seen <nick>                 !set [<opt> [<value>]]      who [<nick>]
12  !summon <username>           (See `help !identify', `help !blight-id')
13  !invite [<chan>] <nick>...  For channel managers (`help !channel'):
14  !ping [<stuff ...>]          !op [<chan>]
15  !kill <nick> [<reason>]      !leave [<chan>]
16  !tell <nick> <message ...>   !channel [<chan>] <setting> [....]
17 Additional help topics:
18  !tutorial (long\!)  !identify !identpass !invite !blight-id
19 Send commands to me by /msg, or say them in channel with \! in front.
20 To get me on a channel, invite me.  To become channel manager, op me.
21
22 :help
23 help             gives an overview and lists the topics &c
24 help <command>   gives help on a command
25 help <opt>       gives help on an option
26 help <topic>     gives help on an additional topic
27
28 :tell
29 tell <nick> <message ...>
30  Leaves a message for someone, which will be delivered according to
31  their `!set !tellme'.  I will tell you about your undelivered tells
32  whenever I see you arriving, or when you say `!ping'.  See also
33  `help !untell' and `help !delmsg'.
34
35 :untell
36 !untell <nick> ...
37  Forgets about all message(s) you've sent with !tell to particular
38  nick(s).  Use !delmsg to delete messages sent *to* you.  There is no
39  way to untell individual messages to the same nick.  If your nick is
40  secure, you must !identify yourself to use untell.
41
42 :tellme
43 The !tellme command repeats any messages you have outstanding.
44 !set tellme configures how you receive messages sent with !tell:
45  set tellme insecure              When I see you.
46  set tellme secure [<!interval>]   Hide body (reminding) until ident.
47  set tellme reject                Do not accept messages.
48  set tellme mailto <email-addr>   By email.  (Secure nicks only.)
49 Default: `secure 600'.  For insecure nicks `secure' == `insecure'.
50 To set when to consider messages delivered (see `help !untell'):
51  set tellme unreliable            Tell you once, then forget.
52  set tellme remind [<every-interval> [<within-interval>]]
53     Remind until you talk on channel within <within-interval>
54     of me having told you.  (Default is remind 1h 30s.)
55  set tellme pester <interval>     Remind until you say !delmsg
56
57 :delmsg
58 delmsg [<nick> ...]
59  Forgets about !tell messages I've passed on: either all of them, or
60  only those from certain nicks.  Necessary if you !set !tellme pester
61  or reliable, and also works with remind, but not with unreliable.
62  Use !untell to delete messages you've sent, rather than received.
63
64 :seen
65 seen <nick>
66  Tells you or the channel when I last saw that nick in
67  use.  When the nick is next used, I'll tell them you asked.
68
69 :summon
70 summon <username>
71  Invites a user onto IRC.  By default a message (like a talk request)
72  will be written to their terminal; if they're not logged on to the
73  machine running Blight, or are `mesg n', you'll be told.  A user can
74  change the way they are summoned (eg, to disable it) by reconfiguring
75  the userv service `irc-summon'.  See `help !irc-summon'.
76
77 :irc-summon
78 userv <user> irc-summon <callingnick> <callingpath> <channel>
79  This userv invocation is invoked by Blight when `!summon' is used.
80  For examples of how to (re)configure it, see
81   ~ian/.userv/services.d/irc-summon
82   /etc/userv/services.d/irc-summon
83  The service should immediately print one of these, and exit:
84   problem <description>   =>  The user `<user>' <description>.
85   ok <tty> <lastactivity> =>..invites <user> (<tty>, idle for ..)..
86  and Blight will respond as shown.  <tty> need not be an actual
87  terminal name; <lastactivity> must be a decimal absolute time_t).
88
89 :who
90 who [<nick>]
91  Gives information about who I think the nick is (or who I think you
92  are), including whether the nick is registered, whether it is
93  associated with a username and if so who, and whether the current
94  user of the nick has identified themselves to me.
95  See `help !register'.
96
97 #:convert
98 #convert <number> <unit>
99 # Converts the specified quantity into SI units.  Units that are
100 # understood are any understood by units(1) and also
101 #   kelvin celsius fahrenheit    (convert to celsius or kelvin)
102 #(Not yet implemented.)
103
104 :op
105 op [<channel>]     on channel
106 op <channel>       (privately)
107  I'll give you channel operator privilege, if you're a manager.
108  See `help !manager'.
109
110 :leave
111 leave [<channel>]     on channel
112 leave <channel>       (privately)
113  I'll leave the channel, if you're a manager.  For an unmanaged
114  channel, I'll leave when I'm the last one on the channel.
115
116 :channel
117 channel [<chan>] [show]                       show settings
118 channel [<chan>] !manager +|-|= <nick> ...     set manager list
119 channel [<chan>] !autojoin yes|no              join at bot start ?
120 channel [<chan>] !userinvite pub|here|all|none who can !invite ?
121 channel [<chan>] !mode *|+...-...              set modes when alone
122 channel [<chan>] !topic leave | set <topic>    set topic when alone?
123 channel [<chan>] !topic see|tell +|-|= <chan>|* ...
124  See `help <setting>' (eg, `help manager') for more info.
125
126 :topic
127 channel [<chan>] topic set <topic>    set topic when alone
128 channel [<chan>] topic leave          don't (default)
129  If set to `topic set <topic>' then whenever I'm alone in the channel
130  I'll reset the topic; if se to `topic leave' I'll leave it alone.
131 channel [<chan>] topic see|tell +|-|= <chan>|* ...
132  I can inform one channel about topic changes in another.  Each
133  channel has a `see list' and a `tell list' which may be empty or
134  contain some channel names and/or a `*'.  I'll tell channel #spy
135  whenever I see the topic change in #showoff if: #showoff or * is
136  mentioned in #spy's see list, and #spy or * is mentioned in
137  #showoff's tell list, and at least one those mentions is not a `*'.
138  + adds items to the relevant list, - removes them, and = sets the
139  list to exactly those items specified.  Both lists are empty by
140  default, but a good permissive value is just `*' for both lists.
141
142 :autojoin
143 !channel [<chan>] autojoin yes|no      (`yes' is the default.)
144  Controls whether I'll join the channel when I'm (re)started.
145
146 :userinvite
147 channel [<chan>] userinvite pub    users on chan can \!invite
148 channel [<chan>] userinvite here   users on chan can \!invite and /msg
149 channel [<chan>] userinvite all    anyone can \!invite and /msg
150 channel [<chan>] userinvite none   \!invite and /msg are disabled
151  Controls whether the `invite' command works for this channel, and
152  who can use it (`help !invite').  `userinvite pub' is the default.
153  Channel managers can always use the `invite' command.
154
155 :mode
156 !channel [<chan>] mode *|+...-...           (`mode *' is default.)
157  If not set to `*' then whenever I'm alone in the channel I'll set
158  and unset the channel modes specified.  Only the modes imnpst are
159  supported.  Precede one or more mode letters with + to set, - to
160  unset; any letters not mentioned will be left alone.
161
162 :manager
163 !channel [<chan>] manager + <nick> <nick> ...  add managers
164 !channel [<chan>] manager - <nick> <nick> ...  remove managers
165 !channel [<chan>] manager = <nick> <nick> ...  set new manager list
166  Managers are those who can use the `channel' command to change
167  channel settings.  Manager status is only effective for secure
168  nicks, after the manager has identified themselves.
169  If you op me on an unmanaged channel you become the only manager,
170  but you must use `!channel' to change a channel setting to make this
171  permanent.  To make a channel unmanaged, make it have no managers.
172
173 :identify
174 You must identify yourself to change your settings if your nick is
175 secure, and to use channel management commands.  In ircII on chiark,
176 just say `/!blight-id'.  For other clients, see `help !identpass'.
177 Once you are identified you can then register new nicks, change
178 settings, etc. - so long as you remain on a channel that I'm on too
179 (see `help !invite').  See also `help !register'.
180
181 :blight-id
182 /blight-id is a command available in ircII (and possibly other
183 clients) on chiark.  It sets up a password if you don't already have
184 one, and then uses it to identify you to Blight.  If you want to
185 change your password, delete the file ~/.userv/irc-pass-md5.
186 See `help !register' and `help !identpass'.
187
188 :identpass
189 identpass <username> <password>
190  Identifies you to Blight.  To set up your password, or be reminded
191  of it, run the shell command `irc-blight-id' on chiark.
192  (On ircII on chiark `/!blight-id' is easier, see `help !blight-id'.)
193  See `help !identpass-internals' for technical details.
194
195 :identpass-internals
196 Identification, for example with /!blight-id, is actually done with
197 `!identpass', which feeds the md5sum of the password to `userv
198 <username> irc-identpass <nick>'.  That must exit 0 if all is well.
199 By default this checks the md5sum against ~/.userv/irc-pass-md5.
200
201 :invite
202 invite <nick> ...             on channel
203 invite <channel> <nick> ...   privately
204  This command gets me to invite the specified people to the channel.
205  This is useful because only IRC channel operators can use /invite.
206  This can be disabled for managed channels - see `help !userinvite'.
207 To get me to join a channel, a channel operator should /invite me.
208
209 :kill
210 kill <nick> [<reason>]
211  Asks me to throw that client off IRC completely, using my IRC
212  Operator privilege.  You must have identified yourself as the user
213  to whom the nick is registered.  (See `help !register'.)
214
215 :register
216 register            register your nick (or make it secure)
217 register delete     delete your nick registration
218 register insecure   register your nick insecurely
219  I only store settings for registered nicks.  For `insecure' nicks
220  anyone who currently holds that nick can change its settings (see
221  `help !set', including securing it to their username.  `secure'
222  nicks can only have their settings changed by the user to which they
223  are registered, after identifying themselves (see `help !identify').
224
225 :set
226 set                  show your current settings
227 set <option>         show the current setting of <option>
228 set <option> <value> set <option> to <value>
229  Options:  !timeformat ks|hms|beat
230            !marktime off|once|<n>[k]s|<n>m|<n>h
231            !tellme ...
232  See also `help <option>', `help !register' and `help !identify'
233
234 :timeformat
235 !set timeformat ks    show times in seconds, kiloseconds, etc.
236 set timeformat hms   use days, hours, minutes, seconds
237 set timeformat beat  use beats (1000 B = 1 day)
238
239 :ping
240 ping [<string>]
241 Replies with hopefully-useful information, including:
242 * Current time, number of IRC and system users, and load averages.
243 * Most recent traffic on a relevant channel (if sent privately, any
244   channel we're both on, otherwise the channel in question.)  Only
245   actual message traffic counts, and \!-commands don't count either.
246 * The specified string, if any.
247 I can tell you this automatically if you like - see `help !marktime'.
248 If you have undelivered messages sent with !tell by or to you, I'll
249 let you know about those too (privately, if you ping on channel).
250
251 :marktime
252 !set marktime off        Only an explicit `!ping' command sends info.
253 set marktime once       Send ping info shortly after I first see you.
254 set marktime <!interval> Also send info regularly (min. interval 5m).
255
256 :interval
257 Intervals in commands are <amount><unit>, where the unit is one of
258 s for seconds, ks for kiloseconds, m for minutes, h for hours.
259
260 :tutorial
261 Sorry, there is no tutorial.  If you would like to contribute by
262 writing one, please email ijackson@chiark.greenend.org.uk.
263
264 # Local variables:
265 # fill-column: 69
266 # End: