'[o]This article is currently only of historical interest, since PlugBot has taken an indefinite leave of absence from IRC.'[/o] '[l[http://battleofthebits.com/arena/Entry/plugbot+returns.gif/9245/[PlugBot] is an invention of '[l[http://battleofthebits.com/barracks/Profile/Jangler/[Jangler] which coexists with '[l[http://battleofthebits.com/barracks/Profile/Strobe/[Strobe]'s '[[BotB IRCbot[IRC bot] on #botb. Commands can be invoked by any non-alphanumeric character followed by the command name at the start of a message. Using too many commands in a short time span in #botb may get you automatically kicked, and further abuse will get you a 5-minute kickban. Therefore, if you'd like to query PlugBot freely you may prefer to do so in private message or in #plugbot. '[#[Command list] '[o]This command list may not necessarily be up-to-date, so check the output of the !commands command to see the current list of PlugBot's capabilities.'[/o] '[o]-- Meta-commands --'[/o] '[t[b2]!apropos'[/t] '[t[2]'[o]keywords'[/o]'[/t] Lists PlugBot's commands that are relevant to '[o]keywords'[/o]. '[t[b2]!commands'[/t] Lists all of PlugBot's commands. '[t[b2]!plugbot'[/t] Links to this page. '[t[b2]!whatis'[/t] '[t[2]'[o]command'[/o]'[/t] Gives a short help message for '[o]command'[/o]. '[o]-- BotB-specific commands --'[/o] '[t[b2]!badge'[/t] '[t[2]'[o]format'[/o]'[/t] OR '[t[b2]!hosts'[/t] '[t[2]'[o]format'[/o]'[/t] Lists BotBrs who have a badge for '[o]format'[/o]. '[t[b2]!bgrep'[/t] '[t[2]'[o]query'[/o]'[/t] If '[o]query'[/o] is an integer, links to the BotB battle with that ID number. Otherwise, links to the battle whose title most closely matches '[o]query'[/o]. '[t[b2]!egrep'[/t] '[t[2]'[o]query'[/o]'[/t] If '[o]query'[/o] is an integer, links to the BotB entry with that ID number. Otherwise, links to the entry whose title most closely matches '[o]query'[/o]. '[t[b2]!fact'[/t] Gives a random statistic about BotB. '[t[b2]!joogle'[/t] '[t[2]'[o]botbr'[/o]'[/t] Links to '[o]botbr'[/o]'s '[[Joogle] metaprofile. '[t[b2]!ladder'[/t] Links to the Joogle ladder page. '[t[b2]!lgrep'[/t] '[t[2]'[o]query'[/o]'[/t] OR '[t[b2]!lyceum'[/t] '[t[2]'[o]query'[/o]'[/t] Links to the BotB lyceum article with title most closely matching '[o]query'[/o]. This command is '[b]slow'[/b] because the lyceum is slow. '[t[b2]!markov'[/t] '[t[2]'[o]nick'[/o]'[/t] Prints a '[l[http://en.wikipedia.org/wiki/Markov_chain[Markov chain]-generated '[[IRC] message from '[o]nick'[/o] (or from a random nick if the nick was not found or not specified). Due to limitations in the IRC log format, this will only work for nicks of 11 characters or less. '[t[b2]!tag'[/t] '[t[2]'[o]tag'[/o]'[/t] Links to the BotB tag page for '[o]tag'[/o]. '[t[b2]!tgrep'[/t] '[t[2]'[o]tag'[/o]'[/t] Links to the BotB entry tagged with the largest instance of '[o]tag'[/o]. '[o]-- Auxiliary commands --'[/o] '[t[b2]!ddg'[/t] '[t[2]'[o]query'[/o]'[/t] Gives the resulting URL from a '[l[http://duckduckgo.com/[DuckDuckGo] search for '[o]query'[/o]. Check out the list of '[l[http://duckduckgo.com/bang.html["bangs"] you can use to directly search many other sites. '[t[b2]!define'[/t] '[t[2]'[o]word (category)'[/o]'[/t] Gives the definition of '[o]word'[/o] from '[l[http://www.wiktionary.org/[Wiktionary]. If the optional parameter '[o]category'[/o] is given (enclosed in parentheses), PlugBot will try to find a definition relevant to that category. '[t[b2]!hz'[/t] '[t[2]'[o]pitch'[/o]'[/t] Calculates the frequency of '[o]pitch'[/o] in hertz. '[o]pitch'[/o] should be specified in '[l[https://en.wikipedia.org/wiki/Scientific_pitch_notation[scientific pitch notation]. '[t[b2]!link'[/t] '[t[2]'[o]pattern'[/o]'[/t] Searches an IRC log for the last URL matching '[o]pattern'[/o]. '[t[b2]!nsfmania'[/t] Tells the remaining time for the current NSFMania submission or voting period. '[t[b2]!ruby'[/t] '[t[2]'[o]expression'[/o]'[/t] Evaluates '[o]expression'[/o] in a restricted '[l[https://www.ruby-lang.org/en/[Ruby] environment. '[t[b2]!scgrep'[/t] '[t[2]'[o]query'[/o]'[/t] Gives the first SoundCloud track from a search for '[o]query'[/o]. '[t[b2]!shorten'[/t] '[t[2]'[o]url'[/o]'[/t] Shortens '[o]url'[/o] using Google's URL shortener (goo.gl). '[t[b2]!wolfram'[/t] '[t[2]'[o]query (info)'[/o]'[/t] Gives the result from Wolfram|Alpha for '[o]query'[/o]. If the optional parameter '[o]info'[/o] is given, PlugBot will try to find a result with a matching title. '[t[0]'[o]-- secret commands? --'[/o]'[/t] '[#[Contributing] Writing a new command for PlugBot is dead simple. Simply create an executable script file (for Python, Ruby, Bash, et cetera). The script will be executed when a command with the script's filename is invoked. The channel, nick, and parameter string of the command invocation are given as the first three arguments to the program, and the script's standard output is redirected to IRC. If you've written a command you'd like to be included, just talk to Jangler on '[[IRC]. For a !whatis help message to be printed, include a comment in the script in the format "HELP:". Confused? See the '[l[http://pastie.org/private/1rqvblnrbtezowem4nlayw[source code] for the !tag command.