Commit Graph

206 Commits

Author SHA1 Message Date
Pragmatic Software 75a31458b0 FactoidCommands: factlog/factundo/factredo now work with keywords containing spaces 2019-06-09 21:50:40 -07:00
Pragmatic Software 982d4b4b8d Factoids: find_factoid now takes an options hash instead 2019-06-09 16:33:27 -07:00
Pragmatic Software 8480d3ce61 FactoidCommands: factchange closing delimiter now optional 2019-06-09 15:36:48 -07:00
Pragmatic Software 22f899612b FactoidCommands: factchange is now aware of quoted keywords; factchange and factshow now preserve spaces in output 2019-06-09 13:57:52 -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 f00cabe4ec Factoids: correct edge-case mishandling of quoted arguments 2019-06-08 17:52:25 -07:00
Pragmatic Software 7523fbcede FactoidCommands: fix an issue where factchange could sometimes fail 2019-06-08 16:00:11 -07:00
Pragmatic Software 563f8da40f Factoids: usage metadata now understands $0 for keyword 2019-06-03 08:01:52 -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 47c05cfdac FactoidCommands: factundo/factlog can now express deleted metadata keys 2019-06-02 16:21:42 -07:00
Pragmatic Software 925a5e57bd Minor whitespace syntax clean-up throughout 2019-05-28 09:19:42 -07:00
Pragmatic Software 6f282d2968 factset: respect `locked` metadata 2019-05-27 19:40:24 -07:00
Pragmatic Software 786d1f75b1 Factoids: effective-level override now actually does something; add locked_to_channel metadata 2019-05-13 00:07:08 -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 62387c48ef `findfactoid` now accepts a -regex flag to do a regex search instead of whole-word 2019-05-08 20:48:26 -07:00
Pragmatic Software 4ce8e8b316 Increase minimum factoid name length to 60 2019-05-08 20:09:34 -07:00
Pragmatic Software 02c8cfd83b FactoidCommands: allow non-admins to inspect factset values on factoids they do not own, and to be able to factset `admin` on any factoids instead of using factchange 2019-05-08 13:06:30 -07:00
Pragmatic Software 8af3682dc3 Add quotes around keywords with spaces in output messages 2018-08-08 17:58:53 -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 6c31f3e1b7 Minor correction 2018-07-31 17:23:15 -07:00
Pragmatic Software 81dcc3bee1 Add strictnamespace registry key 2018-05-12 02:52:52 -07:00
Pragmatic Software cc11bb4526 factchange: limit repetitions for /g modifier 2018-02-19 13:45:24 -08:00
Pragmatic Software 1ee7769cdb Add revision option to -l for factundo/redo to start listing from there 2017-12-12 15:32:50 -08:00
Pragmatic Software 3d2c6879f9 `factundo` and `factredo` can now list and jump to revisions 2017-12-12 03:38:45 -08:00
Pragmatic Software dfacf2c807 `factalias` channel argument now optional 2017-12-11 15:24:37 -08:00
Pragmatic Software 64ff8e9cf9 factundo and factredo now use exact channel 2017-12-11 14:34:55 -08:00
Pragmatic Software 4b10c69f47 Fix `factlog` to use exact channel if specified 2017-12-11 14:24:29 -08:00
Pragmatic Software 63cfd038d0 Prevent creation of factoids with same name as existing built-in commands 2017-12-02 15:05:56 -08:00
Pragmatic Software c199fa205d Fix `fact` command 2017-11-30 16:41:50 -08:00
Pragmatic Software 6f5fb2824b Honor `nooverride` in factmove and factalias 2017-11-29 15:55:53 -08:00
Pragmatic Software cea2fc66f9 Fix `fact` command to use $stuff; increase factoid keyword length to 30 2017-11-23 14:11:54 -08:00
Pragmatic Software 767c0e7532 `factmove` no longer can create factoid keywords with spaces 2017-11-20 16:11:18 -08:00
Pragmatic Software efb53e397f `count` now does whole-word matching 2017-11-17 21:36:41 -08:00
Pragmatic Software d644ac04d5 Limit factoid keywords to 30 characters 2017-11-13 12:00:34 -08:00
Pragmatic Software 9710ad2b28 Remove capture from factchange 2017-10-04 17:56:34 -07:00
Pragmatic Software 652cad7ddf Fix factundo on deleted factoids 2017-10-04 17:56:16 -07:00
Pragmatic Software e1db291c35 Fix captures in `factchange` regex 2017-09-29 12:40:40 -07:00
Pragmatic Software 688cafde3c `factchange` now understands modifiers like /g and /i, etc 2017-09-29 12:07:50 -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 278fffdad6 Use re2 for regfind and factfind 2017-09-09 22:37:11 -07:00
Pragmatic Software 9a082ede38 Restrict factsetting `action` to admins 2017-09-05 17:20:23 -07:00
Pragmatic Software fd8a43c9cd factundo/factredo now respect locked metadata 2017-09-05 02:18:02 -07:00
Pragmatic Software d6a845f988 Do some basic string validation for factoids and such 2017-09-05 00:27:28 -07:00
Pragmatic Software a805fe26e4 Use SafeFilename in factlog and factundo/redo 2017-09-04 19:07:10 -07:00
Pragmatic Software a2cd25facd factundo and factlog now handle deleted factoids 2017-09-02 01:05:11 -07:00
Pragmatic Software 1b70de807b Change split / / to split /\s+/ throughout 2017-09-02 00:39:29 -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 0272a457d3 Read-only fact* commands no longer require explicit channel confirmation 2017-08-30 22:54:38 -07:00
Pragmatic Software 9c3097b8f9 Remove unused legacy `list messages` functionality 2017-08-30 22:23:35 -07:00
Pragmatic Software 08b28cf6c2 No longer discard "0" valued arguments from find_factoid_with_optional_args 2017-08-30 17:51:42 -07:00
Pragmatic Software bbb52f99e9 Do not move factlog between channels any longer 2017-08-30 16:07:33 -07:00
Pragmatic Software 8dc7d6554c Correct minor typo 2017-08-30 06:55:57 -07:00
Pragmatic Software 3b93d6c281 Escape single-quotes before using GetOptionsFromString and shellwords 2017-08-30 02:12:05 -07:00
Pragmatic Software 9fbafec4fd factundo/factredo now show modifications 2017-08-28 23:14:32 -07:00
Pragmatic Software 80bceb2c75 Make fact log of factset more concise 2017-08-27 19:02:48 -07:00
Pragmatic Software ca827a1499 Show factlog output sorted from newest to oldest 2017-08-27 19:00:31 -07:00
Pragmatic Software 90cdc8db7a Correct handling of optional channel argument 2017-08-27 18:52:14 -07:00
Pragmatic Software 73bc7cebe4 Update factset usage to reflect optional channel 2017-08-27 02:44:35 -07:00
Pragmatic Software cb37eb1ce7 Make channel intelligently optional for more fact* commands 2017-08-27 00:56:55 -07:00
Pragmatic Software e9971cf29d Factlog revision for factredo now consistent 2017-08-26 21:40:27 -07:00
Pragmatic Software 03b2b8d7b9 Remove left over debug messages 2017-08-26 21:37:31 -07:00
Pragmatic Software a723bc3f65 Completely botched undo/redo for global factoids -- fixed now 2017-08-26 21:35:46 -07:00
Pragmatic Software 57af14413e Add ability to undo/redo factoid revisions 2017-08-26 07:03:01 -07:00
Pragmatic Software 556821805f Do not allow empty or too long factoids with `factchange` 2017-08-24 15:18:41 -07:00
Pragmatic Software 872d31528a Add code-factoids! 2017-08-23 19:25:43 -07:00
Pragmatic Software 6f9d9aba07 Improve `factmove` detection of channel 2017-08-23 19:18:14 -07:00
Pragmatic Software 97aae4bddc Prepend channel name to factshow output if belongs to different channel 2017-08-12 01:28:55 -07:00
Pragmatic Software 485ccf689c Fix factadd and factchange optional channel parameter behavior 2017-08-08 21:18:00 -07:00
Pragmatic Software 74fe574332 Make channel argument optional for factadd, factrem and factchange (other fact commands eventually...) 2017-08-01 21:33: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 85b8915494 Fixed some stuff 2017-01-29 18:01:26 -08:00
Pragmatic Software df8e15b39e Fix factlog for deleted factoids not in global channel 2016-11-17 15:57:48 -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
Pragmatic Software 2e0a5e411c Make "is" optional in `factadd` 2016-01-16 16:55:18 -08:00
Pragmatic Software c306ae4ce6 Minor text reformatting 2015-12-22 08:12:59 -08:00
Pragmatic Software 8b66bd82ec Improve factlog command
Now, by default, uses concise timestamp relative durations; e.g. "2d5h ago"
instead of "2 days and 5 hours ago".

