Commit Graph

109 Commits

Author SHA1 Message Date
Pragmatic Software e736051de5 Fix UTF-8 encoding 2023-03-12 16:06:04 -07:00
Pragmatic Software 110f019bf2 MessageHistory: `recall`: fix incorrect whitespace appended to text argument if `-t` is not used 2023-02-24 20:50:19 -08:00
Pragmatic Software 13b09be29a Commands/Factoids: `factchange`: handle escaped delimiters 2023-02-23 13:16:17 -08:00
Pragmatic Software 8d5b992b4c Update copyright 2023-02-20 21:31:52 -08:00
Pragmatic Software 1eaf85239f NickList: handle nickchange before any other handlers 2023-02-13 16:27:26 -08:00
Pragmatic Software 21d06bc149 IRC: do not debug PONG events 2023-02-13 16:06:24 -08:00
Pragmatic Software 47d8f5724a Check for bans when CHGHOST
Remove redundant message type from log message
2023-02-02 09:22:51 -08:00
Pragmatic Software 9f314cd365 Enable `aka_debug` because AKA log entries are interesting 2023-02-02 09:13:36 -08:00
Pragmatic Software 7bbd5d8097 Fix QUIT log message 2023-02-01 17:47:25 -08:00
Pragmatic Software 6dd390540a Improve CHGHOST log message 2023-02-01 17:33:09 -08:00
Pragmatic Software d3c8c74a9d Support IRCv3 CHGHOST extension
Clean up MessageHistory constants
2023-02-01 17:27:06 -08:00
Pragmatic Software a173858fb8 Enable `multi-prefix` IRCv3 extension 2023-02-01 14:48:12 -08:00
Pragmatic Software 6240aee0a0 Simplify arguments for IRC handlers 2023-01-31 05:44:34 -08:00
Pragmatic Software 441e858a84 Make some log messages more consistent 2023-01-30 15:50:26 -08:00
Pragmatic Software 02d690600b Gate message-tags debug message with irc.debug_tags 2023-01-28 11:48:29 -08:00
Pragmatic Software 999c07f237 Support IRCv3 message tags; misc refactoring
PBot now finally supports IRCv3 message tags. The `account-tag`
capability is now enabled for improved NickServ account tracking.

Refactored CAP negotiation. Minor clean-ups in AntiFlood.pm (which ought to
be completely rewritten from the ground-up).

Misc clean-ups and refactoring of various things.
2023-01-27 11:48:01 -08:00
Pragmatic Software 7a6a150067 Begin refactoring message-history tracking 2023-01-22 07:36:11 -08:00
Pragmatic Software d8803a4c29 Update irccloud detection/handling 2023-01-21 14:47:11 -08:00
Pragmatic Software 55407ce800 Factoids: factadd: include contents for factlog 2022-12-31 14:55:48 -08:00
Pragmatic Software ea35fc78c2 Commands/Help: update URL to point at TOC 2022-12-25 18:18:18 -08:00
Pragmatic Software 38d9c86984 Factoids: add more pastebin URLs for `factadd -url`; update `help` URL to point at TOC 2022-12-25 18:17:14 -08:00
Pragmatic Software c4602bc295 WebPaste: increase max width to 150 characters 2022-08-07 19:05:43 -07:00
Pragmatic Software 74380f2a72 Core: Use EXIT_SUCCESS/EXIT_FAILURE; misc clean-ups 2022-07-10 12:45:27 -07:00
Pragmatic Software 9f46cf0ebc Factoids: disable nickprefixing when action contains $args at any recursion level 2022-07-09 19:33:43 -07:00
Pragmatic Software 833c20efbb Factoids: do not prefix nick if action has $args 2022-07-08 09:11:16 -07:00
Pragmatic Software a170b28a8b Factoids: fix behavior of factoid look-up 2022-07-05 23:12:12 -07:00
Pragmatic Software 41b69bdfa5 Factoids: add `keep-quotes` metadata for applet commands 2022-06-27 19:52:38 -07:00
Pragmatic Software 780d41e628 Factoids: correct quotemeta2 and make it slightly more readable 2022-06-26 08:42:01 -07:00
Pragmatic Software 5619d30a1b Factoids: fix Unicode issue with factfind 2022-06-25 17:34:06 -07:00
Pragmatic Software d3328a4acd Factoids: `factinfo` now says "Applet" instead of "Module" 2022-04-08 09:13:57 -07:00
Pragmatic Software d80b70a2e5 Dequeue cache events when removing SQLite Storage entries 2022-03-23 23:45:00 -07:00
Pragmatic Software bf8749ff9e Fix `blacklist` command 2022-03-09 12:56:38 -08:00
Pragmatic Software 02cc7fc488 Refactor UrlTitles plugin
Moved logic from get_title.pl applet to plugin.
Removed get_title.pl applet.
ProcessManager::execute_process() can now take a reader subref.
2022-02-27 16:58:01 -08:00
Pragmatic Software 619ff86a94 Rename `compiler` factoid to `vm-client` 2022-02-14 16:47:46 -08:00
Pragmatic Software e421f9b6bc Replace U+200b (zwsp) with U+feff (zwnbsp)
U+feff is now used instead of U+200b for nick-dehighlighting.

