<commit_before># PBot
PBot is a versatile IRC Bot written in Perl

<!-- md-toc-begin -->
* [Installation / Quick Start](#installation--quick-start)
* [Features](#features)
  * [Useful IRC command improvements](#useful-irc-command-improvements)
  * [Channel management](#channel-management)
  * [User management](#user-management)
  * [Easy configuration](#easy-configuration)
  * [Reload core modules without disconnecting](#reload-core-modules-without-disconnecting)
  * [Powerful command interpreter](#powerful-command-interpreter)
    * [Piping](#piping)
    * [Substitution](#substitution)
    * [Chaining](#chaining)
    * [Variables](#variables)
    * [Inline invocation](#inline-invocation)
    * [Background processing](#background-processing)
  * [Extensible](#extensible)
  * [Factoids](#factoids)
  * [Code Factoids](#code-factoids)
  * [Plugins](#plugins)
  * [Modules](#modules)
  * [Functions](#functions)
  * [Virtual machine](#virtual-machine)
* [Documentation](#documentation)
* [Frequently Asked Questions](#frequently-asked-questions)
* [Support](#support)
* [License](#license)
<!-- md-toc-end -->

## Installation / Quick Start
To get up-and-running quickly, check out the [Quick Start guide](doc/QuickStart.md).

## Features

### 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<commit_msg>README.md: improvements<commit_after># PBot
PBot is a versatile IRC Bot written in Perl

<!-- md-toc-begin -->
* [Installation / Quick Start](#installation--quick-start)
* [Features](#features)
  * [Useful IRC command improvements](#useful-irc-command-improvements)
  * [Channel management](#channel-management)
  * [User management](#user-management)
  * [Easy configuration](#easy-configuration)
  * [Reload core modules without disconnecting](#reload-core-modules-without-disconnecting)
  * [Powerful command interpreter](#powerful-command-interpreter)
    * [Piping](#piping)
    * [Substitution](#substitution)
    * [Chaining](#chaining)
    * [Variables](#variables)
    * [Inline invocation](#inline-invocation)
    * [Background processing](#background-processing)
  * [Extensible](#extensible)
  * [Factoids](#factoids)
  * [Code Factoids](#code-factoids)
  * [Plugins](#plugins)
  * [Modules](#modules)
  * [Functions](#functions)
  * [Virtual machine](#virtual-machine)
* [Documentation](#documentation)
* [Frequently Asked Questions](#frequently-asked-questions)
* [Support](#support)
* [License](#license)
<!-- md-toc-end -->

## Installation / Quick Start
To get up-and-running quickly, check out the [Quick Start guide](doc/QuickStart.md).

## Features

### 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>` will remove all bans/mutes matching their current or previously seen hostmasks or accounts
* [`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
{'fraction_non_alphanumeric': 0.13367910322904467, 'fraction_numerical': 0.0, 'mean_word_length': 5.407288317256163, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 12, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '431412', 'n_tokens_mistral': 1857, 'n_tokens_neox': 1731, 'n_words': 522}