Now, by default, shows only nick instead of full hostmask for each entry.

Now accepts optional arguments -t and -h to control the above behavior.

If -t is specified, then it shows a full timedate instead of a relative duration;
e.g., "Sun Dec 13 14:26:56 PST 2015" instead of "2d5h ago".

If -h is specified, then it shows the full hostmask for each entry instead of
just the nick.
2015-12-14 16:13:43 -08:00
Pragmatic Software 167d8c2143 Correct error handling for log_factoid() failure to open file 2015-12-14 14:30:44 -08:00
Pragmatic Software 3a25afdb01 Minor textual correct for factlog disambig text 2015-12-13 22:28:00 -08:00
Pragmatic Software 1540483639 Show factlog for currently deleted factoids if log file exists 2015-12-13 22:20:57 -08:00
Pragmatic Software eb5d90ec48 Fix minor bug creating empty factoid in factset without key argument 2015-12-13 22:08:17 -08:00
Pragmatic Software e6ac123fe1 Add factlog command to see factoid changelogs 2015-12-13 14:24:25 -08:00
Pragmatic Software e6e7f325fb Add individual change-logs for factoid triggers 2015-12-13 13:58:01 -08:00
Pragmatic Software a3df01bae3 Escape delim in `factchange` command to allow delimiters such as the pipe character 2015-09-30 09:50:37 -07:00
Pragmatic Software 04aaeb5475 Fix handling of no factoid found from find_factoid() 2015-09-19 00:27:15 -07:00
Pragmatic Software 97bbb298e4 Allow bot admins to factset factoids from /msg
Fix some channel/from discrepancies in factset, etc.
2015-09-03 20:43:16 -07:00
Pragmatic Software 3fa12c208e Improve handling of word-boundaries in searches 2015-08-16 05:20:57 -07:00
Pragmatic Software 35653cb996 Add word-boundaries around text searches 2015-08-05 12:28:15 -07:00
Pragmatic Software cc9f4926ee Make channel argument optional for factrem as well 2015-07-23 17:46:01 -07:00
Pragmatic Software ba87aef524 Improve factshow/factfind behavior
factshow's and factfind's channel argument is now optional.

