Commit Graph

129 Commits

Author SHA1 Message Date
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
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 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
Pragmatic Software 170dac5776 Improve `!cmd` and `nick: !cmd` processing 2016-10-23 03:51:59 -07:00