PBot now preserves whitespace by default. The `preserve_whitespace`
metadata field is now redundant. It has now been replaced with
`condense-whitespace`, which when set to a true value will collapse
adjacent whitespace to a single space.
`factmove` arguments now behave more sensibly in that:
* `factmove #channel keyword global keyword` now properly moves/renames
factoids to global channel
* `factmove #channel keyword #channel global` renames the factoid to `global`
* `factmove #channel keyword newname` renames the factoid to `newname`
general.debugcontext: filter out cmdlist and arglist
Core/Applets: log applet start/stop and duration
Core/ProcessManager: fix potential race-condition with $context object
Core/Interpreter:
* expand pronouns before command-substitution
* attempt to find current channel's factoid instance for metadata
* remove duplication of command history in command-substition
* terminate pipe/substitution processing when protecting self
Core/Factoids: limit -url contents to 250kb
This was way overdue. User passwords are no longer stored as cleartext.
When PBot is restarted after applying this commit, all stored passwords will
be converted to salted hash digests.
The `useradd`, `userset` and `my` commands will now hash passwords.
Why did it take me so long to finally get around to hashing passwords
properly, you might ask. The reason why this wasn't done sooner is because
all of my users used hostmask-based `autologin`. The passwords that PBot
randomly generated were ignored and never used.
I do regret that it took me so long to get around to this, for those of you
who might be using custom passwords instead of hostmask-based `autologin`.
* obtain bot nick from connection details instead of registry where appropriate
* irc.random_nick works again
* record own hostmask when connecting
* fix web-paste truncation by subtracting length of own hostmask from message length
* set irc.max_msg_len back to 510
* updated IRC numeric 378 to whoishost
* add sprunge.us to WebPaste
"Applet" is a much better name for the external command-line
scripts and programs that can be loaded as PBot commands. They
will no longer be confused with Perl modules.
https://en.wikipedia.org/wiki/Applet
Text::Levenshtein::XS is much, much, much, much faster and more
efficient.
Existing PBot users: Please run `cpanm Text::Levenshtein::XS` to install this
module.
The `factoid` commands interprets its arguments as an anonymous factoid.
Useful for testing factoid actions without creating and deleting them.
E.g.:
<pragma> !factoid /say $args[1:2] --args 'testing hello world args'
<PBot> hello world