doc: update TOCs and misc improvements

This commit is contained in:
Pragmatic Software 2020-01-21 18:24:16 -08:00
parent ca0051fb68
commit 52be2c6de8
8 changed files with 295 additions and 324 deletions

View File

@ -1,53 +1,53 @@
# Administrative # Administrative
<!-- md-toc-begin --> <!-- md-toc-begin -->
* [Logging in and out](#logging-in-and-out) * [Logging in and out](#logging-in-and-out)
* [login](#login) * [login](#login)
* [logout](#logout) * [logout](#logout)
* [Admin management commands](#admin-management-commands) * [Admin management commands](#admin-management-commands)
* [adminadd](#adminadd) * [adminadd](#adminadd)
* [adminrem](#adminrem) * [adminrem](#adminrem)
* [Admin levels](#admin-levels) * [Admin levels](#admin-levels)
* [adminset](#adminset) * [adminset](#adminset)
* [adminunset](#adminunset) * [adminunset](#adminunset)
* [Admin metadata list](#admin-metadata-list) * [Admin metadata list](#admin-metadata-list)
* [Listing admins](#listing-admins) * [Listing admins](#listing-admins)
* [Channel management commands](#channel-management-commands) * [Channel management commands](#channel-management-commands)
* [join](#join) * [join](#join)
* [part](#part) * [part](#part)
* [chanadd](#chanadd) * [chanadd](#chanadd)
* [chanrem](#chanrem) * [chanrem](#chanrem)
* [chanset](#chanset) * [chanset](#chanset)
* [chanunset](#chanunset) * [chanunset](#chanunset)
* [chanlist](#chanlist) * [chanlist](#chanlist)
* [Channel metadata list](#channel-metadata-list) * [Channel metadata list](#channel-metadata-list)
* [ignore](#ignore) * [ignore](#ignore)
* [unignore](#unignore) * [unignore](#unignore)
* [whitelist](#whitelist) * [whitelist](#whitelist)
* [blacklist](#blacklist) * [blacklist](#blacklist)
* [op](#op) * [op](#op)
* [deop](#deop) * [deop](#deop)
* [voice](#voice) * [voice](#voice)
* [devoice](#devoice) * [devoice](#devoice)
* [mode](#mode) * [mode](#mode)
* [ban/mute](#banmute) * [ban/mute](#banmute)
* [unban/unmute](#unbanunmute) * [unban/unmute](#unbanunmute)
* [invite](#invite) * [invite](#invite)
* [kick](#kick) * [kick](#kick)
* [Module management commands](#module-management-commands) * [Module management commands](#module-management-commands)
* [load](#load) * [load](#load)
* [unload](#unload) * [unload](#unload)
* [Plugin management commands](#plugin-management-commands) * [Plugin management commands](#plugin-management-commands)
* [plug](#plug) * [plug](#plug)
* [unplug](#unplug) * [unplug](#unplug)
* [replug](#replug) * [replug](#replug)
* [pluglist](#pluglist) * [pluglist](#pluglist)
* [Miscellaneous commands](#miscellaneous-commands) * [Miscellaneous commands](#miscellaneous-commands)
* [export](#export) * [export](#export)
* [refresh](#refresh) * [refresh](#refresh)
* [reload](#reload) * [reload](#reload)
* [sl](#sl) * [sl](#sl)
* [die](#die) * [die](#die)
<!-- md-toc-end --> <!-- md-toc-end -->
## Logging in and out ## Logging in and out

View File

@ -3,14 +3,14 @@
PBot can monitor channels for abusive behavior and take appropriate action. PBot can monitor channels for abusive behavior and take appropriate action.
<!-- md-toc-begin --> <!-- md-toc-begin -->
* [Flood control](#flood-control) * [Flood control](#flood-control)
* [Message flood](#message-flood) * [Message flood](#message-flood)
* [Join flood](#join-flood) * [Join flood](#join-flood)
* [Enter key abuse](#enter-key-abuse) * [Enter key abuse](#enter-key-abuse)
* [Nick flood](#nick-flood) * [Nick flood](#nick-flood)
* [Anti-away/Nick-control](#anti-awaynick-control) * [Anti-away/Nick-control](#anti-awaynick-control)
* [Anti-auto-rejoin control](#anti-auto-rejoin-control) * [Anti-auto-rejoin control](#anti-auto-rejoin-control)
* [Opping/Deopping](#oppingdeopping) * [Opping/Deopping](#oppingdeopping)
<!-- md-toc-end --> <!-- md-toc-end -->
## Flood control ## Flood control

View File

@ -58,7 +58,7 @@
* [unplug](Admin.md#unplug) * [unplug](Admin.md#unplug)
* [replug](Admin.md#replug) * [replug](Admin.md#replug)
* [pluglist](Admin.md#pluglist) * [pluglist](Admin.md#pluglist)
* [Command metadata commands](#command-metadata-commands) * [Command metadata](#command-metadata)
* [cmdset](Admin.md#cmdset) * [cmdset](Admin.md#cmdset)
* [cmdunset](Admin.md#cmdunset) * [cmdunset](Admin.md#cmdunset)
* [Registry commands](#registry-commands) * [Registry commands](#registry-commands)
@ -76,7 +76,7 @@
* [sl](Admin.md#sl) * [sl](Admin.md#sl)
* [die](Admin.md#die) * [die](Admin.md#die)
* [Factoid commands](#factoid-commands) * [Factoid commands](#factoid-commands)
* [Adding/remove factoids](#addingremove-factoids) * [Adding/removing factoids](#addingremoving-factoids)
* [factadd](Factoids.md#factadd) * [factadd](Factoids.md#factadd)
* [factrem](Factoids.md#factrem) * [factrem](Factoids.md#factrem)
* [factalias](Factoids.md#factalias) * [factalias](Factoids.md#factalias)
@ -88,12 +88,13 @@
* [factmove](Factoids.md#factmove) * [factmove](Factoids.md#factmove)
* [factundo](Factoids.md#factundo) * [factundo](Factoids.md#factundo)
* [factredo](Factoids.md#factredo) * [factredo](Factoids.md#factredo)
* [Factoid metadata](#factoid-metadata)
* [factset](Factoids.md#factset) * [factset](Factoids.md#factset)
* [factunset](Factoids.md#factunset) * [factunset](Factoids.md#factunset)
* [Information about factoids](#information-about-factoids) * [Information about factoids](#information-about-factoids)
* [factlog](Factoids.md#factlog)
* [factfind](Factoids.md#factfind) * [factfind](Factoids.md#factfind)
* [factinfo](Factoids.md#factinfo) * [factinfo](Factoids.md#factinfo)
* [factlog](Factoids.md#factlog)
* [count](Factoids.md#count) * [count](Factoids.md#count)
* [histogram](Factoids.md#histogram) * [histogram](Factoids.md#histogram)
* [top20](Factoids.md#top20) * [top20](Factoids.md#top20)
@ -101,18 +102,15 @@
<!-- md-toc-end --> <!-- md-toc-end -->
## Command interpreter ## Command interpreter
PBot has a powerful command interpreter with useful functionality. PBot has a powerful command interpreter with useful functionality.
### Piping ### Piping
You can pipe output from one command as input into another command, indefinitely. You can pipe output from one command as input into another command, indefinitely.
<pragma-> !echo hello world | {sed s/world/everybody/} | {uc} <pragma-> !echo hello world | {sed s/world/everybody/} | {uc}
<PBot> HELLO EVERYBODY <PBot> HELLO EVERYBODY
### Substitution ### Substitution
You can insert the output from another command at any point within a command. This You can insert the output from another command at any point within a command. This
substitutes the command with its output at the point where the command was used. substitutes the command with its output at the point where the command was used.
@ -137,14 +135,12 @@ factoid otherwise it will be expanded first.
<PBot> https://google.com/search?tbm=isch&q=spaces%20%26%20stuff <PBot> https://google.com/search?tbm=isch&q=spaces%20%26%20stuff
### Chaining ### Chaining
You can execute multiple commands sequentially as one command. You can execute multiple commands sequentially as one command.
<pragma-> !echo Test! ;;; me smiles. ;;; version <pragma-> !echo Test! ;;; me smiles. ;;; version
<PBot> Test! * PBot smiles. PBot version 2696 2020-01-04 <PBot> Test! * PBot smiles. PBot version 2696 2020-01-04
### Variables ### Variables
You can use factoids as variables and interpolate them within commands. You can use factoids as variables and interpolate them within commands.
<pragma-> !factadd greeting "Hello, world" <pragma-> !factadd greeting "Hello, world"
@ -159,7 +155,6 @@ combine their effects.
<PBot> HELLO, WORLD <PBot> HELLO, WORLD
### Inline invocation ### Inline invocation
You can invoke up to three commands inlined within a message. If the message You can invoke up to three commands inlined within a message. If the message
is addressed to a nick, the output will also be addressed to them. is addressed to a nick, the output will also be addressed to them.
@ -168,17 +163,14 @@ is addressed to a nick, the output will also be addressed to them.
<PBot> newuser13: To learn all about me, see https://github.com/pragma-/pbot/tree/master/doc <PBot> newuser13: To learn all about me, see https://github.com/pragma-/pbot/tree/master/doc
## Types of commands ## Types of commands
There are several ways of adding new commands to PBot. We'll go over them here. There are several ways of adding new commands to PBot. We'll go over them here.
### Built-in commands ### Built-in commands
Built-in commands are commands that are internal and native to PBot. They are Built-in commands are commands that are internal and native to PBot. They are
executed within PBot's API and context. They have access to PBot internal executed within PBot's API and context. They have access to PBot internal
subroutine and data structures. subroutine and data structures.
#### Creating new built-in commands #### Creating new built-in commands
Built-in commands are created via the `register()` function of the `Commands` Built-in commands are created via the `register()` function of the `Commands`
module. Such commands are registered throughout PBot's source code. The owner module. Such commands are registered throughout PBot's source code. The owner
of the PBot instance can locally add new commands by editing PBot's source code of the PBot instance can locally add new commands by editing PBot's source code
@ -188,7 +180,6 @@ or by acquiring and loading Plugins.
* built-in commands have access to PBot internal API functions and data structures * built-in commands have access to PBot internal API functions and data structures
#### Plugins #### Plugins
Additional built-in commands can be created by loading PBot Plugins. Plugins are Additional built-in commands can be created by loading PBot Plugins. Plugins are
stand-alone self-contained units of code that can be loaded by the PBot owner. stand-alone self-contained units of code that can be loaded by the PBot owner.
@ -196,7 +187,6 @@ stand-alone self-contained units of code that can be loaded by the PBot owner.
* PBot Plugins have access to PBot internal API functions and data structures * PBot Plugins have access to PBot internal API functions and data structures
### Factoids ### Factoids
Factoids are another type of command. Factoids are simple text commands which Factoids are another type of command. Factoids are simple text commands which
anybody can create. In their most basic form, they simply display their text anybody can create. In their most basic form, they simply display their text
when invoked. However, significantly more complex Factoids can be created by when invoked. However, significantly more complex Factoids can be created by
@ -209,7 +199,6 @@ using the [powerful interpreter features](#command-interpreter) and by using the
For more information, see the [Factoids documentations.](Factoids.md) For more information, see the [Factoids documentations.](Factoids.md)
#### Code Factoids #### Code Factoids
Code Factoids are Factoids whose text begins with the `/code` command. Code Factoids are Factoids whose text begins with the `/code` command.
These Factoids will execute their text using the scripting or programming These Factoids will execute their text using the scripting or programming
language specified by the argument following the `/code` command. language specified by the argument following the `/code` command.
@ -220,7 +209,6 @@ language specified by the argument following the `/code` command.
For more information, see the [Code Factoid documentation.](Factoids.md#code) For more information, see the [Code Factoid documentation.](Factoids.md#code)
#### Modules #### Modules
Modules are simple stand-alone external command-line scripts and programs. Just Modules are simple stand-alone external command-line scripts and programs. Just
about any application that can be run in your command-line shell can be loaded as about any application that can be run in your command-line shell can be loaded as
a PBot module. a PBot module.
@ -231,12 +219,10 @@ a PBot module.
For more information, see the [Modules documentation.](Modules.md) For more information, see the [Modules documentation.](Modules.md)
## List of commands ## List of commands
Here is the list of all of PBot's built-in commands and some of the more useful Here is the list of all of PBot's built-in commands and some of the more useful
Factoids, Plugins and Modules. Factoids, Plugins and Modules.
### version ### version
The `version` command displays the currently installed PBot revision and The `version` command displays the currently installed PBot revision and
revision date. It will also check to see if there is a new version available. revision date. It will also check to see if there is a new version available.
@ -244,20 +230,16 @@ revision date. It will also check to see if there is a new version available.
<PBot> PBot version 2845 2020-01-19; new version available: 2850 2020-01-20! <PBot> PBot version 2845 2020-01-19; new version available: 2850 2020-01-20!
### help ### help
The `help` command displays useful information about built-in commands and Factoids. The `help` command displays useful information about built-in commands and Factoids.
Usage: `help [keyword] [channel]` Usage: `help [keyword] [channel]`
### Administrative commands ### Administrative commands
#### Logging in and out of PBot #### Logging in and out of PBot
##### [login](Admin.md#login) ##### [login](Admin.md#login)
##### [logout](Admin.md#logout) ##### [logout](Admin.md#logout)
#### Admin management commands #### Admin management commands
##### [adminadd](Admin.md#adminadd) ##### [adminadd](Admin.md#adminadd)
##### [adminrem](Admin.md#adminrem) ##### [adminrem](Admin.md#adminrem)
##### [adminset](Admin.md#adminset) ##### [adminset](Admin.md#adminset)
@ -265,7 +247,6 @@ Usage: `help [keyword] [channel]`
##### [list admins](Admin.md#listing-admins) ##### [list admins](Admin.md#listing-admins)
#### Channel management commands #### Channel management commands
##### [join](Admin.md#join) ##### [join](Admin.md#join)
##### [part](Admin.md#part) ##### [part](Admin.md#part)
##### [chanadd](Admin.md#chanadd) ##### [chanadd](Admin.md#chanadd)
@ -300,8 +281,7 @@ Usage: `help [keyword] [channel]`
##### [replug](Admin.md#replug) ##### [replug](Admin.md#replug)
##### [pluglist](Admin.md#pluglist) ##### [pluglist](Admin.md#pluglist)
#### Command metadata commands #### Command metadata
##### [cmdset](Admin.md#cmdset) ##### [cmdset](Admin.md#cmdset)
##### [cmdunset](Admin.md#cmdunset) ##### [cmdunset](Admin.md#cmdunset)
@ -316,7 +296,6 @@ Usage: `help [keyword] [channel]`
##### [regunsetmeta](Registry.md#regunsetmeta) ##### [regunsetmeta](Registry.md#regunsetmeta)
#### Miscellaneous admin commands #### Miscellaneous admin commands
##### [export](Admin.md#export) ##### [export](Admin.md#export)
##### [refresh](Admin.md#refresh]) ##### [refresh](Admin.md#refresh])
##### [reload](Admin.md#reload]) ##### [reload](Admin.md#reload])
@ -324,8 +303,7 @@ Usage: `help [keyword] [channel]`
##### [die](Admin.md#die) ##### [die](Admin.md#die)
### Factoid commands ### Factoid commands
#### Adding/removing factoids
#### Adding/remove factoids
##### [factadd](Factoids.md#factadd) ##### [factadd](Factoids.md#factadd)
##### [factrem](Factoids.md#factrem) ##### [factrem](Factoids.md#factrem)
##### [factalias](Factoids.md#factalias) ##### [factalias](Factoids.md#factalias)
@ -339,13 +317,15 @@ Usage: `help [keyword] [channel]`
##### [factmove](Factoids.md#factmove) ##### [factmove](Factoids.md#factmove)
##### [factundo](Factoids.md#factundo) ##### [factundo](Factoids.md#factundo)
##### [factredo](Factoids.md#factredo) ##### [factredo](Factoids.md#factredo)
#### Factoid metadata
##### [factset](Factoids.md#factset) ##### [factset](Factoids.md#factset)
##### [factunset](Factoids.md#factunset) ##### [factunset](Factoids.md#factunset)
#### Information about factoids #### Information about factoids
##### [factlog](Factoids.md#factlog)
##### [factfind](Factoids.md#factfind) ##### [factfind](Factoids.md#factfind)
##### [factinfo](Factoids.md#factinfo) ##### [factinfo](Factoids.md#factinfo)
##### [factlog](Factoids.md#factlog)
##### [count](Factoids.md#count) ##### [count](Factoids.md#count)
##### [histogram](Factoids.md#histogram) ##### [histogram](Factoids.md#histogram)
##### [top20](Factoids.md#top20) ##### [top20](Factoids.md#top20)

View File

@ -1,66 +1,61 @@
# Factoids # Factoids
<!-- md-toc-begin --> <!-- md-toc-begin -->
* [About](#about) * [About](#about)
* [Channel namespaces](#channel-namespaces) * [Channel namespaces](#channel-namespaces)
* [Special commands](#special-commands) * [Special commands](#special-commands)
* [/say](#say) * [/say](#say)
* [/me](#me) * [/me](#me)
* [/call](#call) * [/call](#call)
* [/msg](#msg) * [/msg](#msg)
* [/code](#code) * [/code](#code)
* [Supported languages](#supported-languages) * [Supported languages](#supported-languages)
* [Special variables](#special-variables) * [Special variables](#special-variables)
* [testargs example](#testargs-example) * [testargs example](#testargs-example)
* [Setting a usage message](#setting-a-usage-message) * [Setting a usage message](#setting-a-usage-message)
* [poll/vote example](#pollvote-example) * [poll/vote example](#pollvote-example)
* [SpongeBob Mock meme example](#spongebob-mock-meme-example) * [SpongeBob Mock meme example](#spongebob-mock-meme-example)
* [Using command-piping](#using-command-piping) * [Using command-piping](#using-command-piping)
* [Improving SpongeBob Mock meme](#improving-spongebob-mock-meme) * [Improving SpongeBob Mock meme](#improving-spongebob-mock-meme)
* [Formatting and editing lengthy Code Factoids](#formatting-and-editing-lengthy-code-factoids) * [Formatting and editing lengthy Code Factoids](#formatting-and-editing-lengthy-code-factoids)
* [Special variables](#special-variables-1) * [Special variables](#special-variables-1)
* [$args](#args) * [$args](#args)
* [$arg[n]](#argn) * [$arg[n]](#argn)
* [$arg[n:m]](#argnm) * [$arg[n:m]](#argnm)
* [$arglen](#arglen) * [$arglen](#arglen)
* [$channel](#channel) * [$channel](#channel)
* [$nick](#nick) * [$nick](#nick)
* [$randomnick](#randomnick) * [$randomnick](#randomnick)
* [$0](#0) * [$0](#0)
* [List variables](#list-variables) * [List variables](#list-variables)
* [Expansion modifiers](#expansion-modifiers) * [Expansion modifiers](#expansion-modifiers)
* [action_with_args](#action_with_args) * [action_with_args](#action_with_args)
* [add_nick](#add_nick) * [add_nick](#add_nick)
* [Adding a factoid](#adding-a-factoid) * [Adding/removing factoids](#addingremoving-factoids)
* [factadd](#factadd) * [factadd](#factadd)
* [Viewing/triggering a factoid](#viewingtriggering-a-factoid) * [factrem](#factrem)
* [Viewing/triggering another channel's factoid](#viewingtriggering-another-channels-factoid) * [forget](#forget)
* [fact](#fact) * [factalias](#factalias)
* [Deleting a factoid](#deleting-a-factoid) * [Displaying factoids](#displaying-factoids)
* [factrem](#factrem) * [fact](#fact)
* [forget](#forget) * [factshow](#factshow)
* [Aliasing a factoid](#aliasing-a-factoid) * [Editing factoids](#editing-factoids)
* [factalias](#factalias) * [factchange](#factchange)
* [Moving/renaming a factoid](#movingrenaming-a-factoid) * [factmove](#factmove)
* [factmove](#factmove) * [factundo](#factundo)
* [Changing a factoid](#changing-a-factoid) * [factredo](#factredo)
* [factchange](#factchange) * [Factoid Metadata](#factoid-metadata)
* [factundo](#factundo) * [factset](#factset)
* [factredo](#factredo) * [factunset](#factunset)
* [Factoid Metadata](#factoid-metadata) * [Factoid Metadata List](#factoid-metadata-list)
* [factset](#factset) * [Information about factoids](#information-about-factoids)
* [factunset](#factunset) * [factfind](#factfind)
* [Factoid Metadata List](#factoid-metadata-list) * [factinfo](#factinfo)
* [Finding a factoid](#finding-a-factoid) * [factlog](#factlog)
* [factfind](#factfind) * [factset](#factset-1)
* [Information about a factoid](#information-about-a-factoid) * [count](#count)
* [factinfo](#factinfo) * [histogram](#histogram)
* [factshow](#factshow) * [top20](#top20)
* [factset](#factset-1)
* [factlog](#factlog)
* [count](#count)
* [histogram](#histogram)
* [top20](#top20)
<!-- md-toc-end --> <!-- md-toc-end -->
## About ## About
@ -175,7 +170,7 @@ All the variables listed in [Special Variables](#special-variables-1) are expand
the code is executed or interpreted. the code is executed or interpreted.
[List variables](#list-variables) are also expanded beforehand as well. You can prevent this by using [`factset`](#factset) [List variables](#list-variables) are also expanded beforehand as well. You can prevent this by using [`factset`](#factset)
to set the `interpolate` [factoid meta-data](#factoid-metadata) to `0`. Alternatively, you can prevent `$variables` in to set the `interpolate` [factoid metadata](#factoid-metadata) to `0`. Alternatively, you can prevent `$variables` in
the code from expanding by prefixing their name with an underscore, i.e. `$_variable`. the code from expanding by prefixing their name with an underscore, i.e. `$_variable`.
#### testargs example #### testargs example
@ -195,7 +190,7 @@ the C programming language because why not?
#### Setting a usage message #### Setting a usage message
Suppose you want the command to display a usage message if there are no arguments provided. You can use Suppose you want the command to display a usage message if there are no arguments provided. You can use
the [`factset`](#factset) command to set the `usage` [factoid meta-data](#factoid-metadata). the [`factset`](#factset) command to set the `usage` [factoid metadata](#factoid-metadata).
<pragma-> !testargs <pragma-> !testargs
<PBot> args: <PBot> args:
@ -412,7 +407,7 @@ Modifier | Description
`:<channel>` | Looks for variable in `<channel>` first; use `global` to refer to the global channel `:<channel>` | Looks for variable in `<channel>` first; use `global` to refer to the global channel
## action_with_args ## action_with_args
You can use the [`factset`](#factset) command to set a special [factoid meta-data](#factoid-metadata) key named `action_with_args` to trigger an alternate message if an argument has been supplied. You can use the [`factset`](#factset) command to set a special [factoid metadata](#factoid-metadata) key named `action_with_args` to trigger an alternate message if an argument has been supplied.
<pragma-> !factadd global snack is /me eats a cookie. <pragma-> !factadd global snack is /me eats a cookie.
<PBot> snack added to the global channel <PBot> snack added to the global channel
@ -427,9 +422,9 @@ You can use the [`factset`](#factset) command to set a special [factoid meta-dat
* PBot gives orbitz a cookie. * PBot gives orbitz a cookie.
## add_nick ## add_nick
You can use the [`factset`](#factset) command to set a special [factoid meta-data](#factoid-metadata) key named `add_nick` to prepend the nick of the caller to the output. This is mostly useful for modules. You can use the [`factset`](#factset) command to set a special [factoid metadata](#factoid-metadata) key named `add_nick` to prepend the nick of the caller to the output. This is mostly useful for modules.
## Adding a factoid ## Adding/removing factoids
### factadd ### factadd
Usage: `factadd [-f] [channel] <keyword> (<description> | -url <Web paste site>)` Usage: `factadd [-f] [channel] <keyword> (<description> | -url <Web paste site>)`
@ -446,19 +441,6 @@ will retain all formatting, including line-breaks and indentation.
<pragma-> !factadd newfactoid -url http://ix.io/XXXX <pragma-> !factadd newfactoid -url http://ix.io/XXXX
<PBot> newfactoid added to global channel. <PBot> newfactoid added to global channel.
## Viewing/triggering a factoid
To view or trigger a factoid, one merely issues its keyword as a command.
<pragma-> PBot, c?
<PBot> C rocks!
## Viewing/triggering another channel's factoid
### fact
To view or trigger a factoid belonging to a specific channel, use the `fact` command.
Usage: `fact <channel> <keyword> [arguments]`
## Deleting a factoid
### factrem ### factrem
### forget ### forget
@ -466,45 +448,61 @@ To remove a factoid, use the `factrem` or `forget` command.
Usage: `factrem [channel] <keyword>` `forget [channel] <keyword>` Usage: `factrem [channel] <keyword>` `forget [channel] <keyword>`
## Aliasing a factoid
### factalias ### factalias
To create an factoid that acts as an alias for a command, use the `factalias` command or set the factoid's `action` meta-data to `/call <command>`. To create an factoid that acts as an alias for a command, use the `factalias` command or set the factoid's `action` metadata to `/call <command>`.
Usage: `factalias [channel] <keyword> <command>` Usage: `factalias [channel] <keyword> <command>`
<pragma-> !factadd ##c offtopic is /say In this channel, $args is off-topic. <pragma-> !factadd offtopic /say In this channel, $args is off-topic.
<pragma-> !offtopic C++ <pragma-> !offtopic C++
<PBot> In this channel, C++ is off-topic. <PBot> In this channel, C++ is off-topic.
<pragma-> !factalias ##c C++ offtopic C++ <pragma-> !factadd C++ /call offtopic C++
<pragma-> !C++ <pragma-> !C++
<PBot> In this channel, C++ is off-topic. <PBot> In this channel, C++ is off-topic.
<!-- --> <!-- -->
<pragma-> !factadd ##c book is /me points accusingly at $args, "Where is your book?!" <pragma-> !factadd book /me points accusingly at $args, "Where is your book?"
<PBot> book added to ##c
<pragma-> !book newbie <pragma-> !book newbie
* PBot points accusingly at newbie, "Where is your book?!" * PBot points accusingly at newbie, "Where is your book?"
<pragma-> !factadd ##c rafb /call book <pragma-> !factalias rafb book
<PBot> rafb added to ##c
<pragma-> !rafb runtime <pragma-> !rafb runtime
* PBot points accusingly at runtime, "Where is your book?!" * PBot points accusingly at runtime, "Where is your book?"
## Moving/renaming a factoid ## Displaying factoids
### factmove To view or trigger a factoid, one merely issues its keyword as a command.
To rename a factoid or move a factoid to a different channel, use the `factmove` command:
Usage: `factmove <source channel> <source factoid> <target channel/factoid> [target factoid]` <pragma-> PBot, c?
<PBot> C rocks!
If three arguments are given, the factoid is renamed in the source channel. If four arguments are given, the factoid is moved to the target channel with the target name. <pragma-> !snack
* PBot eats a cookie.
## Changing a factoid ### fact
To view or trigger a factoid belonging to a specific channel, use the `fact` command.
Usage: `fact <channel> <keyword> [arguments]`
### factshow
To see a factoid's literal value without invoking the factoid, use the `factshow` command.
Usage: `factshow [-p] [channel] <keyword>`
<pragma-> !factshow hi
<PBot> hi: /say $greetings, $nick.
You can use the `-p` option to have PBot paste the factoid description to a Web-based
text paste site. PBot will output a link to the paste instead. This is useful if the
factoid was added with [`factadd`](#factadd)'s `-url` option and contains formatting
such as line-breaks and indentation.
## Editing factoids
### factchange ### factchange
To change a factoid, use the `factchange` command: To change a factoid, use the `factchange` command:
@ -523,6 +521,13 @@ Note that the final argument is a Perl-style substitution regex. See `man perlr
For instance, it is possible to append to a factoid by using: `factchange channel factoid s/$/text to append/`. Likewise, you can prepend to a factoid by using: `factchange channel factoid s/^/text to prepend/`. For instance, it is possible to append to a factoid by using: `factchange channel factoid s/$/text to append/`. Likewise, you can prepend to a factoid by using: `factchange channel factoid s/^/text to prepend/`.
### factmove
To rename a factoid or move a factoid to a different channel, use the `factmove` command:
Usage: `factmove <source channel> <source factoid> <target channel/factoid> [target factoid]`
If three arguments are given, the factoid is renamed in the source channel. If four arguments are given, the factoid is moved to the target channel with the target name.
### factundo ### factundo
To revert to an older revision, use the `factundo` command. You can repeatedly undo a factoid until there are no more undos remaining. To revert to an older revision, use the `factundo` command. You can repeatedly undo a factoid until there are no more undos remaining.
@ -535,19 +540,19 @@ Usage: `factredo [channel] <keyword>`
## Factoid Metadata ## Factoid Metadata
### factset ### factset
To view or set [factoid meta-data](#factoid-metadata-list), such as owner, rate-limit, etc, use the [`factset`](#factset) command. To view or set [factoid metadata](#factoid-metadata-list), such as owner, rate-limit, etc, use the [`factset`](#factset) command.
Usage: `factset [channel] <factoid> [<key> [value]]` Usage: `factset [channel] <factoid> [<key> [value]]`
Omit `<key>` and `<value>` to list all the keys and values for a factoid. Specify `<key>`, but omit `<value>` to see the value for a specific key. Omit `<key>` and `<value>` to list all the keys and values for a factoid. Specify `<key>`, but omit `<value>` to see the value for a specific key.
### factunset ### factunset
To unset [factoid meta-data](#factoid-metadata-list), use the `factunset` command. To unset [factoid metadata](#factoid-metadata-list), use the `factunset` command.
Usage: `factunset [channel] <factoid> <key>` Usage: `factunset [channel] <factoid> <key>`
### Factoid Metadata List ### Factoid Metadata List
This is a list of recognized factoid meta-data fields. An admin level of `0` signifies that anybody can set the field. This is a list of recognized factoid metadata fields. An admin level of `0` signifies that anybody can set the field.
Name | Admin level | Description Name | Admin level | Description
--- | --- | --- --- | --- | ---
@ -573,7 +578,7 @@ Name | Admin level | Description
`usage` | 0 | Prints a usage message when no arguments are provided. `usage` | 0 | Prints a usage message when no arguments are provided.
`use_output_queue` | 0 | When set to a true value, the output will be delayed by a random number of seconds to simulate reading/typing. `use_output_queue` | 0 | When set to a true value, the output will be delayed by a random number of seconds to simulate reading/typing.
## Finding a factoid ## Information about factoids
### factfind ### factfind
To search the database for a factoid, use the 'factfind` command. You may optionally specify whether to narrow by channel and/or include factoid owner and/or last referenced by in the search. To search the database for a factoid, use the 'factfind` command. You may optionally specify whether to narrow by channel and/or include factoid owner and/or last referenced by in the search.
@ -586,7 +591,6 @@ If you specify the `-regex` flag, the `text` argument will be treated as a regex
<pragma-> !factfind cast <pragma-> !factfind cast
<PBot> 3 factoids match: [##c] NULL casting dontcastmalloc <PBot> 3 factoids match: [##c] NULL casting dontcastmalloc
## Information about a factoid
### factinfo ### factinfo
To get information about a factoid, such as who submitted it and when, use the `factinfo` command. To get information about a factoid, such as who submitted it and when, use the `factinfo` command.
@ -595,26 +599,6 @@ Usage: `factinfo [channel] <keyword>`
<pragma-> !factinfo ##c NULL <pragma-> !factinfo ##c NULL
<PBot> NULL: Factoid submitted by Major-Willard for all channels on Sat Jan 1 16:17:42 2005 [5 years and 178 days ago], referenced 39 times (last by pragma- on Sun Jun 27 04:40:32 2010 [5 seconds ago]) <PBot> NULL: Factoid submitted by Major-Willard for all channels on Sat Jan 1 16:17:42 2005 [5 years and 178 days ago], referenced 39 times (last by pragma- on Sun Jun 27 04:40:32 2010 [5 seconds ago])
### factshow
To see the factoid description, use the `factshow` command.
Usage: `factshow [-p] [channel] <keyword>`
<pragma-> !factshow hi
<PBot> hi: /say $greetings, $nick.
You can use the `-p` option to have PBot paste the factoid description to a Web-based
text paste site. PBot will output a link to the paste instead. This is useful if the
factoid was added with the `-url` option and contains formatting such as line-breaks
and indentation.
### factset
To view [factoid meta-data](#factoid-metadata-list), such as owner, rate-limit, etc, use the `factset` command.
Usage: `factset [channel] <factoid> [<key> [value]]`
Omit `<key>` and `<value>` to list all the keys and values for a factoid. Specify `<key>`, but omit `<value>` to see the value for a specific key.
### factlog ### factlog
To see a factoid's changelog history, use the `factlog` command. To see a factoid's changelog history, use the `factlog` command.
@ -640,6 +624,13 @@ Usage: `factlog [-h] [-t] [channel] <factoid>`
<pragma-> !factlog hi <pragma-> !factlog hi
<PBot> [3m ago] pragma- created: /say Hi! [5m ago] pragma- deleted [8m ago] pragma- changed to /say Hello there, $nick! [10m ago] pragma- created: /say Hello there! <PBot> [3m ago] pragma- created: /say Hi! [5m ago] pragma- deleted [8m ago] pragma- changed to /say Hello there, $nick! [10m ago] pragma- created: /say Hello there!
### factset
To view [factoid metadata](#factoid-metadata-list), such as owner, rate-limit, etc, use the `factset` command.
Usage: `factset [channel] <factoid> [<key> [value]]`
Omit `<key>` and `<value>` to list all the keys and values for a factoid. Specify `<key>`, but omit `<value>` to see the value for a specific key.
### count ### count
To see how many factoids and what percentage of the database `<nick>` has submitted, use the `count` command. To see how many factoids and what percentage of the database `<nick>` has submitted, use the `count` command.

View File

@ -1,78 +1,78 @@
# Modules # Modules
<!-- md-toc-begin --> <!-- md-toc-begin -->
* [About](#about) * [About](#about)
* [Creating modules](#creating-modules) * [Creating modules](#creating-modules)
* [Documentation for built-in modules](#documentation-for-built-in-modules) * [Documentation for built-in modules](#documentation-for-built-in-modules)
* [cc](#cc) * [cc](#cc)
* [Usage](#usage) * [Usage](#usage)
* [Supported Languages](#supported-languages) * [Supported Languages](#supported-languages)
* [Default Language](#default-language) * [Default Language](#default-language)
* [Disallowed system calls](#disallowed-system-calls) * [Disallowed system calls](#disallowed-system-calls)
* [Program termination with no output](#program-termination-with-no-output) * [Program termination with no output](#program-termination-with-no-output)
* [Abnormal program termination](#abnormal-program-termination) * [Abnormal program termination](#abnormal-program-termination)
* [C and C++ Functionality](#c-and-c-functionality) * [C and C++ Functionality](#c-and-c-functionality)
* [Using the preprocessor](#using-the-preprocessor) * [Using the preprocessor](#using-the-preprocessor)
* [Default #includes](#default-includes) * [Default #includes](#default-includes)
* [Using #include](#using-include) * [Using #include](#using-include)
* [Using #define](#using-define) * [Using #define](#using-define)
* [main() Function Unnecessary](#main-function-unnecessary) * [main() Function Unnecessary](#main-function-unnecessary)
* [Embedding Newlines](#embedding-newlines) * [Embedding Newlines](#embedding-newlines)
* [Printing in binary/base2](#printing-in-binarybase2) * [Printing in binary/base2](#printing-in-binarybase2)
* [Using the GDB debugger](#using-the-gdb-debugger) * [Using the GDB debugger](#using-the-gdb-debugger)
* [print](#print) * [print](#print)
* [ptype](#ptype) * [ptype](#ptype)
* [watch](#watch) * [watch](#watch)
* [trace](#trace) * [trace](#trace)
* [gdb](#gdb) * [gdb](#gdb)
* [Interactive Editing](#interactive-editing) * [Interactive Editing](#interactive-editing)
* [copy](#copy) * [copy](#copy)
* [show](#show) * [show](#show)
* [diff](#diff) * [diff](#diff)
* [paste](#paste) * [paste](#paste)
* [run](#run) * [run](#run)
* [undo](#undo) * [undo](#undo)
* [s//](#s) * [s//](#s)
* [replace](#replace) * [replace](#replace)
* [prepend](#prepend) * [prepend](#prepend)
* [append](#append) * [append](#append)
* [remove](#remove) * [remove](#remove)
* [Some Examples](#some-examples) * [Some Examples](#some-examples)
* [english](#english) * [english](#english)
* [expand](#expand) * [expand](#expand)
* [prec](#prec) * [prec](#prec)
* [paren](#paren) * [paren](#paren)
* [faq](#faq) * [faq](#faq)
* [cfact](#cfact) * [cfact](#cfact)
* [cjeopardy](#cjeopardy) * [cjeopardy](#cjeopardy)
* [hint](#hint) * [hint](#hint)
* [what](#what) * [what](#what)
* [w](#w) * [w](#w)
* [filter](#filter) * [filter](#filter)
* [score](#score) * [score](#score)
* [rank](#rank) * [rank](#rank)
* [reset](#reset) * [reset](#reset)
* [qstats](#qstats) * [qstats](#qstats)
* [qshow](#qshow) * [qshow](#qshow)
* [c99std](#c99std) * [c99std](#c99std)
* [c11std](#c11std) * [c11std](#c11std)
* [man](#man) * [man](#man)
* [google](#google) * [google](#google)
* [define](#define) * [define](#define)
* [dict](#dict) * [dict](#dict)
* [foldoc](#foldoc) * [foldoc](#foldoc)
* [vera](#vera) * [vera](#vera)
* [udict](#udict) * [udict](#udict)
* [wdict](#wdict) * [wdict](#wdict)
* [acronym](#acronym) * [acronym](#acronym)
* [math](#math) * [math](#math)
* [calc](#calc) * [calc](#calc)
* [qalc](#qalc) * [qalc](#qalc)
* [compliment](#compliment) * [compliment](#compliment)
* [insult](#insult) * [insult](#insult)
* [excuse](#excuse) * [excuse](#excuse)
* [horoscope](#horoscope) * [horoscope](#horoscope)
* [quote](#quote) * [quote](#quote)
<!-- md-toc-end --> <!-- md-toc-end -->
## About ## About

View File

@ -1,32 +1,32 @@
# QuickStart # QuickStart
<!-- md-toc-begin --> <!-- md-toc-begin -->
* [Installation](#installation) * [Installation](#installation)
* [Installing Perl](#installing-perl) * [Installing Perl](#installing-perl)
* [Installing CPAN modules](#installing-cpan-modules) * [Installing CPAN modules](#installing-cpan-modules)
* [Installing PBot](#installing-pbot) * [Installing PBot](#installing-pbot)
* [git (recommended)](#git-recommended) * [git (recommended)](#git-recommended)
* [Download zip archive](#download-zip-archive) * [Download zip archive](#download-zip-archive)
* [First-time Configuration](#first-time-configuration) * [First-time Configuration](#first-time-configuration)
* [Clone data-directory](#clone-data-directory) * [Clone data-directory](#clone-data-directory)
* [Quick-start command](#quick-start-command) * [Quick-start command](#quick-start-command)
* [Edit Registry](#edit-registry) * [Edit Registry](#edit-registry)
* [Recommended settings for IRC Networks](#recommended-settings-for-irc-networks) * [Recommended settings for IRC Networks](#recommended-settings-for-irc-networks)
* [Freenode](#freenode) * [Freenode](#freenode)
* [IRCnet](#ircnet) * [IRCnet](#ircnet)
* [Other networks](#other-networks) * [Other networks](#other-networks)
* [Starting PBot](#starting-pbot) * [Starting PBot](#starting-pbot)
* [Usage](#usage) * [Usage](#usage)
* [Overriding directories](#overriding-directories) * [Overriding directories](#overriding-directories)
* [Overriding registry](#overriding-registry) * [Overriding registry](#overriding-registry)
* [Additional Configuration](#additional-configuration) * [Additional Configuration](#additional-configuration)
* [Adding Channels](#adding-channels) * [Adding Channels](#adding-channels)
* [Adding Admins](#adding-admins) * [Adding Admins](#adding-admins)
* [Loading Plugins](#loading-plugins) * [Loading Plugins](#loading-plugins)
* [Further Reading](#further-reading) * [Further Reading](#further-reading)
* [Commands](#commands) * [Commands](#commands)
* [Factoids](#factoids) * [Factoids](#factoids)
* [Modules](#modules) * [Modules](#modules)
<!-- md-toc-end --> <!-- md-toc-end -->
## Installation ## Installation

View File

@ -1,12 +1,12 @@
# Quotegrabs # Quotegrabs
<!-- md-toc-begin --> <!-- md-toc-begin -->
* [About](#about) * [About](#about)
* [Commands](#commands) * [Commands](#commands)
* [grab](#grab) * [grab](#grab)
* [getq](#getq) * [getq](#getq)
* [rq](#rq) * [rq](#rq)
* [delq](#delq) * [delq](#delq)
<!-- md-toc-end --> <!-- md-toc-end -->
## About ## About

View File

@ -1,23 +1,23 @@
# Registry # Registry
<!-- md-toc-begin --> <!-- md-toc-begin -->
* [About](#about) * [About](#about)
* [Types of values](#types-of-values) * [Types of values](#types-of-values)
* [Creating array values](#creating-array-values) * [Creating array values](#creating-array-values)
* [Overriding Registry values per-channel](#overriding-registry-values-per-channel) * [Overriding Registry values per-channel](#overriding-registry-values-per-channel)
* [Overriding Registry values via command-line](#overriding-registry-values-via-command-line) * [Overriding Registry values via command-line](#overriding-registry-values-via-command-line)
* [Registry commands](#registry-commands) * [Registry commands](#registry-commands)
* [regset](#regset) * [regset](#regset)
* [regunset](#regunset) * [regunset](#regunset)
* [regchange](#regchange) * [regchange](#regchange)
* [regshow](#regshow) * [regshow](#regshow)
* [regfind](#regfind) * [regfind](#regfind)
* [regsetmeta](#regsetmeta) * [regsetmeta](#regsetmeta)
* [regunsetmeta](#regunsetmeta) * [regunsetmeta](#regunsetmeta)
* [Editing Registry file](#editing-registry-file) * [Editing Registry file](#editing-registry-file)
* [Metadata list](#metadata-list) * [Metadata list](#metadata-list)
* [List of known Registry items](#list-of-known-registry-items) * [List of known Registry items](#list-of-known-registry-items)
* [Channel-specific Registry items](#channel-specific-registry-items) * [Channel-specific Registry items](#channel-specific-registry-items)
<!-- md-toc-end --> <!-- md-toc-end -->
## About ## About