Commit Graph

239 Commits

Author SHA1 Message Date
Pragmatic Software 2f11ae7114 Interpreter: case-insensitive dehighlight 2020-02-06 03:37:07 -08:00
Pragmatic Software 1a2d463f5b Interpreter: minor clean-up 2020-02-06 03:29:48 -08:00
Pragmatic Software d5ec26c8b3 Interpreter: whoops 2020-02-06 03:26:35 -08:00
Pragmatic Software 9811bf3ff7 Interpreter: dehighlight nicks before outputting messages 2020-02-06 03:14:14 -08:00
Pragmatic Software 47687f9e4f Interpreter: remove unnecessary slash 2020-02-05 01:21:00 -08:00
Pragmatic Software 6ff93c0190 Interpreter: no need to use regex here 2020-02-05 01:13:46 -08:00
Pragmatic Software 3162660cf9 Significant clean-up of log output for command invocations 2020-02-05 01:09:43 -08:00
Pragmatic Software 6267cc04d2 Finished replacing admin-levels with user-capabilities [FIN commit 2 of 2]; misc clean-ups 2020-02-03 17:19:04 -08:00
Pragmatic Software f358cd9c73 Interpreter: split_args() now accepts option to toggle preserving of quotes in rest of arguments 2020-02-01 22:14:32 -08:00
Pragmatic Software 61fa6bbb66 Interpreter: `recall`/`mock` "me" works again 2020-01-29 16:09:38 -08:00
Pragmatic Software 5536d55da2 Interpreter: sigh, add more commands to exempt from my->nick -- I really need to change this to use metadata instead 2020-01-26 20:03:50 -08:00
Pragmatic Software 46940827e0 Interpreter: do not translate my->nick for `help`, etc 2020-01-26 18:56:45 -08:00
Pragmatic Software 5dd03f1c0c Massive refactor: added support for generic users!
Renamed data/admins to data/users
Moved Admins.pm to Users.pm
Moved various subroutines in AdminCommands.pm to more appropriate locations
Deleted AdminCommands.pm
Improvements to Users.pm
Added `my` command
2020-01-25 12:28:05 -08:00
Pragmatic Software d61b1217bb Interpreter: properly check $from for $botnick 2020-01-21 21:15:01 -08:00
Pragmatic Software 02552081d5 Fix all potential case-sensitivity issues
Misc clean-ups and refactors
2020-01-14 18:10:53 -08:00
Pragmatic Software 3da8e22e4e Add `op` and `deop` commands 2020-01-11 17:46:44 -08:00
Pragmatic Software be8ae88dcc Replace all instances of "localhost" with "pbot" 2020-01-03 20:37:58 -08:00
Pragmatic Software b8c77abd47 Improve and simplify pipe/subcmd logic 2019-09-04 20:18:32 -07:00
Pragmatic Software 5f2276bf63 Interpreter: disregard quotes in extract_bracketed; replace ;; with ;;; 2019-08-23 14:07:21 -07:00
Pragmatic Software ff14b8e419 Fix alias escaping 2019-08-06 10:44:10 -07:00
Pragmatic Software b7f2c188bc Improve handling of newlines in factoids 2019-08-06 10:38:46 -07:00
Pragmatic Software 3553692b5a Fix some more Unicode encoding issues 2019-07-10 18:40:53 -07:00
Pragmatic Software 81ae3a5741 Fix split_line issue where it could sometimes forget tokens when encountering unbalanced quotes 2019-07-08 15:51:55 -07:00
Pragmatic Software 5e2cb09744 Fix trailing whitespace throughout 2019-06-26 09:34:19 -07:00
Pragmatic Software 8c97a57eab Interpreter: improve split_line 2019-06-25 23:19:57 -07:00
Pragmatic Software 0310145c7d Interpreter: commands can now be split with ;; 2019-06-25 18:23:21 -07:00
Pragmatic Software 8e21de1f60 Interpreter: split_line is now smarter about JSON and code 2019-06-24 16:47:31 -07:00
Pragmatic Software 4826b1c851 Interpreter: add default options to split_line() 2019-06-10 11:51:48 -07:00
Pragmatic Software 982d4b4b8d Factoids: find_factoid now takes an options hash instead 2019-06-09 16:33:27 -07:00
Pragmatic Software 0f81584d8f Interpreter: split_line() now takes an options hash; now accepts "strip_quotes" and "keep_spaces" 2019-06-09 13:57:08 -07:00
Pragmatic Software 0979ac86d9 Interpreter: split_line now accepts a parameter to strip quotes 2019-06-07 13:56:41 -07:00
Pragmatic Software 8814fdfe9b FactoidCommands: factadd now supports -f option to force overwriting existing factoid 2019-06-02 22:34:17 -07:00
Pragmatic Software bb08250673 Factoid `usage` metadata can now interrupt pipes to display usage message as appropriate 2019-06-02 19:30:35 -07:00
Pragmatic Software ef96ba21cb Interpreter: slightly increase human-like delay 2019-06-01 18:55:08 -07:00
Pragmatic Software e0a6d9bcb6 Interpreter: remove left-over declaration 2019-05-31 02:27:30 -07:00
Pragmatic Software fcb4404012 Interpreter: extract_bracketed: fix indentation, minor tweaks 2019-05-30 09:25:31 -07:00
Pragmatic Software acf35a5df3 Interpreter: write custom extract_bracketed to gracefully handle unbalanced brackets or quotes 2019-05-30 00:27:52 -07:00
Pragmatic Software b04015286c Interpreter: minor corrections to split_line 2019-05-28 11:56:06 -07:00
Pragmatic Software e287887765 Interpreter: rewrite make_args to gracefully handle unbalanced quotes 2019-05-28 11:11:32 -07:00
Pragmatic Software 925a5e57bd Minor whitespace syntax clean-up throughout 2019-05-28 09:19:42 -07:00
Pragmatic Software aa19260a24 Interpreter: fix mishandling of spaces when building arglist 2019-05-27 07:43:14 -07:00
Pragmatic Software a892e8e5c1 Interpreter: add `tell nick the <command>` syntax 2019-05-20 13:10:08 -07:00
Pragmatic Software 2dc78f7383 Interpreter: fix incorrect handling of quoted arguments 2019-05-15 10:59:48 -07:00
Pragmatic Software 6f6090efc5 Interpreter: reduce human-like delay durations 2019-05-15 10:59:20 -07:00
Pragmatic Software 73741e5418 code-factoids: handle arguments a little better 2019-05-09 21:04:28 -07:00
Pragmatic Software f8d8cac7d4 Interpreter: case-insensitive "Why would I want to do that to myself?" exceptions 2019-05-04 19:04:11 -07:00
Pragmatic Software 42f0bb7002 Interpreter: ignore bot commands from unidentified users in +z channels 2018-08-13 20:06:07 -07:00
Pragmatic Software 75f6d86a88 AntiFlood: disregard unreg spam floods on +z channels 2018-08-13 14:25:35 -07:00
Pragmatic Software 16b708851a Replace missed split with split_args 2018-08-09 22:44:28 -07:00
Pragmatic Software 174de2be8e Update all commands to understand quoted arguments; factoid names, etc, can now contain spaces 2018-08-08 17:38:57 -07:00
Pragmatic Software 6454ff82aa Interpreter: support array of positional arguments 2018-08-06 20:23:35 -07:00
Pragmatic Software 7b20a00797 Interpreter: improve parsing of pipes 2018-08-06 18:47:07 -07:00
Pragmatic Software 65644815e0 Interpreter: check for +z chanmode and ignore commands from banned users 2018-08-05 22:48:24 -07:00
Pragmatic Software e1028f84a2 Fix escaping of pipes and command substitutions 2018-05-21 19:27:57 -07:00
Pragmatic Software 4f54ee669c Do not do me/my expansion for a few more commands 2018-05-21 18:06:32 -07:00
Pragmatic Software 89f38026d3 Fix preserve whitespace setting 2018-05-21 18:02:16 -07:00
Pragmatic Software 3626399b85 Immediately process output queue if delay <= 0 2018-02-18 16:39:26 -08:00
Pragmatic Software 4064075df9 Force checkflood for output_queue to ensure messages are logged 2018-02-16 11:12:41 -08:00
Pragmatic Software 8248661ef0 Interpreter: Exempt some more keywords from me/my expansion; add "I am" -> "nick is" expansion 2018-02-09 19:09:11 -08:00
Pragmatic Software 774da2f033 Do not replace `me` or `my` in Spinach lies 2018-01-31 22:12:28 -08:00
Pragmatic Software 7e061741da Improve nick-prefix/override 2018-01-23 13:58:03 -08:00
Pragmatic Software 8441869fac Fix embedded command extraction 2017-12-18 03:51:09 -08:00
Pragmatic Software 8fb98d614f Add ability to override command effective-level 2017-12-11 12:44:19 -08:00
Pragmatic Software 1d2d057d45 Properly flag whether a command was processed and interpreted 2017-12-09 13:26:20 -08:00
Pragmatic Software f24c26d2ef Straighten out nickoverride a bit 2017-12-09 13:25:11 -08:00
Pragmatic Software b2273d32fb Extract nested command substitutions and pipes 2017-12-08 20:26:08 -08:00
Pragmatic Software 4338455e11 Properly extract embedded commands 2017-12-08 19:28:08 -08:00
Pragmatic Software e2db94c354 Add WebPaste.pm for rotating paste sites 2017-12-05 21:05:44 -08:00
Pragmatic Software 1378e41c1b Improve handling of /say, etc, in output text 2017-12-04 21:22:19 -08:00
Pragmatic Software 0d0c12e798 Unescape escaped command substitutions 2017-12-04 20:12:27 -08:00
Pragmatic Software 43d227d1a9 Support command substitution 2017-12-04 18:34:34 -08:00
Pragmatic Software f6da7f5662 Prevent /msg to serv@network (currently only abusable by admins) 2017-12-03 19:09:34 -08:00
Pragmatic Software 3ab8f44a8a No need to show debugcontext log for empty result 2017-12-02 15:04:36 -08:00
Pragmatic Software 7a53f74e83 Handle commands/pipes with newlines 2017-11-30 18:50:17 -08:00
Pragmatic Software 51735494b3 Minor improvement to nick addressing 2017-11-30 13:11:39 -08:00
Pragmatic Software 6ddfce4cc3 Remove code duplication 2017-11-28 19:10:22 -08:00
Pragmatic Software ed5a34f16e Fix piping from aliases containing pipes 2017-11-28 19:07:01 -08:00
Pragmatic Software e0e8434b85 Fix piping code-factoids 2017-11-28 18:30:35 -08:00
Pragmatic Software 3b36634fa9 Fix factoid case duplication; enable me/my for pipes 2017-11-27 02:14:34 -08:00
Pragmatic Software 1222436616 Pipes can now be escaped for easy factadding, etc 2017-11-25 20:01:34 -08:00
Pragmatic Software 78a12b3a46 Improve nickoverride processing 2017-11-25 20:00:55 -08:00
Pragmatic Software a7f298520d Temporarily fix /msg, sort of 2017-11-23 14:12:23 -08:00
Pragmatic Software 51b1b25b16 Add `debugcontext` registry item for $stuff dumps 2017-11-20 16:10:48 -08:00
Pragmatic Software fc6e0759d3 Fix dead argument in pipe 2017-11-19 14:39:03 -08:00
Pragmatic Software 45dcefc752 /kick factoids can now be piped 2017-11-17 21:38:28 -08:00
Pragmatic Software 7b903854a3 Remove secretstuff; use $stuff context instead 2017-11-17 21:37:54 -08:00
Pragmatic Software 656adae53c Improvements to piping and stuff 2017-11-17 13:53:23 -08:00
Pragmatic Software 3ed4d58570 Significant refactoring of command passing
Instead of passing locally-scoped short-lived parameters to subroutines,
we now create and pass around a "stuff" context hash.

This allows contextual state to be passed and updated throughout the life
of a command.

This commit is a WIP and is 90% finished. There are likely to be a couple of
edge-cases where strange things may happen. But command-piping mostly works!
2017-11-16 09:23:58 -08:00
Pragmatic Software 68279d7a82 Minor refactor of process_line to ignore embedded commands within full commands 2017-11-14 15:27:30 -08:00
Pragmatic Software d644ac04d5 Limit factoid keywords to 30 characters 2017-11-13 12:00:34 -08:00
Pragmatic Software d771d66d8f fact_find no longer treats some aliases as regex when they alias a built-in command 2017-10-09 19:35:11 -07:00
Pragmatic Software f07c34f53f Paste to ix.io instead of sprunge; set 10 second timeout for pastes 2017-10-05 14:31:58 -07:00
Pragmatic Software 8ba0664b85 Improve parsing of embedded factoids 2017-10-05 14:31:00 -07:00
Pragmatic Software 85693f905a Convert code-factoids to use VM
Code-factoids can now use the compiler virtual machine. Any languages installed
in the VM are valid candidates for code-factoids!

Syntax: factadd keyword /code language code here
2017-09-10 19:53:29 -07:00
Pragmatic Software d6a845f988 Do some basic string validation for factoids and such 2017-09-05 00:27:28 -07:00
Pragmatic Software 1b70de807b Change split / / to split /\s+/ throughout 2017-09-02 00:39:29 -07:00
Pragmatic Software 5ee07e08d2 Replace control chars with escaped ordinals 2017-09-02 00:19:39 -07:00
Pragmatic Software 0fd81482d7 Follow factoid aliases when checking for use_output_queue 2017-08-30 18:03:10 -07:00
Pragmatic Software b0b1d1affa Fix incorrect fact_find in interpreter 2017-08-30 06:54:23 -07:00
Pragmatic Software 2ac7b6feb6 Exclude "Why would I want to do that to myself?" from specific commands 2017-08-26 04:06:36 -07:00