Pragmatic Software
afd07bcd57
Bump minimum Perl version to 5.20 for signatures feature
2023-04-13 11:37:39 -07:00
Pragmatic Software
3180d11303
Plugin/Quotegrabs: polish Storage/SQLite.pm a bit
2023-04-13 11:21:30 -07:00
Pragmatic Software
cdbbf9c183
Plugin/Quotegrabs: minor clean-up of previous commit
2023-04-10 10:46:43 -07:00
Pragmatic Software
8bf243a9fd
Plugin/Quotegrabs: rq
now "shuffles" through quotes without repeats
2023-04-10 08:06:35 -07:00
Pragmatic Software
d8b19eff68
Plugin/Quotegrabs: rq
now properly searches multi-grabs
2023-03-30 06:33:33 -07:00
Pragmatic Software
640f866829
applets/unicode.pl: limit U+XXXX..U+XXXX
range to 100 characters
2023-03-23 18:20:22 -07:00
Pragmatic Software
3340589207
applets/unicode.pl: keep newlines for pasting; increase search limit
2023-03-23 17:56:40 -07:00
Pragmatic Software
0236043fe9
applets/unicode.pl: more concise output; require -s for search
2023-03-23 17:40:06 -07:00
Pragmatic Software
d6b6e1ac50
applets/unicode.pl: improve usage message
2023-03-23 17:22:34 -07:00
Pragmatic Software
bfabf3e308
Add applets/unicode.pl
...
A quick-and-dirty simplified interface to https://github.com/garabik/unicode
with support for searching by name/description and querying by character
or U+XXXX code-point.
2023-03-23 17:15:19 -07:00
Pragmatic Software
05cf63e00c
Interpreter: fix $0 in commands that use &{subs}
2023-03-23 08:56:58 -07:00
Pragmatic Software
ca21999d5d
applets/wiktionary: fix UTF-8 issue
2023-03-19 14:50:52 -07:00
Pragmatic Software
00077e0eef
applets/urban: fix yet another UTF-8 issue
2023-03-19 14:23:27 -07:00
Pragmatic Software
0cd4ce5220
pbot-vm: guest-server: update serial ports
2023-03-13 13:33:10 -07:00
Pragmatic Software
3ada433527
Refactor UTF-8 fix
2023-03-12 18:28:50 -07:00
Pragmatic Software
b9a89e10d6
Fix UTF-8 encoding
2023-03-12 18:10:44 -07:00
Pragmatic Software
6565c516e9
pbot-vm: remove "command:" text from -paste output
2023-03-12 16:12:58 -07:00
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
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
Pragmatic Software
eae16b14b8
modules/compiler_vm: fix -noheaders; manually #including a header once again replaces default includes
2021-09-17 13:30:46 -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
6924bc236d
cpanfile: add missing JSON::XS module for significant JSON speed-ups
2021-09-12 11:13:12 -07:00
Pragmatic Software
c7bb4b51cd
Plugin/Spinach: fix path to Storage::HashObject
2021-09-12 11:11:44 -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
Pragmatic Software
169a4c9fc7
Fix minor issue with command piping; misc clean-ups
2021-09-04 20:53:02 -07:00
Pragmatic Software
2451eda70f
GoogleSearch: -n option can now appear anywhere
2021-08-28 09:13:08 -07:00
Pragmatic Software
aaad36f99c
GoogleSearch: fix usage and improve stuff
2021-08-28 09:06:33 -07:00
Pragmatic Software
4096510d05
Replace Text::Levenshtein with Text::Levenshtein::XS
...
Existing PBot users: please run `cpanm Text::Levenshtein::XS` to install
this module.
2021-08-27 19:57:18 -07:00
Pragmatic Software
d1bb30ef94
Replace Text::Levenshtein with Text::Levenshtein::XS
...
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.
2021-08-27 19:41:51 -07:00
Pragmatic Software
731d795c03
Interpreter: log bot output in message history
...
Bot output now appears in `recall` and can be `grab`bed.
Moved truncate_result() a bit further down to truncate after target nick
is prefixed to output.
2021-08-26 10:47:59 -07:00
Pragmatic Software
e9a8620fb0
Factoids/Selectors: Add missing use
statement
2021-08-25 22:05:52 -07:00
Pragmatic Software
ff298a3862
Factoids: add factoid
command
...
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
2021-08-25 21:25:18 -07:00
Pragmatic Software
fd1c5b66c9
Interpreter: move dehighlight/truncate to output_result()
2021-08-25 19:40:38 -07:00
Pragmatic Software
d9a9ef0cc0
Interpreter: fix truncated text with multiple nicks
...
dehighlight_nicks() was being invoked after truncate_result(), therefore
inserting \x200b zero-width space Unicode characters AFTER the message
was truncated.
Solution: moved dehighlight_nicks() to immediately preceding truncate_result().
2021-08-24 20:27:12 -07:00
Pragmatic Software
b7ce503a8d
Interpreter: stop processing at the right spot
2021-08-23 22:11:33 -07:00
Pragmatic Software
a9eb7cc24b
Interpreter: minor clean-up
2021-08-23 21:54:07 -07:00
Pragmatic Software
50d4a2a94d
Interpreter: don't stop processing on empty result
2021-08-23 21:51:26 -07:00
Pragmatic Software
48373719d8
Factoids: preserve_whitespace
now works for all factoids
2021-08-23 19:27:34 -07:00
Pragmatic Software
ebb209549a
Plugin/FuncBuiltins: Add ana
function to explicitly fix-up a/an articles
2021-08-23 13:36:11 -07:00
Pragmatic Software
b638757f92
Interpreter: fix-up a/an article in front of &{cmdsub}s
2021-08-23 13:23:12 -07:00