3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-12-25 12:12:34 +01:00
Commit Graph

232 Commits

Author SHA1 Message Date
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
Pragmatic Software
1a08156443 Add $0 in factoid action to expand to first keyword used to invoke factoid 2017-08-26 01:45:18 -07:00
Pragmatic Software
17a62b48e4 Limit truncation pastes to 8000 bytes 2017-08-24 15:16:42 -07:00
Pragmatic Software
f6827aa886 Give embedded commands lowest priority so they are not extracted from actual commands 2017-08-24 15:13:20 -07:00
Pragmatic Software
375dd52b41 Add some more commands to me/my-expansion exclusion-list 2017-08-23 19:22:03 -07:00
Pragmatic Software
63bbcb0941 Handle command queue results 2017-08-12 23:42:56 -07:00
Pragmatic Software
c8fa308113 Fix harmless undefined variable warning 2017-08-08 21:18:45 -07:00
Pragmatic Software
e723379c4d Improve the bot's understanding of "me" and "my" 2017-08-01 21:34:57 -07:00