-!
+::wwwtitle Blight (chiark IRC bot) help
+::wwwaddress chiark IRC operators <ircop@chiark>
+
+:
+See http://www.chiark.greenend.org.uk/ucgi/~ijackson/blight-help
+or /msg me with `help !overview'.
+
+:overview
General commands: Registration and user settings:
- help [<cmd>|<opt>|<topic>] register [insecure|delete]
- seen <nick> set [<opt> [<value>]] who [<nick>]
- summon <username> (See `help identify', `help blight-id')
- convert <number> <unit> Channel settings:
- ops oplist [<chan>] [+|-|= [?]<nick> ...]
-Options: Additional help topics:
- timeformat ks|hms identify identpass invite blight-id
-Send commands to me by /msg, or say them in channel with ! in front.
-
-!help
+ !help [<cmd>|<opt>|<topic>] !register [insecure|delete]
+ !seen <nick> !set [<opt> [<value>]] who [<nick>]
+ !summon <username> (See `help !identify', `help !blight-id')
+ !invite [<chan>] <nick>... For channel managers (see `help channel'):
+ !leave [<chan>] !channel [<chan>] <setting> [....]
+ !ping [<stuff ...>] !op [<chan>]
+ !tell <nick> <message ...> Additional help topics:
+ !kill <nick> [<reason>] !identify !identpass !invite !blight-id
+Send commands to me by /msg, or say them in channel with \! in front.
+To get me on a channel, invite me. To become channel manager, op me.
+
+:help
help gives an overview and lists the topics &c
help <command> gives help on a command
help <opt> gives help on an option
help <topic> gives help on an additional topic
-!seen
+:tell
+tell <nick> <message ...>
+ Leaves a message for someone, which will be delivered according to
+ their `!set !tellme'. I will tell you about your undelivered tells
+ whenever I see you arriving, or when you say `!ping'. See also
+ `help !untell' and `help !delmsg'.
+
+:untell
+!untell <nick> ...
+ Forgets about all message(s) you've sent with !tell to particular
+ nick(s). Use !delmsg to delete messages sent *to* you. There is no
+ way to untell individual messages to the same nick. If your nick is
+ secure, you must !identify yourself to use untell.
+
+:tellme
+The !tellme command repeats any messages you have outstanding.
+!set tellme configures how you receive messages sent with !tell:
+ set tellme insecure When I see you.
+ set tellme secure [<!interval>] Hide body (reminding) until ident.
+ set tellme refuse Do not accept messages.
+ set tellme mailto <email-addr> By email. (Secure nicks only.)
+Default: `secure 600'. For insecure nicks `secure' == `insecure'.
+To set when to consider messages delivered (see `help !untell'):
+ set tellme unreliable Tell you once, then forget.
+ set tellme remind [<every-interval> [<within-interval>]]
+ Remind until you talk on channel within <within-interval>
+ of me having told you. (Default is remind 1h 30s.)
+ set tellme pester <interval> Remind until you say !delmsg
+
+:delmsg
+delmsg [<nick> ...]
+ Forgets about !tell messages I've passed on: either all of them, or
+ only those from certain nicks. Necessary if you !set !tellme pester
+ or reliable, and also works with remind, but not with unreliable.
+ Use !untell to delete messages you've sent, rather than received.
+
+:seen
seen <nick>
Tells you or the channel when I last saw that nick in
use. When the nick is next used, I'll tell them you asked.
-!summon
+:summon
summon <username>
Invites a logged-on user onto IRC. If the user is not logged on
you'll be told. Target users can change this (eg, to disable it)
by reconfiguring the userv service `irc-summon'. See ~ian/.userv.
-!who
+:who
who [<nick>]
Gives information about who I think the nick is (or who I think you
are), including whether the nick is registered, whether it is
associated with a username and if so who, and whether the current
user of the nick has identified themselves to me.
+ See `help !register'.
+
+#:convert
+#convert <number> <unit>
+# Converts the specified quantity into SI units. Units that are
+# understood are any understood by units(1) and also
+# kelvin celsius fahrenheit (convert to celsius or kelvin)
+#(Not yet implemented.)
+
+:op
+op [<channel>] on channel
+op <channel> (privately)
+ I'll give you channel operator privilege, if you're a manager.
+ See `help !manager'.
+
+:leave
+leave [<channel>] on channel
+leave <channel> (privately)
+ I'll leave the channel, if you're a manager. For an unmanaged
+ channel, I'll leave when I'm the last one on the channel.
+
+:channel
+channel [<chan>] [show] show settings
+channel [<chan>] !manager +|-|= <nick> ... set manager list
+channel [<chan>] !autojoin yes|no join at bot start ?
+channel [<chan>] !userinvite pub|here|all|none who can !invite ?
+channel [<chan>] !mode *|+...-... set modes when alone
+channel [<chan>] !topic leave | set <topic> set topic when alone?
+channel [<chan>] !topic see|tell +|-|= <chan>|* ...
+ See `help <setting>' (eg, `help manager') for more info.
-!convert
-convert <number> <unit>
- Converts the specified quantity into SI units. Units that are
- understood are any understood by units(1) and also
- kelvin celsius fahrenheit (convert to celsius or kelvin)
-
-!ops
-ops on channel
-ops <channel> (privately)
- Asks me to give you channel operator privilege. You must be using
- a secure nick and have identified yourself (see `help identify').
-(Not yet implemented!)
-
-!oplist
-oplist [<chan>] show chop list
-oplist [<chan>] + <nick> <nick> ... add nicks to chop list
-oplist [<chan>] - <nick> <nick> ... remove nicks from chop list
-oplist [<chan>] = <nick> <nick> ... set chop list
- Configures the list of who may use the `ops' command. You must be
- on the oplist yourself to do this. If you op me on a channel I'll
- automatically add you to the oplist if you have identified yourself.
- If you make the channel op list empty I'll forget about the channel.
-(Not yet implemented!)
-
-!identify
-You must identify yourself to change your settings and to use channel
-management commands. In ircII on chiark, just say `/blight-id'. For
-other clients, see `help identpass'. Once you are identified you can
-then register new nicks, change settings, etc. - so long as you
-remain on a channel that I'm on too. (See also `help invite'.)
-
-!blight-id
+:topic
+channel [<chan>] topic set <topic> set topic when alone
+channel [<chan>] topic leave don't (default)
+ If set to `topic set <topic>' then whenever I'm alone in the channel
+ I'll reset the topic; if se to `topic leave' I'll leave it alone.
+channel [<chan>] topic see|tell +|-|= <chan>|* ...
+ I can inform one channel about topic changes in another. Each
+ channel has a `see list' and a `tell list' which may be empty or
+ contain some channel names and/or a `*'. I'll tell channel #spy
+ whenever I see the topic change in #showoff if: #showoff or * is
+ mentioned in #spy's see list, and #spy or * is mentioned in
+ #showoff's tell list, and at least one those mentions is not a `*'.
+ + adds items to the relevant list, - removes them, and = sets the
+ list to exactly those items specified. Both lists are empty by
+ default, but a good permissive value is just `*' for both lists.
+
+:autojoin
+!channel [<chan>] autojoin yes|no (`yes' is the default.)
+ Controls whether I'll join the channel when I'm (re)started.
+
+:userinvite
+channel [<chan>] userinvite pub users on chan can \!invite
+channel [<chan>] userinvite here users on chan can \!invite and /msg
+channel [<chan>] userinvite all anyone can \!invite and /msg
+channel [<chan>] userinvite none \!invite and /msg are disabled
+ Controls whether the `invite' command works for this channel, and
+ who can use it (`help !invite'). `userinvite pub' is the default.
+ Channel managers can always use the `invite' command.
+
+:mode
+!channel [<chan>] mode *|+...-... (`mode *' is default.)
+ If not set to `*' then whenever I'm alone in the channel I'll set
+ and unset the channel modes specified. Only the modes imnpst are
+ supported. Precede one or more mode letters with + to set, - to
+ unset; any letters not mentioned will be left alone.
+
+:manager
+!channel [<chan>] manager + <nick> <nick> ... add managers
+!channel [<chan>] manager - <nick> <nick> ... remove managers
+!channel [<chan>] manager = <nick> <nick> ... set new manager list
+ Managers are those who can use the `channel' command to change
+ channel settings. Manager status is only effective for secure
+ nicks, after the manager has identified themselves.
+ If you op me on an unmanaged channel you become the only manager,
+ but you must use `!channel' to change a channel setting to make this
+ permanent. To make a channel unmanaged, make it have no managers.
+
+:identify
+You must identify yourself to change your settings if your nick is
+secure, and to use channel management commands. In ircII on chiark,
+just say `/!blight-id'. For other clients, see `help !identpass'.
+Once you are identified you can then register new nicks, change
+settings, etc. - so long as you remain on a channel that I'm on too
+(see `help !invite'). See also `help !register'.
+
+:blight-id
/blight-id is a command available in ircII (and possibly other
clients) on chiark. It sets up a password if you don't already have
one, and then uses it to identify you to Blight. If you want to
change your password, delete the file ~/.userv/irc-pass-md5.
+See `help !register' and `help !identpass'.
-!identpass
+:identpass
identpass <username> <password>
- Identification, for example with /blight-id, is actually done with
- `identpass', which feeds the md5sum of the password to `userv
- <username> irc-identpass <nick>'. That must exit 0 if all is well.
- By default this checks the md5sum against ~/.userv/irc-pass-md5.
+ Identifies you to Blight. To set up your password, or be reminded
+ of it, run the shell command `irc-blight-id' on chiark.
+ (On ircII on chiark `/!blight-id' is easier, see `help !blight-id'.)
+ See `help !identpass-internals' for technical details.
-!invite
-If you invite me to a channel I'll join it.
+:identpass-internals
+Identification, for example with /!blight-id, is actually done with
+`!identpass', which feeds the md5sum of the password to `userv
+<username> irc-identpass <nick>'. That must exit 0 if all is well.
+By default this checks the md5sum against ~/.userv/irc-pass-md5.
-!register
+:invite
+invite <nick> ... on channel
+invite <channel> <nick> ... privately
+ This command gets me to invite the specified people to the channel.
+ This can be disabled for managed channels - see `help !userinvite'.
+To get me to join a channel, just invite me to it.
+
+:kill
+kill <nick> [<reason>]
+ Asks me to throw that client off IRC completely, using my IRC
+ Operator privilege. You must have identified yourself as the user
+ to whom the nick is registered. (See `help !register'.)
+
+:register
register register your nick (or make it secure)
register delete delete your nick registration
register insecure register your nick insecurely
I only store settings for registered nicks. For `insecure' nicks
- anyone who currently holds that nick can change its settings,
- including securing it to their username. `secure' nicks can only
- have their settings changed by the user to which they are
- registered, after identifying themselves (see `help identify').
+ anyone who currently holds that nick can change its settings (see
+ `help !set', including securing it to their username. `secure'
+ nicks can only have their settings changed by the user to which they
+ are registered, after identifying themselves (see `help !identify').
-!set
+:set
set show your current settings
set <option> show the current setting of <option>
set <option> <value> set <option> to <value>
- See also `help register' and `help ident'. See just `help' for the
- list of options, and `help <option>' for info about that option.
+ Options: !timeformat ks|hms|beat
+ !marktime off|once|<n>[k]s|<n>m|<n>h
+ !tellme ...
+ See also `help <option>', `help !register' and `help !identify'
+
+:timeformat
+!set timeformat ks show times in seconds, kiloseconds, etc.
+set timeformat hms use days, hours, minutes, seconds
+set timeformat beat use beats (1000 B = 1 day)
+
+:ping
+ping [<string>]
+Replies with hopefully-useful information, including:
+* Current time, number of IRC and system users, and load averages.
+* Most recent traffic on a relevant channel (if sent privately, any
+ channel we're both on, otherwise the channel in question.) Only
+ actual message traffic counts, and \!-commands don't count either.
+* The specified string, if any.
+I can tell you this automatically if you like - see `help !marktime'.
+If you have undelivered messages sent with !tell by or to you, I'll
+let you know about those too (privately, if you ping on channel).
+
+:marktime
+!set marktime off Only an explicit `!ping' command sends info.
+set marktime once Send ping info shortly after I first see you.
+set marktime <!interval> Also send info regularly (min. interval 5m).
-!timeformat
-set timeformat ks show times in seconds, kiloseconds, etc.
-set timeformat hms use days, hours, minutes, seconds
+:interval
+Intervals in commands are <amount><unit>, where the unit is one of
+s for seconds, ks for kiloseconds, m for minutes, h for hours.
-#
+# Local variables:
+# fill-column: 69
+# End: