How HelpServ Works ------------------ HelpServ is a bot designed to help with queues of questions (or support requests). It's designed to work well in multiple channels at once. There is a one-to-one mapping between help bots and channels they act in; this is to allow privmsgs to work without having users specify a channel (which is much easier to use). For example, HelpServ might be in #support, and Interview could be in #counterstrike; both would be bots of this kind, but they would have totally separate user lists and data sets. Each channel/help bot has a set of "helper" users, defined by the channel admin(s). In the rest of this document, I will use "helper" to indicate someone on the helper list for the channel, and "user" to indicate all other users. There are also "manager" users and one "owner" for the bot. There are two primary modes: "command mode" and "help mode." Helpers default to command mode, and other users default to help mode. Command mode uses a command parser similar to the standard services. Help mode queues each user's messages into a virtual folder for later perusal by a helper. A helper who is actively using "help mode" may issue "command mode" lines by prefixing them with a "command word" for the channel. In Help Mode ------------ When a normal user joins the channel, a customizable greeting is sent. This usually tells the user to privmsg the bot for help (or to queue a question). It is recommended that this include a URL to a FAQ. The bot then shuts up until the user msgs them again. When a user msgs the bot for the first time after they join, it opens a virtual folder for them. The time of this request is filed, and they are added to a queue. It also sends another customizable message. The virtual folder is kept active until a helper closes it or the user is "lost"; when the virtual folder is closed, it is written out to a file (with statistics on when it was opened, closed, if (and when) it was picked up by a helper, etc). A user is "lost" when: - For QUIT-based requests (or queues), the user disconnects from IRC. - For PART-based requests, the user parts the channel. - For handle-based requests, the handle is unregistered. The "default" mode for queues is close-based -- which behaves as handle-based if the user is authed and quit-based otherwise. Helpers may also annotate an existing request, using the NOTE command. In Command Mode --------------- The following commands are defined: LIST - show the currently open requests (unassigned first, then assigned) NEXT - acts as PICKUP for the next unassigned request PICKUP - assign request number to self REASSIGN - reassign request to another (online) helper CLOSE - close request, with comment CLOSELAST - close last PICKUP'ed or HANDOFF'ed request NOTE [] - add a note to a request (if not a number, use last assigned) TOGMODE - switch between command mode and help mode IGNORE - Ignore the specified handle (or hostmask) IGNORE - in the future. Does not close current requests. ADDMANAGER - add or remove a manager or helper DELMANAGER (managers may add and remove users ADDHELPER and see statistics for anyone) DELHELPER PAGE [] - send a page, if enabled SET [