U+feff is non-breaking; it will not break-up the word when wrapping. It also
appears to be much more widely supported. In fact, some terminals will simply
strip the bytes -- this allows copying the text as-is, etc.

Additionally, an exclude-list was added to prevent dehighlighting of specific
nicknames. This is because several terminals do not fully support Unicode's
zero-width spaces -- they show up as plain spaces. Certain words for the #c
channel have been added to this exclude list since they are also somewhat
popular as nicknames there.
2022-01-18 10:32:21 -08:00
Pragmatic Software c04467b50f Fix minor uninitialized object warning 2022-01-01 21:32:01 -08:00
Pragmatic Software f78e7bea88 Fix `chanrem` command 2022-01-01 21:30:20 -08:00
Pragmatic Software 3d97dc2c33 Rename "modules" to "applets"
"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
2021-11-19 18:05:50 -08:00
Pragmatic Software 136460e6b4 Expand factoid variables/selectors in arguments to code factoids 2021-11-05 13:08:45 -07:00
Pragmatic Software 85fd8397c2 Fix auto-rejoin channels when reconnecting 2021-10-19 21:09:21 -07:00
Pragmatic Software 4809341e0f Commands/Factoids: minor formatting clean-up 2021-10-19 21:05:16 -07:00
Pragmatic Software 3d1479aa59 Users: simplify previous commit 2021-09-14 16:15:00 -07:00
Pragmatic Software fa65bfc878 Users: `id` command can now search by wildcarded hostmasks 2021-09-14 14:23:35 -07:00
Pragmatic Software 5cf9ac1b9f BanList: misc refactors to improve readability 2021-09-12 22:24:29 -07:00
Pragmatic Software 153d771960 BanList: do not update existing bans with server bans
For some reason, various IRC networks do not propagate banlist metadata
such as owner and timestamp when a server rejoins. This causes the
server's banlist entries to contain "set by server" instead of the
original individual who set it and "set on now" instead of when it was
originally set.

This commit modifies PBot's banlist monitoring to only update PBot's
internal banlist metadata when the ban doesn't exist or when the ban is
being updated by an actual individual instead of the server. Now PBot
will remember the original setter and the original timestamp
regardless of whether the IRC server can.
2021-09-12 18:59:36 -07:00
Pragmatic Software 74401977e1 Factoids: look-up use_output_queue/preserve_whitespace properly 2021-09-10 11:03:20 -07:00
Pragmatic Software a0265b4a6f MessageHistory: `recall` can use -a and -b together again 2021-09-08 14:05:35 -07:00
Pragmatic Software c3e16410c2 Whoops, execute_process() cannot return undef
If ProcessManager::execute_process() returns undef,
then the loop in Interpreter::interpret() thinks that
the command didn't get handled, and so goes on to look
for other commands. This is now corrected.
2021-09-07 10:18:12 -07:00
Pragmatic Software 7e539cc633 Fix typo 2021-09-06 13:03:01 -07:00
Pragmatic Software e60c4dc1f2 MessageHistory: Add `akadelete` command 2021-09-06 12:43:18 -07:00