VimDiesel -- the (experimental) official FreeBSD IRC helper bot
This document is WIP.
Commands and actions
!ask -- reply with "Please don't ask to ask a question, simply ask the question, all on one line and in the channel so that others can read and follow up easily."
!paste -- reply with "For posting multi-line texts in the channel, please use https://dpaste.org"
- install a pastebin on bsdlabs.io
- integrate the pastebin with a callback URL post in a channel (first enumerate security issues and why that's a bad idea)
!bug <number> -- reply with a summarized link to bugzilla, eg: "Issue <number>: https://bugs.freebsd.org/12345 -- <summary>"
- or even better multiline response: 1. Link + title, 2. summary
- vary on "bug" and "issue" trigger keywords
add autoparse-autopost capability in #freebsd-bugs, so whenever someone mentions "issue 12345" the bot would respond as if "!issue 12345" was called
!portsmon <name> -- give a link to portsmon, variants:
portsmon <name>
portsmon <category>/<name>
!latest -- reply with latest supported versions, eg. "Latest FreeBSD versions are 11.0-p1, 10.3-p9 and 9.3-p47"
- Find a way to parse these automagically, from svn or something
!faq <topic> -- the FAQ command would summarize and link some frequently asked topics, for instance:
!faq graphics -> link to the FreeBSD graphics stack wiki
!pkg <package> -- show some quick info about a package
- with link to freshports?
!man <manpage>(<category>) -- link to the manpage for given item, ideally parse out the title from the manpage and give something like "<title>: <link>"
!news -- list latest news via FreeBSD news RSS
!ops -- a way to summon the chanops, eg. in case of troll invasion
Ideally, many of those commands would have a way to direct the answer to a user. For example:
!faq graphics | blackflow -- this would prefix the output with "blackflow: " so the user is highlighted
!faq graphics > blackflow -- this would cause the bot to PM blackflow with that output, and in the channel it would say something like "blackflow: I just PM'd you with info"
Periodics and automatic behavior
1. Post quick links to various items of interest:
In #freebsd-bugs post latest newly submitted bugs, link to and summary
In #freebsd-security post latest newly submitted security bugs (keyword: security, TODO: Component: Security of Product: Ports&Packages)
- In all channels, post major news only
2. Message parsing and auto-reply (plugin: MessageParser)
In #freebsd-bugs the bot listens to any appearance of bug (\d+) or issue (\d+) patterns and then posts a link to Bugzilla with parsed issue number.
Pre-beta testing TODO
- Security audit, make sure the bot is read-only except to authenticated users
- Some plugins are open for anyone like Alias and Factoids
- One solution is to set anti-capabilities per channel
- Another (find out how) is to remove all such default capabilities from users
Decide if channel-specific factoids are sufficient for !faq or find another solution if we want those to be available to all the channels