Commit Graph

74 Commits

Author SHA1 Message Date
Pragmatic Software 14124da3ac Embedded triggers now work at beginning of message 2016-01-19 06:51:40 -08:00
Pragmatic Software 2962a44c12 No longer remove trailing punctuation from embedded factoid commands 2015-11-26 12:36:36 -08:00
Pragmatic Software 43418c1bc6 Require curly braces or backticks around embedded commands 2015-10-10 06:07:24 -07:00
Pragmatic Software 43c0361354 Add botnick to "Why would I want to do that to myself?" condition 2015-09-19 20:02:11 -07:00
Pragmatic Software 70f091545b Replace "me" in factoid arguments only during first interpretation pass 2015-09-10 01:51:24 -07:00
Pragmatic Software e5097eee69 Move URL titles to UrlTitles.pm plugin
Add $event->{interpreted} field to events to notify other handlers
whether an event was successfully interpreted by the interpreter.

An $event->{interpreted} that is equal to or greater than 100 means the entire
message was consumed and handlers shouldn't do any further processing of it
that would generate any output to channels or users.

Otherwise, $event->{interpreted} is incremented by 1 for each referenced
command that was processed.
2015-09-08 01:37:34 -07:00
Pragmatic Software d51d2367a1 Correct logic of `login` command ignore check 2015-09-07 05:04:54 -07:00
Pragmatic Software 8c16fbd3e5 Allow factoids to be referenced from within messages
E.g.,

<pragma-> Userbob: You can learn more about candide by reading its !help page and checking out its !source
<candide> Userbob: To learn all about me, see http://www.iso-9899.info/wiki/Candide
<candide> Userbob: My guts can be browsed at https://github.com/pragma-/pbot

Only three triggers will be processed per message.  (I should create a
registry entry to customize this.)

Messages that are addressed at a specific user that exists in the channel will
have that user's name prepended to the factoid output.

Factoid triggers that are referenced from within messages will not produce
error messages if the factoid is not found.

Factoids that have an $arg or $nick special variable will not be triggered as
a reference.

Factoids that have the `noembed` meta-data value set to a true value will not
be invoked as a reference.
2015-09-03 20:56:44 -07:00
Pragmatic Software 499d91e07d Do not exempt bot-admins lower than level 10 from ignore list 2015-08-08 12:39:17 -07:00
Pragmatic Software dbfb8a6add Remove unnecessary printing of ignored messages 2015-07-23 17:47:16 -07:00
Pragmatic Software 7cc8b9c34d Allow chat-flood antiflood settings to be overridable on a per-channel basis 2015-07-08 14:05:55 -07:00
Pragmatic Software 0c1e573ef8 Do not invoke compilation for compile-blocks if nick-prefix is specified and does not exist in channel 2015-06-19 16:16:23 -07:00
Pragmatic Software 3012297183 Do not require whitespace next to nick when triggering by bot-nick 2015-05-27 10:44:26 -07:00
Pragmatic Software 0b1d5c29bf Fall back to codepad if sprunge fails to paste
Refactor rate-ratelimiting.
2015-05-15 17:53:13 -07:00
Pragmatic Software a997705ea4 Correct sprunge error message 2015-05-06 21:22:22 -07:00
Pragmatic Software 898aa18783 Add rate-limit to paste_sprunge function
Improve formatting of truncate/paste output when an error has occurred.
2015-05-06 21:15:25 -07:00
Pragmatic Software 715ff8ee78 Find factoids in proper channel namespace 2015-04-26 16:05:03 -07:00
Pragmatic Software f20932b442 Allow setting channel-specific registry item `no_url_titles` and `no_compile_blocks` to prevent invoking these in those channels
Rename $mynick to $botnick throughout
2015-04-19 01:55:52 -07:00
Pragmatic Software 9ff76ad500 Reduce pseudo-AI typing delay 2015-04-13 15:41:11 -07:00
Pragmatic Software 17afac5908 Check commands table for keyword before searching regexs 2015-04-03 15:33:19 -07:00
Pragmatic Software 383c194966 Don't remove trailing punctuation from arguments
Rename $count to $depth to reflect recursion
2015-04-03 12:32:35 -07:00
Pragmatic Software c73f8b6a01 Minor refactor 2015-03-30 15:04:08 -07:00
Pragmatic Software b36a4fb2c9 Improve message output queue
- Use distinct per-channel queues
- Use timestamp of last message in queue to add delay
- Increase typing speed from 4 characters per second to 7 cps
2015-03-29 20:24:36 -07:00
Pragmatic Software e199f6309a Factoids can now be set to use a delayed output queue instead of immediately responding 2015-03-28 17:50:43 -07:00
Pragmatic Software 44bdf26ebc Add support for per-channel bot trigger characters 2015-03-23 04:27:41 -07:00
Pragmatic Software 9a52fffcdd Rename ShitList to BlackList; minor refactor of IgnoreList 2015-03-16 21:08:25 -07:00
Pragmatic Software 46fa0d52b3 Minor code formatting improvement 2014-10-14 02:30:57 +00:00
Pragmatic Software 321fdc401c Improve handling of white-space when splitting output on new-lines 2014-08-11 07:32:24 +00:00
Pragmatic Software 48382de916 Add ability to set maximum number of newlines allowed before truncating for preserve newlines 2014-08-05 23:15:11 +00:00
Pragmatic Software dddc9c3be9 Paste remaining lines to paste site if truncated with more lines remaining when preserve newlines is in effect 2014-08-05 23:11:51 +00:00
Pragmatic Software b15ab7f84f Add ability to preserve newlines in output; require explicit `factadd` to add factoids 2014-08-04 22:48:32 +00:00
Pragmatic Software 60d8235999 Add registry entry to control max recursion depth for interpreter 2014-05-31 01:05:47 +00:00
Pragmatic Software 40b2393d05 Add registry values to manage showing url titles and compiling blocks 2014-05-19 21:34:24 +00:00
Pragmatic Software 937282a114 Add more values to registry for antiflood and lagchecker 2014-05-19 02:42:18 +00:00
Pragmatic Software 30e3c5ce35 Remove PBot getter/setters; move anti-flood registry defaults to AntiFlood.pm 2014-05-18 20:09:05 +00:00
Pragmatic Software d955bfa06c Add centralized configuration registry module
Allows changing of bot configuration values without needing to restart
bot instance or needing to edit pbot.pl script.

Registry will initially be populated with default values from pbot.pl,
but if a registry file exists then the registry values will take
precedence over the pbot.pl values. For instance, if you regset the
bot trigger to '%' then the trigger will be '%' even if pbot.pl has '!'
or something else explicitly set.

Some registry items can have trigger hooks associated with them.  For
instance, the irc->botnick registry entry has a change_botnick_trigger
associated with it which changes the IRC nick on the server when a new
value is set via regset/regadd.

Tons of other fixes and improvements throughout.
2014-05-17 20:08:19 +00:00
Pragmatic Software 54ac8ec0ef Convert message history to use SQLite database instead of Perl hashtable
Added MessageHistory.pm and MessageHistory_SQLite.pm.  May eventually port
and add MessageHistory_Hashtable.pm as was done with Quotegrabs, but this is
not particularly high on the todo list.

Antiflood.pm has been updated to use the new MessageHistory API.

The `recall` command has been moved from Quotegrabs into MessageHistory.  It
also now has the ability to ignore messages containing the recall command
itself, for improved usability.

Likewise, the `grab` command will now ignore previous `grab` commands when
grabbing by regex in order to prevent accidentally grabbing previous grab
attempts.

The `join` and `part` commands have been improved to accept multiple channels,
and `part` will use the current channel if none is provided.
2014-05-13 10:15:52 +00:00
Pragmatic Software 7fa458ab34 Do not expand `me` or remove trailing punctuation for factset/factchange 2014-04-29 04:05:20 +00:00
Pragmatic Software f998f974c0 Truncate module launcher piped result 2014-03-15 01:53:33 +00:00
Pragmatic Software 36b7e1fa6f Improve handling of interpreter result and module execution 2014-03-14 10:05:11 +00:00
Pragmatic Software 921c9917a5 Add $channel special variable for factoids/modules that expands to $from parameter 2014-03-04 21:40:13 +00:00
Pragmatic Software 91a9c69fa5 Interpreter: check for {} code command before regular commands 2014-02-25 03:47:12 +00:00
Pragmatic Software 1155205f0e Bot now keeps message history for itself -- can now be grabbed for quotegrabs 2013-10-22 18:57:08 +00:00
Pragmatic Software c91a8e5c3d Fix /say substitution derp that allowed "/say /msg foo bar" to actually invoke /msg rather than saying "/msg foo bar" 2013-10-12 15:06:27 +00:00
Pragmatic Software 553eceeb77 Fix interpretation of /me commands 2013-07-24 12:33:19 +00:00
Pragmatic Software 208f89837f Improve handling of auto-op and op-commands on per-channel basis
Restore functionality to log out admins when they part/quit
Improve display of quit messages in log
2012-10-27 21:03:10 +00:00
Pragmatic Software 2b5ff48a4c Interpreter: tell <nick> about <command> now case-insensitive
AntiFlood: Correct use of ignore list
IgnoreList: Ignoring user without args now permanent instead of 5 mins
            Save time when ignore expires instead of seconds remaining
            Improve output of `ignore list` command for readability
2012-09-06 10:09:44 +00:00
Pragmatic Software ccf1d35a54 Improvements in interpreter; tell <nick> about <command>; etc 2012-08-23 22:50:07 +00:00
Pragmatic Software 6b35dc210c Skip message containing grab command when grabbing own nick; match brackets for compiler-block; etc 2012-08-12 16:41:38 +00:00
Pragmatic Software 8a70c06096 Misc bug fixes and tweaks 2012-07-22 19:22:30 +00:00