Commit Graph

296 Commits

Author SHA1 Message Date
Pragmatic Software 21d06bc149 IRC: do not debug PONG events 2023-02-13 16:06:24 -08:00
Pragmatic Software 7da7883d9d pbot-vm: guest-gdb: stricter match for main() 2023-02-09 21:04:30 -08:00
Pragmatic Software 224a00949a pbot-vm: guest-gdb: fix potential undefined `$start` when optimizations are enabled 2023-02-09 13:39:10 -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 19d8170af3 applets/pbot-vm: vm-server: fix child signal handler 2023-01-24 12:34:03 -08:00
Pragmatic Software de7db72c04 applets/c2english: fix issue parsing `int *(foo)[5]` 2023-01-23 12:46:15 -08:00
Pragmatic Software 7a6a150067 Begin refactoring message-history tracking 2023-01-22 07:36:11 -08:00
Pragmatic Software d29ec9b6b9 Plugin/Wttr: add sunHour and uvIndex to -sun; decrease cache timeout from 1hr to 15m 2023-01-21 23:32:14 -08:00
Pragmatic Software d8803a4c29 Update irccloud detection/handling 2023-01-21 14:47:11 -08:00
Pragmatic Software 576783df55 applets/cjeopardy: qstats now shows all wrong answers instead of top 10 2023-01-21 12:13:01 -08:00
Pragmatic Software 55407ce800 Factoids: factadd: include contents for factlog 2022-12-31 14:55:48 -08:00
Pragmatic Software ad449ff07b Update version 2022-12-25 18:22:21 -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 474cca04b8 Plugin/WordMorph: simplify word validation 2022-10-01 21:32:25 -07:00
Pragmatic Software 8721122c1f Plugin/WordMorph: improve sanity checks 2022-10-01 10:17:27 -07:00
Ckat 7bec49c4ed
Plugins/WordMorph: validate word length (#69) 2022-10-01 09:49:15 -07:00
Pragmatic Software 2cf09ca415 Plugin/WordMorph: minor refactor/clean-up 2022-09-08 07:19:43 -07:00
Pragmatic Software 219851ffaf Plugin/WordMorph: add `neighbors` subcommand; improve `custom` error messages 2022-09-07 17:52:48 -07:00
Pragmatic Software 0196e61b72 Plugin/WordMorph: add `check` command to check if a word exists 2022-09-06 08:02:07 -07:00
Pragmatic Software adaf4e2ed3 Plugin/WordMorph: several improvements
- add 2880 variant words to wordlist
- morph generator skips words with same suffix
- default steps increased from 3 to 4
- default minimum word length increased from 4 to 5

Note that you can override default steps and word lengths via `start`.
2022-09-04 16:47:43 -07:00
Pragmatic Software 82edbd2a18 Plugin/WordMorph: minor refactoring/clean-up 2022-08-31 23:09:10 -07:00
Pragmatic Software f71e08cf7f Plugin/WordMorph: minor refactoring/clean-up 2022-08-31 22:54:54 -07:00
Pragmatic Software 3c28dd046a Plugin/WordMorph: allow hinting from right-hand side 2022-08-31 18:27:31 -07:00
Pragmatic Software bc02854d15 Update WordMorph
- Ensure length of each step is correct
- Add WordMorph to plugin_autoload
2022-08-26 12:47:44 -07:00
Pragmatic Software c071bf7604 applets/cstd.pl: fix parsing of paragraphs 2022-08-26 11:18:20 -07:00
Pragmatic Software 0edfee6d15 Update WordMorph 2022-08-26 00:33:41 -07:00
Pragmatic Software b9dc225763 Plugin/WordMorph: improve hints with ? in place of next letter change 2022-08-24 23:11:47 -07:00
Pragmatic Software d5c336c058 Add WordMorph plugin 2022-08-24 14:37:02 -07:00
Pragmatic Software 4551318c56 applets/cstd.pl: Fix footnotes 2022-08-12 13:02:00 -07:00
Pragmatic Software 6a61de1026 Consolidate c{99,11,23}std.pl into cstd.pl 2022-08-12 12:28:58 -07:00
Pragmatic Software 43dec7b70f applets/gencstd23: fix paragraph diff special case for n1570 2022-08-08 18:45:15 -07:00
Pragmatic Software 9ddd38038a applets: add C23 draft (n3047) command
I really, really need to clean this mess up and combine
c99std.pl, c11std.pl and c23std.pl into one script!
2022-08-07 19:10:34 -07:00
Pragmatic Software c4602bc295 WebPaste: increase max width to 150 characters 2022-08-07 19:05:43 -07:00
Pragmatic Software 62849c9cc4 Bump version for previous revert 2022-08-03 11:31:09 -07:00
Pragmatic Software e656fb46cf Revert "FuncBuiltins: maybe-the: do it for all words"
This reverts commit 7093fa0ae4.
2022-08-03 11:25:05 -07:00
Pragmatic Software 7093fa0ae4 FuncBuiltins: maybe-the: do it for all words 2022-08-03 05:19:45 -07:00
Pragmatic Software d824255c6e Misc fixes and improvements
applets/random_quote.pl: URI encode arguments

Plugins/FuncSed: improve error handling
2022-08-03 05:18:33 -07:00
Pragmatic Software e4becb22a1 FuncBuiltins: maybe-the: special-case some indefinite nouns 2022-07-14 10:15:30 -07:00
Pragmatic Software f7d361beca Core: show previous server:port if connecting without disconnecting 2022-07-10 12:53:17 -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 d12a463987 Plugin/FuncBuiltins: do not ucfirst on nicks; add more POS to maybe-the 2022-07-09 19:09:27 -07:00
Pragmatic Software 10e49bbbb6 Update factoids 2022-07-08 12:50:30 -07:00
Pragmatic Software 421738498c cpanfile: add Lingua::EN::Tagger 2022-07-08 09:19:27 -07:00
Pragmatic Software 3ab4ed0a81 Plugin/FuncBuiltin: add `maybe-the` function
The `maybe-the` function examines the argument's part-of-speech
classification (noun, verb, etc) to determine whether to prepend
the word "the".
2022-07-08 09:11:56 -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 0023790fec applets/(c99,c11)std: better handling of capture groups within -text option 2022-07-04 09:52:50 -07:00
Pragmatic Software 0cf80092a7 Plugins/Wttr: add observation time to default option 2022-07-03 07:22:33 -07:00
Pragmatic Software 87eff496e9 applets/wiktionary: group definitions w/examples; clean up output 2022-06-29 19:38:17 -07:00
Pragmatic Software 3ef58c2bfa applets/wiktionary: improve output 2022-06-27 20:35:02 -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 c0ade8a2f6 Plugin/GoogleSearch: show 3 matches instead of 1 2022-06-25 17:31:40 -07:00
Pragmatic Software 553fdb884c Plugin/Plang: do not use output_value() on exceptions 2022-06-12 19:33:53 -07:00
Pragmatic Software d003a326aa Plugins/Wttr: add -conditions to default option 2022-05-22 17:12:57 -07:00
Pragmatic Software e7f4729567 pbot-vm: rebuild without print_last_statement() if "cannot subscript something" error 2022-05-01 10:30:34 -07:00
Pragmatic Software 4b5d8aa535 pbot-vm: use %02X for escapes; do not escape \x03 (for IRC colors) 2022-04-08 13:12:37 -07:00
Pragmatic Software d3328a4acd Factoids: `factinfo` now says "Applet" instead of "Module" 2022-04-08 09:13:57 -07:00
Pragmatic Software 3d311296eb pbot-vm: output postprocessing: escape control characters/unprintable characters 2022-04-07 18:24:57 -07:00
Pragmatic Software 3375580a2d pbot-vm: fix parsing of quoted text within GDB/MI 2022-04-06 10:53:07 -07:00
Pragmatic Software 1c57e01fad pbot-vm: escape malformed Unicode on STDOUT 2022-04-04 22:32:53 -07:00
Pragmatic Software 110912e85d pbot-vm: use coderef to simplify escaping of malformed Unicode 2022-04-04 22:10:50 -07:00
Pragmatic Software 5bc47b61d9 pbot-vm: display escaped malformed Unicode in output instead of U+FFFD 2022-04-04 21:54:39 -07:00
Pragmatic Software 757088987d pbot-vm: fix invalid character encountered in JSON string 2022-04-04 21:41:27 -07:00
Pragmatic Software 8381fc7ad2 c99/c11 commands can now take `-text` option to filter output 2022-04-04 10:42:42 -07:00
Pragmatic Software 03fb901291 pbot-vm: fix potential time-out when outputting 0
If the output from a code snippet is `0` without a newline,
Perl treats this as a false value. When Guest::process_command()
returns a false value, that signals to guest-server::serial_server()
that it is the parent returning and so it will not send the result back
to the host.

However, `0\n` is a true value. Solution: always append a final newline to
the guest output.
2022-03-31 19:52:46 -07:00
Pragmatic Software d80b70a2e5 Dequeue cache events when removing SQLite Storage entries 2022-03-23 23:45:00 -07:00
Pragmatic Software 23efee674a Plugin/UrlTitles: update user-agents 2022-03-17 19:17:31 -07:00
Pragmatic Software 1abc466e7a Plugin/UrlTitles: include URL in history file 2022-03-17 16:47:06 -07:00
Pragmatic Software bf8749ff9e Fix `blacklist` command 2022-03-09 12:56:38 -08:00
Pragmatic Software 756895b17f Plugin/UrlTitles: fix indentation 2022-02-27 17:11:55 -08:00
Pragmatic Software c1cfa0ef4e Plugins/UrlTitles: fix indentation 2022-02-27 17:08:30 -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 76fd5f5fd7 pbot-vm: fix encoding issues; misc clean-ups 2022-02-24 10:39:15 -08:00
Pragmatic Software a7b27098ca Update PBot version 2022-02-15 11:42:55 -08:00
Pragmatic Software 619ff86a94 Rename `compiler` factoid to `vm-client` 2022-02-14 16:47:46 -08:00
Pragmatic Software 3f5a11e608 Plugin/Plang: fix run-time unhandled exception error reporting 2022-01-18 13:42:06 -08:00
Pragmatic Software 02a600fa32 Plugin/Plang: improve error message of unhandled exceptions 2022-01-18 10:59:56 -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 731a95ef11 Plugins/Plang: rename Grammar to ParseRules 2022-01-03 15:47:30 -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 4cf1e76169 Update commands and factoids 2021-10-19 21:14:52 -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 347e4ac69f modules/compiler_vm: replace ix.io with 0x0.st for pastes 2021-09-17 13:38:04 -07:00