chiark / gitweb /
Proposed "tell" specification.
[ircbot] / helpinfos
index 902911e1e334acab4e1c14a8395b60069ef177c7..1c43fc2421ca1153a37f87b0b17ef54cd9794d67 100644 (file)
--- a/helpinfos
+++ b/helpinfos
@@ -12,9 +12,11 @@ General commands:           Registration and user settings:
  !summon <username>           (See `help !identify', `help !blight-id')
  !invite [<chan>] <nick>...  Channel settings (see `help channel'):
  !op [<chan>]                 !channel [<chan>] <setting> [....]
-Options:                    Additional help topics:
- !timeformat ks|hms           !identify !identpass !invite !blight-id
+ !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
@@ -22,6 +24,38 @@ help <command>   gives help on a command
 help <opt>       gives help on an option
 help <topic>     gives help on an additional topic
 
+: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
@@ -54,14 +88,38 @@ 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>] !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.
 
+: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.
@@ -73,6 +131,7 @@ 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.)
@@ -141,14 +200,32 @@ register insecure   register your nick insecurely
 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 !identify'.  See `help !overview'
- for the list of options, and `help <option>' for specific info.
+ 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.
+!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: