Commit Graph

262 Commits

Author SHA1 Message Date
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
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 06d341b41f Automagically transpose a/an preceding factoid variable expansion 2017-08-25 23:36:11 -07:00
Pragmatic Software 8cae7a0847 Pre-expand factoid variables in code-factoids 2017-08-25 15:32:28 -07:00
Pragmatic Software 7f2f32f3d0 Limit max action length from code-factoid result 2017-08-24 15:19:12 -07:00
Pragmatic Software 872d31528a Add code-factoids! 2017-08-23 19:25:43 -07:00