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
Pragmatic Software
68490b6ac5
Factoids: add blank line between factlog
entries
2021-08-22 09:55:50 -07:00
Pragmatic Software
49d92aa1bd
MessageHistory: recall
special characters can now be escaped
2021-08-19 11:05:36 -07:00
Pragmatic Software
d40d602b79
Move script/ to bin/
2021-08-15 19:42:09 -07:00
Pragmatic Software
1b13123474
updates: remove background-process
from recall
command metadata
2021-08-13 14:20:56 -07:00
Pragmatic Software
d1df2d325c
Improve output of truncation text
...
Instead of "... [truncated; see http://xxx for full text.]" it more
concisely says "... <truncated; http://...>".
Increased irc.max_msg_len from a very conservative 425 to a more
generous 460. If you have very long channel names or nicknames, or if
you see things being truncated incorrectly, reduce this value.
2021-08-12 22:30:56 -07:00
Pragmatic Software
defad20bfd
Refactor and simplify atexit routines
2021-08-06 12:59:21 -07:00
Pragmatic Software
3fc39c9359
Core/Commands: remove(): fix arguments passed to unregister()
2021-08-06 11:14:40 -07:00
Pragmatic Software
275ee6952f
Plugin/RemindMe: fix double-dequeue issue
...
Whoops. EventQueue already removes the event after processing it. There
is no point to dequeuing the reminder event from within do_reminder().
Doing this caused EventQueue to dequeue the event following the
reminder event.
2021-08-06 11:02:32 -07:00
Pragmatic Software
f2a45d74a6
Plugin/GetUrl: add TODO to header
2021-08-06 10:16:14 -07:00
Pragmatic Software
f9d8c09b5b
Add simple GetUrl plugin, not autoloaded
2021-08-05 19:35:30 -07:00
Pragmatic Software
dd54bc40cb
DualIndexSQLiteObject: improve header comments
2021-08-04 22:46:51 -07:00
Pragmatic Software
7aac2bba50
Plugin/RunCommand: output STDERR lines; output error if command not found
2021-08-04 20:03:25 -07:00
Pragmatic Software
03a14c4928
Plugin/RunCommand: silence useless warning
2021-08-04 19:01:57 -07:00
Pragmatic Software
5c43b46477
Plugin/RunCommand: improve pumping and handle lines longer than maximum IRC mesasge length
2021-08-04 18:50:07 -07:00
Pragmatic Software
4c5492f5e9
Plugins/Plang: fix add_factoid()
2021-08-02 18:06:50 -07:00
Pragmatic Software
f286ff44a0
Modules: fix load
command
2021-08-02 17:53:16 -07:00
Pragmatic Software
a0e2ba3610
Interpreter: minor comments about getopt
2021-08-02 04:57:52 -07:00
Pragmatic Software
487c84e824
Registry: remove plugin_dir
2021-08-02 04:40:45 -07:00
Pragmatic Software
f4dbb68221
Rename irc.onemode
to irc.modeflag
...
- rename track_mode to on_modeflag
- consistently return undef or 1 from handlers
2021-08-01 18:02:10 -07:00
Pragmatic Software
108c2924cc
Move some handlers to relevant Handlers modules
...
- dispatch irc.onemode event for each mode flag
- misc clean-ups
2021-08-01 15:53:58 -07:00
Pragmatic Software
1c5dc69047
Plugins: die if plugin fails to autoload during start-up
2021-07-31 12:05:48 -07:00
Pragmatic Software
17e78cd7fc
Commands: add(): improve named-parameter validation
2021-07-31 12:04:50 -07:00
Pragmatic Software
5aeb608052
Commands: fix minor typos in comments
2021-07-30 19:50:30 -07:00
Pragmatic Software
926d57990b
Support named-parameters in command registration
...
- convert several plugins to use named-parameters
- misc clean-ups in unrelated files
2021-07-30 19:01:24 -07:00
Pragmatic Software
483984754a
Simplify use of getopt() throughout
2021-07-30 15:01:38 -07:00
Pragmatic Software
bbe5b58b97
Plugin/Wttr: recent changes needs default/all moved up in options
2021-07-28 18:37:40 -07:00
Pragmatic Software
7c4c5847ab
Interpreter: find factoid channel for dont-replace-pronouns metadata
2021-07-28 18:05:14 -07:00
Pragmatic Software
12cedcd60e
Plugin/Wttr: output options in consistent order
2021-07-28 17:33:39 -07:00
Pragmatic Software
a27a36a05e
Plugin/Wttr: add newlines to output so truncation text is readable
2021-07-28 17:11:44 -07:00
Pragmatic Software
5dd4566ad4
Add usershow
command to show user metadata
2021-07-27 23:46:54 -07:00
Pragmatic Software
62a477b7c4
Fix rare case where dont-replace-pronouns
was ignored
2021-07-27 23:25:38 -07:00
Pragmatic Software
44a614b716
VERSION: Fix minor typo in comment
2021-07-27 22:48:27 -07:00
Pragmatic Software
39ee73f0b8
Fix version not updating after refresh
2021-07-27 22:38:19 -07:00
Pragmatic Software
59140d4096
Remove add_nick
mess from ProcessManager
2021-07-27 21:27:03 -07:00
Pragmatic Software
8cff244256
Simplify VERSION.pm
2021-07-27 12:25:56 -07:00
Pragmatic Software
67d2dd5d95
Minor clean-up and polish
...
- add more comments to VERSION.pm
- minor clean up of logging messages
- minor refactoring
- VERSION.pm will no longer be updated as its own distinct commit
2021-07-27 12:01:42 -07:00
Pragmatic Software
bf3891fc1c
Update version
2021-07-26 21:46:26 -07:00
Pragmatic Software
6ba7864474
Add missing PBot::Core::Factoids::* files
2021-07-26 21:46:20 -07:00
Pragmatic Software
7cfe088a41
Update version
2021-07-26 21:41:38 -07:00
Pragmatic Software
c75be8b4b0
Refactor PBot::Core::Factoids into PBot::Core::Factoids::*
2021-07-26 21:39:44 -07:00
Pragmatic Software
f51c9fd841
Update version
2021-07-26 07:46:53 -07:00
Pragmatic Software
5567270f59
Factoids: ensure user has capability when factsetting cap-override
2021-07-26 07:46:50 -07:00
Pragmatic Software
b9a2a0a306
Plugin/RunCommand.pm: fix grammar of header comment
2021-07-25 21:30:55 -07:00
Pragmatic Software
a4ad219ff1
Plugin/RunCommand: clarify that plugin is not autoloaded by default
2021-07-25 21:23:55 -07:00
Pragmatic Software
ecdd914b37
Plugin/RunCommand: import finish too
2021-07-25 19:14:07 -07:00
Pragmatic Software
3d3bbfb784
Update version
2021-07-25 19:07:07 -07:00
Pragmatic Software
2d417e2368
Factoids: fix log_factoid() in add_factoid()
2021-07-25 19:07:03 -07:00
Pragmatic Software
70e82a14d3
Plugin/RunCommand: improve header comments
2021-07-25 18:55:34 -07:00
Pragmatic Software
b23860a54c
Plugin/RunCommand: update header with comments
2021-07-25 18:54:07 -07:00
Pragmatic Software
c393976ab1
Add RunCommand plugin
2021-07-25 18:43:35 -07:00
Pragmatic Software
79c26366f6
Update version
2021-07-25 08:24:49 -07:00
Pragmatic Software
f81b64f374
WebPaste: insignificant rename filename field
2021-07-25 08:24:42 -07:00
Pragmatic Software
38ca456fb6
Modules: er, the quotes are needed
2021-07-25 08:24:16 -07:00
Pragmatic Software
34ab87c8a8
Update version
2021-07-24 17:29:56 -07:00
Pragmatic Software
ad5e8bc545
Modules: strip quotes from arguments
2021-07-24 17:29:51 -07:00
Pragmatic Software
b71e32a9ce
Update version
2021-07-24 14:18:22 -07:00
Pragmatic Software
baa726bec6
WebPaste: paste as text/plain to 0x0.st (prevents .bin pastes)
2021-07-24 14:18:19 -07:00
Pragmatic Software
7d966b4d4f
Update version
2021-07-23 19:24:17 -07:00
Pragmatic Software
7b703ccffe
Move Storage and Utils into Core
2021-07-23 19:22:25 -07:00
Pragmatic Software
1b15ba615b
Commands: insignificant refactor to remove an extra line
2021-07-23 18:37:45 -07:00
Pragmatic Software
611cc00102
Update version
2021-07-23 18:26:50 -07:00
Pragmatic Software
2b0201343f
Progress on polishing things
2021-07-23 18:26:45 -07:00
Pragmatic Software
6fd4245b2e
Commands now stored as hash table
2021-07-23 18:26:07 -07:00
Pragmatic Software
2bda82dd4b
Update version
2021-07-23 17:01:22 -07:00
Pragmatic Software
cca43f965d
Add PBot::Core::Handlers
2021-07-23 17:01:18 -07:00
Pragmatic Software
d99bef82ba
Update version
2021-07-23 16:59:05 -07:00
Pragmatic Software
98598e4203
Rename IRCHandlers to Handlers
2021-07-23 16:57:33 -07:00
Pragmatic Software
0e8e642ff3
Update version
2021-07-23 16:41:55 -07:00
Pragmatic Software
4b3c5d58cf
Finish moving commands from Core to Commands
2021-07-23 16:41:32 -07:00
Pragmatic Software
4b80131473
Update version
2021-07-23 10:13:23 -07:00
Pragmatic Software
7f3650004e
Utils/PriorityQueue: simplify find_enqueue_position with an alias for $self->{queue}
2021-07-23 10:13:19 -07:00
Pragmatic Software
d4f9240c3d
Update version
2021-07-23 07:27:27 -07:00
Pragmatic Software
2229eecca4
Progress on moving commands from Core to Commands
2021-07-23 07:24:30 -07:00
Pragmatic Software
6b785622aa
Update version
2021-07-22 06:59:43 -07:00
Pragmatic Software
b2660352fd
Update version
2021-07-22 05:36:56 -07:00
Pragmatic Software
b990d482c1
Rename LoadPackages to LoadModules
2021-07-22 05:36:46 -07:00
Pragmatic Software
51c061f31d
Update version
2021-07-22 05:09:10 -07:00
Pragmatic Software
dfda37227d
Refactor Utils::LoadPackages to use @INC
2021-07-22 05:09:07 -07:00
Pragmatic Software
c6f8490491
Update version
2021-07-21 13:57:24 -07:00
Pragmatic Software
15e04c40ad
Update version
2021-07-21 12:43:36 -07:00
Pragmatic Software
a21c475681
Progress on polishing things
2021-07-21 12:43:30 -07:00
Pragmatic Software
91da60bf72
Update version
2021-07-21 10:49:41 -07:00
Pragmatic Software
2ec89864bd
Fix cmd_factfind not being found
2021-07-21 10:49:38 -07:00
Pragmatic Software
fb0bfc4c2f
Update version
2021-07-21 10:08:11 -07:00
Pragmatic Software
d4d9b37e76
Commands: Fix cmdset, cmdunset and help commands
2021-07-21 10:08:07 -07:00
Pragmatic Software
8d0d5bc711
Update version
2021-07-20 23:20:47 -07:00
Pragmatic Software
fd21e38e2c
Rename PBot::PBot to PBot::Core
2021-07-20 23:20:24 -07:00
Pragmatic Software
237d124dc7
Update version
2021-07-20 23:06:16 -07:00
Pragmatic Software
abfbc558e8
Progress on refactoring and polishing everything
2021-07-20 23:06:03 -07:00
Pragmatic Software
e1d6b1b950
Update version
2021-07-20 22:44:59 -07:00