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