mirror of
https://github.com/pragma-/pbot.git
synced 2024-11-26 05:49:27 +01:00
README.md: rearrange sections, add placeholder for Functions
This commit is contained in:
parent
2eed49a264
commit
bdb56805f3
131
README.md
131
README.md
@ -4,7 +4,11 @@ PBot is a versatile IRC Bot written in Perl
|
|||||||
<!-- md-toc-begin -->
|
<!-- md-toc-begin -->
|
||||||
* [Installation / Quick Start](#installation--quick-start)
|
* [Installation / Quick Start](#installation--quick-start)
|
||||||
* [Features](#features)
|
* [Features](#features)
|
||||||
* [Commands](#commands)
|
* [Useful IRC command improvements](#useful-irc-command-improvements)
|
||||||
|
* [Channel management](#channel-management)
|
||||||
|
* [User management](#user-management)
|
||||||
|
* [Easy configuration](#easy-configuration)
|
||||||
|
* [Extensible](#extensible)
|
||||||
* [Powerful command interpreter](#powerful-command-interpreter)
|
* [Powerful command interpreter](#powerful-command-interpreter)
|
||||||
* [Piping](#piping)
|
* [Piping](#piping)
|
||||||
* [Substitution](#substitution)
|
* [Substitution](#substitution)
|
||||||
@ -15,11 +19,8 @@ PBot is a versatile IRC Bot written in Perl
|
|||||||
* [Code Factoids](#code-factoids)
|
* [Code Factoids](#code-factoids)
|
||||||
* [Plugins](#plugins)
|
* [Plugins](#plugins)
|
||||||
* [Modules](#modules)
|
* [Modules](#modules)
|
||||||
|
* [Functions](#functions)
|
||||||
* [Virtual machine](#virtual-machine)
|
* [Virtual machine](#virtual-machine)
|
||||||
* [Useful IRC command improvements](#useful-irc-command-improvements)
|
|
||||||
* [Channel management](#channel-management)
|
|
||||||
* [User management](#user-management)
|
|
||||||
* [Easy configuration](#easy-configuration)
|
|
||||||
* [Documentation](#documentation)
|
* [Documentation](#documentation)
|
||||||
* [Frequently Asked Questions](#frequently-asked-questions)
|
* [Frequently Asked Questions](#frequently-asked-questions)
|
||||||
* [Support](#support)
|
* [Support](#support)
|
||||||
@ -31,26 +32,67 @@ To get up-and-running quickly, check out the [Quick Start guide](doc/QuickStart.
|
|||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
### Commands
|
### Useful IRC command improvements
|
||||||
|
* [`mode`](doc/Admin.md#mode) command can take wildcards, e.g. `mode +ov foo* bar*` to op nicks beginning with `foo` and voice nicks beginning with `bar`
|
||||||
|
* `unban <nick>` and `unmute <nick>` can remove all bans/mutes matching `<nick>`'s hostmask or account
|
||||||
|
* [`ban`](doc/Admin.md#banmute) and [`mute`](doc/Admin.md#banmute) will intelligently set banmasks; supports timeouts
|
||||||
|
* [`ban`](doc/Admin.md#banmute) and [`mute`](doc/Admin.md#banmute) can take a comma-separate list of nicks. Will intelligently group them into multiple `MODE +bbbb` commands
|
||||||
|
* [`kick`](doc/Admin.md#kick) can take a comma-separated list of nicks; also accepts wildcards
|
||||||
|
* and much, much more!
|
||||||
|
|
||||||
PBot has several useful built-in commands. Additional commands can be added to PBot through
|
### Channel management
|
||||||
[Factoids](#factoids), [Plugins](#plugins) and [Modules](#modules).
|
PBot can perform the typical channel management tasks.
|
||||||
|
|
||||||
|
* opping/deopping, etc
|
||||||
|
* channel-mode tracking
|
||||||
|
* user hostmask/alias tracking
|
||||||
|
* ban-evasion detection
|
||||||
|
* flood detection
|
||||||
|
* whitelisting, blacklisting, etc
|
||||||
|
* spam/advertisement detection
|
||||||
|
* and much, much more!
|
||||||
|
|
||||||
|
For more information, see the [Channels documentation](doc/Admin.md#channel-management-commands) and the [Anti-abuse documentation](doc/AntiAbuse.md)
|
||||||
|
|
||||||
|
### User management
|
||||||
|
PBot has easy straightforward user management via simple built-in commands.
|
||||||
|
|
||||||
|
* [user capabilities](doc/Admin.md#user-capabilities) dictate what users can and cannot do
|
||||||
|
* user accounts can be global or channel-specific
|
||||||
|
* users can be recognized by hostmask or required to login with password
|
||||||
|
* users can adjust their [user-metadata](doc/Admin.md#user-metadata-list) with the [`my`](doc/Commands.md#my) command
|
||||||
|
* and much, much more!
|
||||||
|
|
||||||
|
For more information, see the [Admin documentation.](doc/Admin.md#user-management-commands)
|
||||||
|
|
||||||
|
### Easy configuration
|
||||||
|
PBot's settings are contained in a central registry of key/value pairs grouped by sections.
|
||||||
|
|
||||||
|
These settings can easily be configured via several methods:
|
||||||
|
|
||||||
|
* [PBot's command-line arguments](doc/Registry.md#overriding-registry-values-via-command-line)
|
||||||
|
* [simple built-in commands (`regset`, `regunset`, etc)](doc/Registry.md#registry-commands)
|
||||||
|
* [editing](doc/Registry.md#editing-registry-file) the [`$data_dir/registry`](data/registry) plain-text JSON file
|
||||||
|
|
||||||
|
For more information, see the [Registry documentation.](doc/Registry.md)
|
||||||
|
|
||||||
|
### Extensible
|
||||||
|
PBot is extensible in multiple ways. Additional commands and functionality can be added to PBot through
|
||||||
|
[Factoids](#factoids), [Plugins](#plugins), [Modules](#modules) and [Functions](#functions).
|
||||||
|
|
||||||
|
### Powerful command interpreter
|
||||||
|
PBot has an powerful command interpreter with useful functionality, and tons of
|
||||||
|
built-in commands.
|
||||||
|
|
||||||
For more information, see the [Commands documentation.](doc/Commands.md)
|
For more information, see the [Commands documentation.](doc/Commands.md)
|
||||||
|
|
||||||
### Powerful command interpreter
|
|
||||||
|
|
||||||
PBot has an 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.
|
||||||
|
|
||||||
@ -75,14 +117,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"
|
||||||
@ -97,7 +137,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.
|
||||||
|
|
||||||
@ -106,7 +145,6 @@ 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
|
||||||
|
|
||||||
### Factoids
|
### Factoids
|
||||||
|
|
||||||
Factoids are a very special type of command. Anybody interacting with PBot
|
Factoids are a very special type of command. Anybody interacting with PBot
|
||||||
can create, edit, delete and invoke factoids. Factoids can be locked by the
|
can create, edit, delete and invoke factoids. Factoids can be locked by the
|
||||||
creator of the factoid to prevent them from being edited by others.
|
creator of the factoid to prevent them from being edited by others.
|
||||||
@ -138,7 +176,6 @@ PBot factoids include these advanced features:
|
|||||||
For more information, see the [Factoids documentation](doc/Factoids.md).
|
For more information, see the [Factoids documentation](doc/Factoids.md).
|
||||||
|
|
||||||
### Code Factoids
|
### Code Factoids
|
||||||
|
|
||||||
Code Factoids are a special type of factoid that begin with the `/code` command.
|
Code Factoids are a special type of factoid that begin with the `/code` command.
|
||||||
|
|
||||||
/code <language> <code>
|
/code <language> <code>
|
||||||
@ -165,7 +202,6 @@ You can pipe output from other commands to Code Factoids.
|
|||||||
For more information, see the [Code Factoid documentation](doc/Factoids.md#code).
|
For more information, see the [Code Factoid documentation](doc/Factoids.md#code).
|
||||||
|
|
||||||
### Plugins
|
### Plugins
|
||||||
|
|
||||||
PBot can dynamically load and unload Perl modules to alter its behavior.
|
PBot can dynamically load and unload Perl modules to alter its behavior.
|
||||||
|
|
||||||
These are some of the plugins that PBot has; there are many more:
|
These are some of the plugins that PBot has; there are many more:
|
||||||
@ -195,7 +231,6 @@ Plugin | Description
|
|||||||
[Connect4](Plugins/Connect4.pm) | The classic Connect-4 game.
|
[Connect4](Plugins/Connect4.pm) | The classic Connect-4 game.
|
||||||
|
|
||||||
### Modules
|
### Modules
|
||||||
|
|
||||||
Modules are external command-line executable programs and scripts that can be
|
Modules are external command-line executable programs and scripts that can be
|
||||||
loaded as PBot commands.
|
loaded as PBot commands.
|
||||||
|
|
||||||
@ -232,8 +267,12 @@ Module | Description
|
|||||||
|
|
||||||
For more information, see the [Modules documentation](doc/Modules.md).
|
For more information, see the [Modules documentation](doc/Modules.md).
|
||||||
|
|
||||||
### Virtual machine
|
### Functions
|
||||||
|
Functions are "commands" that accept input, manipulates it and then outputs the result.
|
||||||
|
|
||||||
|
For more information, see the [Functions documentation](doc/Functions.md).
|
||||||
|
|
||||||
|
### Virtual machine
|
||||||
PBot can integrate with a virtual machine to safely execute arbitrary user-submitted
|
PBot can integrate with a virtual machine to safely execute arbitrary user-submitted
|
||||||
operating system commands or code.
|
operating system commands or code.
|
||||||
|
|
||||||
@ -269,54 +308,6 @@ For more information about the C programming language plugin, see [the `cc` comm
|
|||||||
|
|
||||||
For more information about the virtual machine, see the [Virtual Machine documentation.](doc/VirtualMachine.md)
|
For more information about the virtual machine, see the [Virtual Machine documentation.](doc/VirtualMachine.md)
|
||||||
|
|
||||||
### Useful IRC command improvements
|
|
||||||
|
|
||||||
* [`mode`](doc/Admin.md#mode) command can take wildcards, e.g. `mode +ov foo* bar*` to op nicks beginning with `foo` and voice nicks beginning with `bar`
|
|
||||||
* `unban <nick>` and `unmute <nick>` can remove all bans/mutes matching `<nick>`'s hostmask or account
|
|
||||||
* [`ban`](doc/Admin.md#banmute) and [`mute`](doc/Admin.md#banmute) will intelligently set banmasks; supports timeouts
|
|
||||||
* [`ban`](doc/Admin.md#banmute) and [`mute`](doc/Admin.md#banmute) can take a comma-separate list of nicks. Will intelligently group them into multiple `MODE +bbbb` commands
|
|
||||||
* [`kick`](doc/Admin.md#kick) can take a comma-separated list of nicks; also accepts wildcards
|
|
||||||
* and much, much more!
|
|
||||||
|
|
||||||
### Channel management
|
|
||||||
|
|
||||||
PBot can perform the typical channel management tasks.
|
|
||||||
|
|
||||||
* opping/deopping, etc
|
|
||||||
* channel-mode tracking
|
|
||||||
* user hostmask/alias tracking
|
|
||||||
* ban-evasion detection
|
|
||||||
* flood detection
|
|
||||||
* whitelisting, blacklisting, etc
|
|
||||||
* spam/advertisement detection
|
|
||||||
* and much, much more!
|
|
||||||
|
|
||||||
For more information, see the [Channels documentation](doc/Admin.md#channel-management-commands) and the [Anti-abuse documentation](doc/AntiAbuse.md)
|
|
||||||
|
|
||||||
### User management
|
|
||||||
|
|
||||||
PBot has easy straightforward user management via simple built-in commands.
|
|
||||||
|
|
||||||
* [user capabilities](doc/Admin.md#user-capabilities) dictate what users can and cannot do
|
|
||||||
* user accounts can be global or channel-specific
|
|
||||||
* users can be recognized by hostmask or required to login with password
|
|
||||||
* users can adjust their [user-metadata](doc/Admin.md#user-metadata-list) with the [`my`](doc/Commands.md#my) command
|
|
||||||
* and much, much more!
|
|
||||||
|
|
||||||
For more information, see the [Admin documentation.](doc/Admin.md#user-management-commands)
|
|
||||||
|
|
||||||
### Easy configuration
|
|
||||||
|
|
||||||
PBot's settings are contained in a central registry of key/value pairs grouped by sections.
|
|
||||||
|
|
||||||
These settings can easily be configured via several methods:
|
|
||||||
|
|
||||||
* [PBot's command-line arguments](doc/Registry.md#overriding-registry-values-via-command-line)
|
|
||||||
* [simple built-in commands (`regset`, `regunset`, etc)](doc/Registry.md#registry-commands)
|
|
||||||
* [editing](doc/Registry.md#editing-registry-file) the [`$data_dir/registry`](data/registry) plain-text JSON file
|
|
||||||
|
|
||||||
For more information, see the [Registry documentation.](doc/Registry.md)
|
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
See the [PBot documentation](doc) for more information.
|
See the [PBot documentation](doc) for more information.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user