Commit Graph

230 Commits

Author SHA1 Message Date
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
Pragmatic Software f0e617fef7 Move core packages into PBot/Core 2021-07-20 22:44:51 -07:00
Pragmatic Software 799424fcfa IRCHandlers/Server: remove redundant nicknameinuse handler 2021-07-20 22:01:26 -07:00
Pragmatic Software 31e2a32f35 EventDispatcher: fix typo in comment 2021-07-20 22:00:30 -07:00
Pragmatic Software 767467b904 Update version 2021-07-20 21:38:15 -07:00
Pragmatic Software ea63ef8fe8 Massive reorganization
Storage-related packages have been moved to PBot/Storage/.

MessageHistory_SQLite.pm has been moved to MessageHistory/Storage/SQLite.pm.

Quotegrabs' storage packages have been moved to Plugin/Quotegrabs/Storage/.

IRC handler-related packages have been moved to PBot/IRCHandlers/.

Commands registered by core PBot packages have been moved to PBot/Commands/.

Some non-core packages have been moved to PBot/Utils/.

Several packages have been cleaned up.

TODO: Move remaining core commands and IRC handlers.

TODO: Split AntiFlood.pm into Plugin/AntiAbuse/ files.
2021-07-20 21:38:07 -07:00
Pragmatic Software feead79ad7 DualIndexSQLiteObject: remove left-over whitespace 2021-07-19 17:03:10 -07:00
Pragmatic Software 9142d526d1 Update version 2021-07-19 16:58:30 -07:00
Pragmatic Software eecf756b07 Refactor DualIndexSqliteObject
- use event queue for decaching
- refactor levenshtein_matches
- misc clean-ups
2021-07-19 16:57:02 -07:00
Pragmatic Software b4447d4b4a NickList: clean up comments 2021-07-19 10:54:17 -07:00
Pragmatic Software 9890ca99ee Add some comments about priority levels 2021-07-19 10:49:42 -07:00
Pragmatic Software 354f278cb2 PriorityQueue: add `update_priority()` 2021-07-18 20:49:11 -07:00
Pragmatic Software fcb726d42e Update version 2021-07-18 18:36:24 -07:00
Pragmatic Software a503ce4ec0 NickList: add priorities for event handlers
This ensures the irc.join, irc.quit, etc events get handled first or
last as appropriate.
2021-07-18 18:35:35 -07:00
Pragmatic Software b970ee9aa6 EventDispatcher: store event handlers in priority queue 2021-07-18 18:23:42 -07:00
Pragmatic Software d380422d14 PriorityQueue: rename `get_entry` to `get` 2021-07-18 18:14:28 -07:00
Pragmatic Software a6b2536663 EventQueue: use PriorityQueue class 2021-07-18 17:58:48 -07:00
Pragmatic Software 5818829068 Add PBot::Utils::PriorityQueue
This is extracted from PBot::EventQueue so it can be used more
generally.
2021-07-18 17:55:01 -07:00
Pragmatic Software 6f7a07a1fb Update version 2021-07-17 17:04:17 -07:00
Pragmatic Software b154fe2b5b Significant speed-up when invoking Factoids using DualIndexSQLiteObject as backend 2021-07-17 17:04:12 -07:00
Pragmatic Software e05cc6a33e Update version 2021-07-16 19:08:34 -07:00
Pragmatic Software a7cedd2354 Logger: Add milliseconds to timestamp 2021-07-16 19:08:28 -07:00
Pragmatic Software f5232879e3 Users: fix minor warning 2021-07-16 11:56:23 -07:00
Pragmatic Software c4aa1ee7ce Update version 2021-07-13 20:14:11 -07:00
Pragmatic Software 5a2cc49100 VERSION: Correct URL 2021-07-13 20:13:48 -07:00
Pragmatic Software 287722395c Update version 2021-07-13 19:45:59 -07:00
Pragmatic Software 34d4722580 Make directory structure more Perlish 2021-07-13 19:45:56 -07:00