chiark / gitweb /
Proposed "tell" specification.
[ircbot] / helpinfos
index 18b5402eed8f89714cb0f7ea1256fd3b648e9377..1c43fc2421ca1153a37f87b0b17ef54cd9794d67 100644 (file)
--- a/helpinfos
+++ b/helpinfos
-!
+::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 (see `help channel'):
- ops                         channel [<chan>] <setting> [....]
-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>...  Channel settings (see `help channel'):
+ !op [<chan>]                 !channel [<chan>] <setting> [....]
+ !leave [<chan>]             Additional help topics:
+ !ping [<stuff ...>]          !identify !identpass !invite !blight-id
+ !tell <nick> <message ...>
+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' setting, or failing that your `set !tellbounce'.
+
+:tellbounce
+!set tellbounce after <!interval>   (Default: 80h.)
+ If undelivered longer than that, I will:
+!set tellbounce discard              Just throw it away.  (Default.)
+!set tellbounce tellme <interval>    Try a bounce `tell' that long.
+!set tellbounce mailto <email-addr>  Email you.  (Secure nicks only.)
+
+:tellme
+!set tellme configures how you receive messages sent with !tell:
+ set tellme insecure              When I see you.  (Default.)
+ set tellme secure                Hide body until secure ident.
+ set tellme refuse                Do not accept messages.
+ set tellme mailto <email-addr>   By email.  (Secure nicks only.)
+and also when to consider them delivered:
+ set tellme unreliable            Tell you once, then forget.
+ set tellme pester <interval>     Remind until you say !delmsg.
+ set tellme reliable <interval>   Like pester, but identify req'd.
+ 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.)
+
+:delmsg
+delmsg [<nick> ...]
+Forgets about messages I've told you about: 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.
+
+: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.
-
-!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             on channel
-op <channel>   (privately)
+ 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.
-
-!channel
-channel [<chan>] [show]                     show settings
-channel [<chan>] manager +|-|= <nick> ...   set manager list
-channel [<chan>] autojoin yes|no            join at bot start ?
+ 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.
 
-!autojoin
-channel [<chan>] autojoin yes|no      (`yes' is default.)
+: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.
-(Not yet implemented.)
 
-!manager
-channel [<chan>] manager + <nick> <nick> ...  add managers
-channel [<chan>] manager - <nick> <nick> ...  remove managers
-channel [<chan>] manager = <nick> <nick> ...  set new manager list
+: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
+ 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 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'.)
+: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
 /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.
-
-!invite
-If you invite me to a channel I'll join it.
-
-!register
+ 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.
+
+: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.
+
+: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.
+
+: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   !marktime off|once|<n>[k]s|<n>m|<n>h
+ See also `help <option>', `help !register' and `help !identify'
 
-!timeformat
-set timeformat ks   show times in seconds, kiloseconds, etc.
+:timeformat
+!set timeformat ks   show times in seconds, kiloseconds, etc.
 set timeformat hms  use days, hours, minutes, seconds
 
-#
+: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'.
+
+: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).
+
+: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.
+# End: