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

267 Commits

Author SHA1 Message Date
Pragmatic Software
6115d73639 Factoids: revert $var channel expansion -- now strict again; will improve shortly 2019-08-20 14:57:12 -07:00
Pragmatic Software
50ebf52371 Factoids: turn debugging back off for $var expansions 2019-08-17 10:11:34 -07:00
Pragmatic Software
15f8a3683e Factoid improvements
- support braced ${variables}
 - $var expansion improvements
2019-08-17 10:09:26 -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
30992af811 Add some whitespace around this one line 2019-07-06 01:29:14 -07:00
Pragmatic Software
0cc1c67862 Factoids: /code factoids can now contain newlines 2019-06-30 20:48:15 -07:00
Pragmatic Software
2cdb70c5bf Fix Unicode encoding issues 2019-06-30 15:08:18 -07:00
Pragmatic Software
00eac49ca9 Remove redundant "Loading ..." log messages 2019-06-28 00:56:18 -07:00
Pragmatic Software
5a26aca801 Convert HashObject file format to JSON to support newlines in factoid contents, etc 2019-06-28 00:22:57 -07:00
Pragmatic Software
5e2cb09744 Fix trailing whitespace throughout 2019-06-26 09:34:19 -07:00
Pragmatic Software
5cf13c1bdd Factoids: Remove use of shellwords 2019-06-22 18:29:54 -07:00
Pragmatic Software
f0181c7a69 Factoids: add default options for named parameters 2019-06-10 09:21:35 -07:00
Pragmatic Software
982d4b4b8d Factoids: find_factoid now takes an options hash instead 2019-06-09 16:33:27 -07:00
Pragmatic Software
b3ac27758d Factoids: keywords can now contain spaces 2019-06-09 09:54:42 -07:00
Pragmatic Software
90f3d390bd Factoids: er, preserve the quotes in arguments 2019-06-08 17:57:31 -07:00
Pragmatic Software
f00cabe4ec Factoids: correct edge-case mishandling of quoted arguments 2019-06-08 17:52:25 -07:00
Pragmatic Software
5d1310adb3 Factoids: variable modifiers such as :ucfirst now pass through to replacements 2019-06-07 13:16:54 -07:00
Pragmatic Software
4a27a7e59f Factoids: factoid variable identifiers can now be delimited with braces (e.g.: ${foo}) 2019-06-06 15:21:15 -07:00
Pragmatic Software
bffbc8b3d0 Factoids: add requires_arguments metadata to tell usage metadata if a usage is required in a pipe or other expansion 2019-06-03 08:50:42 -07:00
Pragmatic Software
563f8da40f Factoids: usage metadata now understands $0 for keyword 2019-06-03 08:01:52 -07:00
Pragmatic Software
ff3ffea15e Factoids: factoid variables can now be quoted properly 2019-06-02 22:34:54 -07:00
Pragmatic Software
460df9ef64 Factoids: Remove packages left-over from execute_code_factoid_using_safe's removal 2019-06-02 19:37:34 -07:00
Pragmatic Software
5eeabccaf2 Factoids: remove execute_code_factoid_using_safe 2019-06-02 19:31:25 -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
f87e3c7cd8 Factoids: add usage metadata to show usage message if no arguments supplied 2019-06-02 16:59:27 -07:00
Pragmatic Software
6e98c471d2 Factoids: add allow_empty_args metadata to prevent empty $args from expanding as $nick 2019-06-02 16:28:55 -07:00
Pragmatic Software
e9fc0e5474 Factoids: add flag to prevent --keyword-override parsing 2019-05-31 08:21:27 -07:00
Pragmatic Software
d8a9660e39 Factoids: undo weird $args man-in-the-middle behavior 2019-05-29 10:36:09 -07:00
Pragmatic Software
56f7e2ab7d Factoids: stop repeatedly trying to expand undefined factoid variables 2019-05-29 09:49:24 -07:00
Pragmatic Software
925a5e57bd Minor whitespace syntax clean-up throughout 2019-05-28 09:19:42 -07:00
Pragmatic Software
17f5b92a8f Factoids: use correct arguments when calling alias 2019-05-22 23:12:31 -07:00
Pragmatic Software
bebddb5ea9 Factoids: add require_explicit_args metadata to prevent $args from appending undesirably in aliases 2019-05-13 08:37:36 -07:00
Pragmatic Software
5b4af4ce4b Factoids: see previous commit message 2019-05-13 00:24:08 -07:00
Pragmatic Software
73741e5418 code-factoids: handle arguments a little better 2019-05-09 21:04:28 -07:00
Pragmatic Software
7da4003ffd Factoids: replace hard-coded max length values with registry values 2019-05-09 18:04:52 -07:00
Pragmatic Software
0f8966a9ff No longer trips over its feet 2019-05-07 19:57:09 -07:00
Pragmatic Software
2c66a7144b Factoids: Properly look-up root keyword data when overriding 2019-05-02 15:04:04 -07:00
Pragmatic Software
1ff38eaacc Factoids: root keyword can now be overridden 2019-05-02 14:09:33 -07:00
Pragmatic Software
1f6d655a3e Factoids: Fix broken ref_from when using factfind on an alias 2019-05-02 12:39:05 -07:00
k
a19f40251d Fix some broken ,fact behavior (#49) 2018-08-10 13:12:24 -07:00
Pragmatic Software
8af3682dc3 Add quotes around keywords with spaces in output messages 2018-08-08 17:58:53 -07:00
Pragmatic Software
e1028f84a2 Fix escaping of pipes and command substitutions 2018-05-21 19:27:57 -07:00
Pragmatic Software
81dcc3bee1 Add strictnamespace registry key 2018-05-12 02:52:52 -07:00
Pragmatic Software
fd36d91ac4 Remove left-over capture group 2018-04-01 16:36:08 -07:00
Pragmatic Software
ec117c4aec Factoids: Fix expansions for real 2018-04-01 16:34:29 -07:00
Pragmatic Software
8dc7db0857 Factoids: Fix expansions again 2018-04-01 15:03:04 -07:00
Pragmatic Software
fe33e3e777 Fix factoid expansion offset 2018-03-31 14:45:43 -07:00
Pragmatic Software
31e38bf2fe Whoops, forgot a/an in Factoid expansion replacement 2018-03-24 17:37:47 -07:00
Pragmatic Software
e70e016112 Improve factoid variable expansion 2018-03-23 13:34:28 -07:00
Pragmatic Software
0193800c1e Remove leading spaces when replacing empty factoid variable 2018-01-25 23:37:40 -08:00
Pragmatic Software
920747e86a Remove dash from factoid variable identifier naming 2018-01-23 13:58:35 -08:00
Pragmatic Software
7e061741da Improve nick-prefix/override 2018-01-23 13:58:03 -08:00
Pragmatic Software
f8960d79b5 Properly update version factoid on refresh 2018-01-22 23:48:25 -08:00
Pragmatic Software
951c1280ab Factoids: Do not increment depth for skipped expansions 2018-01-21 20:07:33 -08:00
Pragmatic Software
6c0cbb6ff2 Restrict /msg to level 60+ admins 2018-01-20 08:56:45 -08:00
Pragmatic Software
4311d6662d Factoids: Preserve case of indefinite article in expansions 2018-01-19 10:46:15 -08:00
Pragmatic Software
3c509b5306 Fix ratelimit override to use correct channel 2017-12-10 18:36:16 -08:00
Pragmatic Software
99be204a95 Add per-channel ratelimit_override registry object to ... override factoid ratelimits on a per-channel basis 2017-12-10 13:18:00 -08:00
Pragmatic Software
f24c26d2ef Straighten out nickoverride a bit 2017-12-09 13:25:11 -08:00
Pragmatic Software
836a20262f Use correct command for factoid aliases 2017-11-30 18:53:40 -08:00
Pragmatic Software
7b142c68f5 Fix some UTF8 <=> JSON encoding issues? 2017-11-30 18:46:14 -08:00
Pragmatic Software
51735494b3 Minor improvement to nick addressing 2017-11-30 13:11:39 -08:00
Pragmatic Software
e0e8434b85 Fix piping code-factoids 2017-11-28 18:30:35 -08:00
Pragmatic Software
f3a036bc81 Do not expand underscore-prefixed factoid varianbles 2017-11-28 18:30:09 -08:00
Pragmatic Software
1b13f00503 Fix utf8 encoding issue with code-factoids? 2017-11-27 19:18:00 -08:00
Pragmatic Software
3b36634fa9 Fix factoid case duplication; enable me/my for pipes 2017-11-27 02:14:34 -08:00
Pragmatic Software
78a12b3a46 Improve nickoverride processing 2017-11-25 20:00:55 -08:00
Pragmatic Software
52d3cadef7 Improve factoid variable expansion 2017-11-23 14:12:43 -08:00
Pragmatic Software
ba970cbc18 Fix factoid channel reference tag duplication 2017-11-20 16:12:13 -08:00
Pragmatic Software
51b1b25b16 Add debugcontext registry item for $stuff dumps 2017-11-20 16:10:48 -08:00
Pragmatic Software
4d99f1655c Fix unencoded entity in factoids HTML export 2017-11-19 14:37:02 -08:00
Pragmatic Software
7b903854a3 Remove secretstuff; use $stuff context instead 2017-11-17 21:37:54 -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
69c081fd9a Limit maximum number of factoid variable expansions 2017-11-12 08:04:42 -08:00
Pragmatic Software
7e76740f5b Move special var expansion to expand_special_vars 2017-10-09 19:39:54 -07: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
ab7aa990a0 Add :json modifier to escape variables for JSON 2017-09-23 21:04:21 -07:00
Pragmatic Software
807bfbf235 Persist-key now works on VM-based code-factoids 2017-09-18 21:36:40 -07:00
Pragmatic Software
e43d2ef144 Improvements to code-factoids
Most code languages now accept factoida arguments as command-line
arguments; e.g., argc and argv in C/C++, args[] in Java, @ARGV in Perl, etc.

No longer say "Same output" for code-factoids.
2017-09-15 16:41:36 -07:00
Pragmatic Software
4389d01b54 code-factoids now support native variables (currently only C-family and Perl are implemented) 2017-09-12 05:50:49 -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
8f9875cf18 Correct $tonick/$nick behavior in factiod interpolation 2017-09-05 17:22:47 -07:00
Pragmatic Software
d6a845f988 Do some basic string validation for factoids and such 2017-09-05 00:27:28 -07:00
Pragmatic Software
b6aecce701 Temporarily disable code-factoids
There are a wide range of potential denial-of-service attacks possible
without severely restricting the allowed opcodes. As such, we are
setting code-factoids' default state to disabled. Enable at your own risk.

There are plans to move the code-factoid logic to a virtual machine.
2017-09-03 01:38:25 -07:00
Pragmatic Software
58a629eca4 Correct 0-value factoid var expansion 2017-09-02 01:44:57 -07:00
Pragmatic Software
12a92ea7d3 Replace control chars with escaped ordinals 2017-09-02 00:40:46 -07:00
Pragmatic Software
1b70de807b Change split / / to split /\s+/ throughout 2017-09-02 00:39:29 -07:00
Pragmatic Software
793303fcde Fix factoid var expansion such that 0 can now be yielded 2017-09-02 00:27:01 -07:00
Pragmatic Software
2f014ba2f0 Use /say on returns whose first word is a variable 2017-09-02 00:14:13 -07:00
Pragmatic Software
678d82676d Add interpolate factoid metadata to control interpolation 2017-08-31 03:10:20 -07:00
Pragmatic Software
3b93d6c281 Escape single-quotes before using GetOptionsFromString and shellwords 2017-08-30 02:12:05 -07:00
Pragmatic Software
3d7388b402 Correct expansion of $nick and $args and such 2017-08-28 23:15:57 -07:00
Pragmatic Software
25e104732e Whoops, don't add an $ to $0 expansion, use $0 in factoids and $$0 for factoid variables instead 2017-08-27 20:40:15 -07:00
Pragmatic Software
a6e495352f Remove extraneous $1 2017-08-27 19:54:46 -07:00
Pragmatic Software
c5da50593a Expand $0 and /call in factoid variables 2017-08-27 19:52:36 -07:00
Pragmatic Software
75c6375339 Refactor code-factoid execution a little bit 2017-08-27 04:18:31 -07:00
Pragmatic Software
2cd007d6c4 Execute code-factoids in action_with_args 2017-08-26 21:42:01 -07:00
Pragmatic Software
770e678170 code-factiod symbol name exclusion now more robust 2017-08-26 03:45:58 -07:00
Pragmatic Software
6d552cc710 Double-quoted $0 in code-factoids now expand to root-keyword 2017-08-26 01:50:42 -07:00