3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-19 18:39:35 +01:00
Commit Graph

151 Commits

Author SHA1 Message Date
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
Pragmatic Software
98a061b232 Fix $nick and $arg being overridden by factoids 2017-08-23 19:14:46 -07:00
Pragmatic Software
6e0456940b Repeatedly expand factoid variables for sub-expansions 2017-08-23 00:21:46 -07:00
Pragmatic Software
93a482490d Ensure version factoid is always created after load() 2017-08-05 20:25:26 -07:00
Pragmatic Software
381b4bee4b Use Time::Duration for rate_limit message 2017-08-04 21:05:31 -07:00
Pragmatic Software
45c47aaea7 Remove explicit check if command exists when looking for existing factoids 2017-08-03 16:15:52 -07:00
Pragmatic Software
9864ce09ae Factoid doesn't have effective-level, not the bot itself... 2017-08-03 13:28:52 -07:00
Pragmatic Software
121de07ae2 Whoops, attempted to modify current $action in loop 2017-08-01 21:31:58 -07:00
Tomasz Kramkowski
382e47d971 Fix "keys on scalar" deprecation warning on newer perl. (#3)
This patch fixes the warning "Experimental keys on scalar is now
forbidden" which appears when running pbot on newer versions of perl.
2017-04-10 19:55:52 -07:00
Tomasz Kramkowski
b5d8f72254 License project under MPL2
This patch adds the file LICENSE which is the verbatim copy of the
Mozilla Public License Version 2.0 as retreived from
https://www.mozilla.org/media/MPL/2.0/index.815ca599c9df.txt on
2017-03-05.

This patch also places license headers for the MPL2 type A variant of
the license header in the following files:

PBot/AntiFlood.pm
PBot/BanTracker.pm
PBot/BlackList.pm
PBot/BotAdminCommands.pm
PBot/BotAdmins.pm
PBot/ChanOpCommands.pm
PBot/ChanOps.pm
PBot/Channels.pm
PBot/Commands.pm
PBot/DualIndexHashObject.pm
PBot/EventDispatcher.pm
PBot/FactoidCommands.pm
PBot/FactoidModuleLauncher.pm
PBot/Factoids.pm
PBot/HashObject.pm
PBot/IRCHandlers.pm
PBot/IgnoreList.pm
PBot/IgnoreListCommands.pm
PBot/Interpreter.pm
PBot/LagChecker.pm
PBot/Logger.pm
PBot/MessageHistory.pm
PBot/MessageHistory_SQLite.pm
PBot/NickList.pm
PBot/PBot.pm
PBot/Plugins.pm
PBot/Plugins/AntiAway.pm
PBot/Plugins/AntiKickAutoRejoin.pm
PBot/Plugins/AntiRepeat.pm
PBot/Plugins/AntiTwitter.pm
PBot/Plugins/AutoRejoin.pm
PBot/Plugins/Counter.pm
PBot/Plugins/Quotegrabs.pm
PBot/Plugins/Quotegrabs/Quotegrabs_Hashtable.pm
PBot/Plugins/Quotegrabs/Quotegrabs_SQLite.pm
PBot/Plugins/UrlTitles.pm
PBot/Plugins/_Example.pm
PBot/Refresher.pm
PBot/Registerable.pm
PBot/Registry.pm
PBot/RegistryCommands.pm
PBot/SQLiteLogger.pm
PBot/SQLiteLoggerLayer.pm
PBot/SelectHandler.pm
PBot/StdinReader.pm
PBot/Timer.pm
PBot/Utils/ParseDate.pm
PBot/VERSION.pm
build/update-version.pl
modules/acronym.pl
modules/ago.pl
modules/c11std.pl
modules/c2english.pl
modules/c2english/CGrammar.pm
modules/c2english/c2eng.pl
modules/c99std.pl
modules/cdecl.pl
modules/cfaq.pl
modules/cjeopardy/IRCColors.pm
modules/cjeopardy/QStatskeeper.pm
modules/cjeopardy/Scorekeeper.pm
modules/cjeopardy/cjeopardy.pl
modules/cjeopardy/cjeopardy_answer.pl
modules/cjeopardy/cjeopardy_filter.pl
modules/cjeopardy/cjeopardy_hint.pl
modules/cjeopardy/cjeopardy_qstats.pl
modules/cjeopardy/cjeopardy_scores.pl
modules/cjeopardy/cjeopardy_show.pl
modules/codepad.pl
modules/compiler_block.pl
modules/compiler_client.pl
modules/compiler_vm/Diff.pm
modules/compiler_vm/cc
modules/compiler_vm/compiler_client.pl
modules/compiler_vm/compiler_server.pl
modules/compiler_vm/compiler_server_vbox_win32.pl
modules/compiler_vm/compiler_server_watchdog.pl
modules/compiler_vm/compiler_vm_client.pl
modules/compiler_vm/compiler_vm_server.pl
modules/compiler_vm/compiler_watchdog.pl
modules/compiler_vm/languages/_c_base.pm
modules/compiler_vm/languages/_default.pm
modules/compiler_vm/languages/bash.pm
modules/compiler_vm/languages/bc.pm
modules/compiler_vm/languages/bf.pm
modules/compiler_vm/languages/c11.pm
modules/compiler_vm/languages/c89.pm
modules/compiler_vm/languages/c99.pm
modules/compiler_vm/languages/clang.pm
modules/compiler_vm/languages/clang11.pm
modules/compiler_vm/languages/clang89.pm
modules/compiler_vm/languages/clang99.pm
modules/compiler_vm/languages/clangpp.pm
modules/compiler_vm/languages/clisp.pm
modules/compiler_vm/languages/cpp.pm
modules/compiler_vm/languages/freebasic.pm
modules/compiler_vm/languages/go.pm
modules/compiler_vm/languages/haskell.pm
modules/compiler_vm/languages/java.pm
modules/compiler_vm/languages/javascript.pm
modules/compiler_vm/languages/ksh.pm
modules/compiler_vm/languages/lua.pm
modules/compiler_vm/languages/perl.pm
modules/compiler_vm/languages/python.pm
modules/compiler_vm/languages/python3.pm
modules/compiler_vm/languages/qbasic.pm
modules/compiler_vm/languages/scheme.pm
modules/compiler_vm/languages/server/_c_base.pm
modules/compiler_vm/languages/server/_default.pm
modules/compiler_vm/languages/server/c11.pm
modules/compiler_vm/languages/server/c89.pm
modules/compiler_vm/languages/server/c99.pm
modules/compiler_vm/languages/server/clang.pm
modules/compiler_vm/languages/server/clang11.pm
modules/compiler_vm/languages/server/clang89.pm
modules/compiler_vm/languages/server/clang99.pm
modules/compiler_vm/languages/server/cpp.pm
modules/compiler_vm/languages/server/freebasic.pm
modules/compiler_vm/languages/server/haskell.pm
modules/compiler_vm/languages/server/java.pm
modules/compiler_vm/languages/server/qbasic.pm
modules/compiler_vm/languages/server/tendra.pm
modules/compiler_vm/languages/sh.pm
modules/compiler_vm/languages/tendra.pm
modules/compliment
modules/cstd.pl
modules/define.pl
modules/dice_roll.pl
modules/excuse.sh
modules/expand_macros.pl
modules/fnord.pl
modules/funnyish_quote.pl
modules/g.pl
modules/gdefine.pl
modules/gen_cfacts.pl
modules/gencstd.pl
modules/get_title.pl
modules/getcfact.pl
modules/google.pl
modules/gspy.pl
modules/gtop10.pl
modules/gtop15.pl
modules/headlines.pl
modules/horoscope
modules/horrorscope
modules/ideone.pl
modules/insult.pl
modules/love_quote.pl
modules/man.pl
modules/map.pl
modules/math.pl
modules/prototype.pl
modules/qalc.pl
modules/random_quote.pl
modules/seen.pl
modules/urban
modules/weather.pl
modules/wikipedia.pl
pbot.pl
pbot.sh

It is highly recommended that this list of files is reviewed to ensure
that all files are the copyright of the sole maintainer of the
repository. If any files with license headers contain the intellectual
property of anyone else, it is recommended that a request is made to
revise this patch or that the explicit permission of the co-author is
gained to allow for the license of the work to be changed.

I (Tomasz Kramkowski), the contributor, take no responsibility for any
legal action taken against the maintainer of this repository for
incorrectly claiming copyright to any work not owned by the maintainer
of this repository.
2017-03-06 00:31:15 +00:00
Pragmatic Software
0e4f2d1447 Minor effective-level /kick derp 2016-11-16 19:14:00 -08:00
Pragmatic Software
f3b3e90cdc Add factoid effective-level metadata and ability to kick from such factoids
Factoids can now have an effective-level metadata field. When set, certain
functionality requiring an effective-level will be enabled.

For now, that is currently only the /kick command, which has an effective-level
of 10.

Factoids with an effective-level set will also have the locked metadata
attribute set as well to prevent people from changing the factoid.  The
locked and/or effective-level attributes will be removable only by admins
whose level is equal to or greater than the effective-level.
2016-11-16 19:07:01 -08:00