The new bb system
So, um, we got this new bb system. This is a talkier version of "help
bb" that explains the new commands and why I put them in. The plan is
to switch the mail system over to this setup in a week or two,
assuming stuff works out.
Undelete: This is mostly going to be for when mail uses this
system, but if you delete a message accidentally, you can undelete
it. There's a limit, currently 5, of messages that are remembered for
undeletion.
Syntax:
- bb undelete lists messages in the undelete queue on the
main bb.
- bb undelete = range undeletes messages in range
- bb undelete = #channel lists messages in the
undelete queue for #channel's bb.
- bb undelete = #channel : range undeletes
messages in range.
Channel bbs: Each channel now has an associated bb. You can
post to it and read it and so on. Only people on the channel can use
its bb, so obviously if you've got a private channel, that means the
bb is also private. Furthermore, if the channel is moderated (ie, only
channel popes can talk) then the bb is also moderated (only channel
popes can post, although anyone on the channel can read).
Syntax:
- bb #channel lists messages on #channel just
like bb does for the main board.
- bb list = #channel : range is the longer
way to list messages.
- bb #channel range reads messages on #channel
in range. (Note that only people on the channel will see
NewsBoy's "a new message has been posted" holler)
- bb read = #channel : range is the longer
way to read messages.
- bb #channel = subject : body posts a
message on #channel.
- bb delete = #channel : range deletes
messages on #channel in range.
Channel ranges: Previously you were more or less restricted to
single numbers. In the new system, anyplace a command above says
range you can use any of the following:
- X (a single number)
- X-Y (a range of numbers)
- first X (the first X messages)
- last X (the last X messages -- this is the default for
bb and bb list)
- new (all new messages -- this is what "bb all" does)
- all (all messages)
You can also combine these, as in "1, 3, 4-7, new". The number of
messages listed by bb and bb list is controlled by
your bblist field (eg, to have the default be to print 10, do
@field me = bblist : 10), defaulting to 19 if you haven't set
a value.
Channel numbering: This is the most confusing change. I think
I've got a system that's an improvement on the old one, but if you've
got a better suggestion, feel free to let me know. Basically, the
problems with the old system were that the numbers kept changing when
people deleted older messages, and that the list got too long. The
second problem is more or less fixed by the changes to channel range,
so it was just a question of the numbers changing.
One obvious idea was to use absolute numbering: that is, when a
message is created, it gets a number, and that number never
changes. Message 17 is always message 17, and doing "read 17" or
whatever will always read that one and no other. The downside to this
is a year from now the message counter is up to 325 and we're all
typing three-digit numbers to read every message.
So the current system is a compromise, determined by the value of your
bbset field. If it is set to 0, that means you use absolute
numbering, just as described above. If it is set to non-zero, that
value is used as the size of your relative set. The relative
set covers the last X messages posted, and messages in the set can be
referred to as 1-X. For instance, if there are one hundred messages,
and your relative set is 5, you can refer to the last five messages
as, respectively, 1, 2, 3, 4, and 5.
The advantage of using a relative set is the most recent messages on
the board can always be referred to using small numbers. Note also
that if you set your bbset field to a very large number, like
1000, it will effectively be the same as the old system
numbering-wise.
Whether or not you use a relative set, you can also use absolute
numbers by prefixing the number with a \. For instance "\3" is the
message with absolute id 3, not the third message in your relative
set. The delete and undelete commands report their results in absolute
numbers, which makes it easy to reverse the action if you screwed up.
Also, note that when you read a message, its absolute id is given at
the top.
So, summary: @field me = bbset : 20 (or just clear the field
with @field me = bbset : ) will give you the new
behavior. @field me = bbset : 0 will give you absolute
numbering. @field me = bbset : 1000 will be more or less the
same as the previous numbering system.
And that's all the changes. If you have comments, mudmail me or
something.
-inky