The commands will now automatically determine the channel a factoid lives in
if it is the only factoid of that name.

If there are multiple factoids existing in different channels then the commands
will display a disambiguation message and require an explicit channel argument
to choose a specific channel's factoid.
2015-07-21 15:07:56 -07:00
Pragmatic Software 04f1672f19 Update some admin levels 2015-07-13 02:47:30 -07:00
Pragmatic Software e3eb698f27 Properly show/hide star for logged in admins in `list admins` 2015-07-09 23:24:39 -07:00
Pragmatic Software 62b8432be9 Factoid commands now check for admins in factoid's channel instead of channel command was used in 2015-06-05 22:26:02 -07:00
Pragmatic Software 715ff8ee78 Find factoids in proper channel namespace 2015-04-26 16:05:03 -07:00
Pragmatic Software 59c29977e6 Improve handling of factoids
Fix adding factoid to local channel when a factoid of same name already exists for global channel
Fix calling factoid from another channel with `fact` command
Do not prepend nick argument to aliases (/call factoids)
2015-04-10 14:59:17 -07:00
Pragmatic Software 060d3aee6a Fix wrong channel for `fact` command
The `fact` command was using $channel instead of $from, which
caused the result to be sent to the channel the factoid lives
in instead of the channel the command was invoked in.
2015-04-03 10:08:57 -07:00
Pragmatic Software cb9ead7624 Incorporate custom `workdir` field into URL for modules 2015-03-15 20:12:44 -07:00
Pragmatic Software 04f47ba3a1 Show "global" if namespace is ".*" 2015-02-15 20:17:36 -08:00
Pragmatic Software b289fd155e Add repo_module to registry to customize source URL in factinfo command 2014-12-29 23:15:46 -08:00
Pragmatic Software 4dbec8001e Fix regex factoids in global namespace not being triggered 2014-10-14 02:30:14 +00:00