Commit Graph

2972 Commits

Author SHA1 Message Date
Pragmatic Software 8d8848db3b Update version 2018-02-16 10:35:14 -08:00
Pragmatic Software 782a554fce Spinach: Eject players who have missed too many inputs 2018-02-16 10:35:08 -08:00
Pragmatic Software e171fe580c Update version 2018-02-15 09:21:47 -08:00
Pragmatic Software 5ed9c924a4 Spinach: Skipping now requires a majority 2018-02-15 09:21:41 -08:00
Pragmatic Software 0f2d8ab21b Update version 2018-02-14 22:18:03 -08:00
Pragmatic Software bed111dbc4 Spinach: clean up debug statements 2018-02-14 22:17:58 -08:00
Pragmatic Software c3049e7528 Update version 2018-02-14 22:13:58 -08:00
Pragmatic Software d5d34a0722 Spinach: Add ability to skip current question 2018-02-14 22:13:54 -08:00
Pragmatic Software 1d3bddf774 Update version 2018-02-14 19:10:02 -08:00
Pragmatic Software 9c416b8d70 Spinach: Add ability to edit questions 2018-02-14 19:09:57 -08:00
Pragmatic Software 8eea3be684 Update version 2018-02-12 09:04:39 -08:00
Pragmatic Software c84e8b18bf Spinach: Very minor textual improvements 2018-02-12 09:04:33 -08:00
Pragmatic Software e74f8dd25b Update version 2018-02-11 23:44:29 -08:00
Pragmatic Software 61b79f0b7c Update version 2018-02-11 23:37:42 -08:00
Pragmatic Software 5ebb84c18b Quality of life improvements
`lie`, `truth` and `choose` can now all be use interchangibly regardless
of game state. No more needing to switch between commands.

`players` and `score` can now both be used interchangibly and will do
the right thing depending on game state.

`ready` and `unready` are now more game-state aware.
2018-02-11 23:37:37 -08:00
Pragmatic Software e2f9810d91 Spinach: Improve normalization, and laxen validation 2018-02-11 20:44:14 -08:00
Pragmatic Software 16e4a0d1e4 Update version 2018-02-10 17:13:32 -08:00
Pragmatic Software 5828f595a4 Spinach: Add stop-word filter to validation 2018-02-10 17:13:26 -08:00
Joey Pabalinas aeb9130345 Add `unready` command to spinach for symmetry. (#23) 2018-02-10 15:57:58 -08:00
Pragmatic Software 8c18fdb2b9 Update version 2018-02-09 19:09:21 -08:00
Pragmatic Software 8248661ef0 Interpreter: Exempt some more keywords from me/my expansion; add "I am" -> "nick is" expansion 2018-02-09 19:09:11 -08:00
Pragmatic Software 4495e2c914 Update version 2018-02-09 12:47:13 -08:00
Pragmatic Software 0d847d7d4b Spinach: Improve text normalization 2018-02-09 12:47:06 -08:00
Pragmatic Software 024cd15752 Update version 2018-02-03 20:42:33 -08:00
Pragmatic Software 93d471c567 Spinach: normalize answers, anti-ambiguity, and more 2018-02-03 20:42:27 -08:00
Pragmatic Software c5e5b9768f ActionTrigger: Properly handle QUITs 2018-02-03 16:06:42 -08:00
Pragmatic Software 49866fd0d2 Spinach updates and bugfixes 2018-02-01 20:15:54 -08:00
Pragmatic Software df6629fb58 Update version 2018-01-31 22:17:04 -08:00
Pragmatic Software f603d831ab Update Spinach data path 2018-01-31 22:16:46 -08:00
Pragmatic Software 662b54a7d5 Update version 2018-01-31 22:12:40 -08:00
Pragmatic Software 774da2f033 Do not replace `me` or `my` in Spinach lies 2018-01-31 22:12:28 -08:00
Pragmatic Software 96b85fc791 More significant Spinach improvements 2018-01-31 22:11:26 -08:00
Pragmatic Software 4b9a249014 Spinach now detects when players leave the channel 2018-01-29 22:15:08 -08:00
Pragmatic Software 5caf0648d0 Update version 2018-01-29 21:54:59 -08:00
Pragmatic Software 998011ec55 Several significant improvements to Spinach 2018-01-29 21:54:52 -08:00
Pragmatic Software b475667b19 Update version 2018-01-29 20:44:08 -08:00
Pragmatic Software 0687495bfb Remove channel when last admin is removed 2018-01-29 20:44:02 -08:00
Pragmatic Software 9614933b0e Update version 2018-01-28 21:53:52 -08:00
Pragmatic Software 4f04309329 Fibbage-clone plugin! 2018-01-28 21:53:40 -08:00
Pragmatic Software c674122b17 Update version 2018-01-26 13:04:25 -08:00
Pragmatic Software 654d796d66 Update version 2018-01-26 00:42:06 -08:00
Pragmatic Software eb31c61515 Update version 2018-01-25 23:37:42 -08:00
Pragmatic Software 0193800c1e Remove leading spaces when replacing empty factoid variable 2018-01-25 23:37:40 -08:00
Pragmatic Software 25fd57087e Update version 2018-01-25 14:01:30 -08:00
Pragmatic Software 0340578f1f Update version 2018-01-23 23:27:27 -08:00
Pragmatic Software b3821f7b39 Update version 2018-01-23 13:58:41 -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 725808ebe3 Update version 2018-01-22 23:48:28 -08:00
Pragmatic Software f8960d79b5 Properly update version factoid on refresh 2018-01-22 23:48:25 -08:00
Pragmatic Software b7ec6b68dd Update version 2018-01-22 22:48:50 -08:00
Pragmatic Software 926369e35b Update version factoid when using `refresh` 2018-01-22 22:48:47 -08:00
Pragmatic Software 2a6f77288e Update version 2018-01-21 20:07:43 -08:00
Pragmatic Software 951c1280ab Factoids: Do not increment depth for skipped expansions 2018-01-21 20:07:33 -08:00
Pragmatic Software 48acc76f2a Update version 2018-01-20 08:56:49 -08:00
Pragmatic Software 6c0cbb6ff2 Restrict /msg to level 60+ admins 2018-01-20 08:56:45 -08:00
Pragmatic Software 6a18d8eb4d Update version 2018-01-20 07:00:19 -08:00
Pragmatic Software 3d04106f4b Update version 2018-01-19 19:40:58 -08:00
Pragmatic Software 599d6b75c6 Update version 2018-01-19 18:14:17 -08:00
Pragmatic Software 428be984a2 Update version 2018-01-19 10:46:19 -08:00
Pragmatic Software 4311d6662d Factoids: Preserve case of indefinite article in expansions 2018-01-19 10:46:15 -08:00
Pragmatic Software 2b0deffc1c Update version 2018-01-17 17:20:38 -08:00
Pragmatic Software b4df71cd71 AntiNickSpam: Remove severity due to "false-positive" common-word nicks 2018-01-17 17:20:34 -08:00
Pragmatic Software c9f5696447 Update version 2018-01-06 20:45:51 -08:00
Pragmatic Software ac136ef086 Add support for global Action Triggers 2018-01-06 20:45:47 -08:00
Pragmatic Software a69188c666 Update version 2018-01-05 19:45:32 -08:00
Pragmatic Software d772e7a784 ActionTrigger: Remove negative level check since level can no longer be negative 2018-01-05 18:16:43 -08:00
Pragmatic Software 8c92ace849 Update version 2018-01-05 18:06:30 -08:00
Pragmatic Software 435d76e9cb ActionTrigger: Properly, this time 2018-01-05 18:06:26 -08:00
Pragmatic Software 21c6544656 Update version 2018-01-05 18:02:18 -08:00
Pragmatic Software c5567fc529 ActionTrigger: Ensure level argument passed by users 2018-01-05 18:02:14 -08:00
Pragmatic Software 22b90e90f7 Update version 2018-01-05 17:57:12 -08:00
Pragmatic Software 6cb2d77e7b AntiNickSpam: Increase severity for each additional unique nick per message 2018-01-05 17:57:04 -08:00
Pragmatic Software d64c806741 Update version 2018-01-01 08:52:22 -08:00
Pragmatic Software 26180b2ebb Add arin.ga to WebPastes 2018-01-01 08:52:16 -08:00
Pragmatic Software e78d64b623 Update version 2017-12-30 17:27:53 -08:00
Pragmatic Software c1d4a88faa Add AntiNickSpam plugin 2017-12-30 17:27:48 -08:00
Pragmatic Software 7bacdf6291 AntiRepeat now properly skips messages that are too short 2017-12-30 17:11:45 -08:00
Pragmatic Software a1d9200032 Update version 2017-12-27 19:07:42 -08:00
Pragmatic Software 0972cd53e0 Fix some stuff in ActionTrigger 2017-12-27 19:07:35 -08:00
Pragmatic Software 2122f9d92a Update version 2017-12-18 03:51:12 -08:00
Pragmatic Software 8441869fac Fix embedded command extraction 2017-12-18 03:51:09 -08:00
Pragmatic Software 8f0ae852bd Update version 2017-12-15 16:23:39 -08:00
Pragmatic Software c42f03ed27 AntiRepeat: allow really short messages since "yep" "ok" etc are so common 2017-12-15 16:23:36 -08:00
Pragmatic Software 317fe72230 ActionTrigger: Add missing [channel] usage 2017-12-12 15:33:44 -08:00
Pragmatic Software 9240fe5ab0 Update version 2017-12-12 15:32:53 -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 4bc79711c4 Update version 2017-12-12 03:38:47 -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 b9f435c823 Update version 2017-12-11 15:24:40 -08:00
Pragmatic Software dfacf2c807 `factalias` channel argument now optional 2017-12-11 15:24:37 -08:00
Pragmatic Software f78c40cf91 Update version 2017-12-11 14:34:58 -08:00
Pragmatic Software 64ff8e9cf9 factundo and factredo now use exact channel 2017-12-11 14:34:55 -08:00
Pragmatic Software 1979c3f631 Update version 2017-12-11 14:24:32 -08:00
Pragmatic Software 4b10c69f47 Fix `factlog` to use exact channel if specified 2017-12-11 14:24:29 -08:00
Pragmatic Software d473ab7fe7 Update version 2017-12-11 12:47:29 -08:00
Pragmatic Software b290bd30b8 ActionTrigger: Use command effective-level override 2017-12-11 12:47:21 -08:00
Pragmatic Software 8fb98d614f Add ability to override command effective-level 2017-12-11 12:44:19 -08:00
Pragmatic Software 24e9d2ae40 Update version 2017-12-10 18:36:20 -08:00
Pragmatic Software 3c509b5306 Fix ratelimit override to use correct channel 2017-12-10 18:36:16 -08:00
Pragmatic Software 88147da892 Update version 2017-12-10 13:18:05 -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 e0b03ee3d4 Update version 2017-12-09 13:26:22 -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 14386cdff1 Update version 2017-12-08 20:26:11 -08:00
Pragmatic Software b2273d32fb Extract nested command substitutions and pipes 2017-12-08 20:26:08 -08:00
Pragmatic Software 35aeb6985f Update version 2017-12-08 19:28:11 -08:00
Pragmatic Software 4338455e11 Properly extract embedded commands 2017-12-08 19:28:08 -08:00
Pragmatic Software 8267f3cfe5 Update version 2017-12-07 11:13:55 -08:00
Pragmatic Software 6565e3d056 Update version 2017-12-05 21:19:24 -08:00
Pragmatic Software 6b4943e3a9 WebPaste: Remove a couple of left-over debug messages 2017-12-05 21:19:20 -08:00
Pragmatic Software 0bed26a479 Update version 2017-12-05 21:05:47 -08:00
Pragmatic Software e2db94c354 Add WebPaste.pm for rotating paste sites 2017-12-05 21:05:44 -08:00
Pragmatic Software ebb412298f Update version 2017-12-04 21:38:04 -08:00
Pragmatic Software b089aa74bd Er, don't add /say to result if no result 2017-12-04 21:37:58 -08:00
Pragmatic Software fbe467a472 Update version 2017-12-04 21:22:45 -08:00
Pragmatic Software 34e98aef98 Update version 2017-12-04 21:22:22 -08:00
Pragmatic Software 1378e41c1b Improve handling of /say, etc, in output text 2017-12-04 21:22:19 -08:00
Pragmatic Software 45421aaf30 Update version 2017-12-04 20:12:29 -08:00
Pragmatic Software 0d0c12e798 Unescape escaped command substitutions 2017-12-04 20:12:27 -08:00
Pragmatic Software d902edd122 Update version 2017-12-04 18:34:37 -08:00
Pragmatic Software 43d227d1a9 Support command substitution 2017-12-04 18:34:34 -08:00
Pragmatic Software 8b2f64bf84 Update version 2017-12-03 19:09:37 -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 0468716581 Update version 2017-12-03 10:10:56 -08:00
Joey Pabalinas a8a82b2f23 Prettify `grab` output similiar to `recall` (#14) 2017-12-03 10:12:05 -08:00
Pragmatic Software 6d4ea57d3b Update version 2017-12-03 10:04:09 -08:00
Pragmatic Software 103780cf0b find_admin: Fix anchored hostmask regex for global channel 2017-12-03 10:04:03 -08:00
Pragmatic Software 52d3ab024b validate_string: Remove unnecessary substr left over from special character scrubbing 2017-12-03 10:02:13 -08:00
Pragmatic Software 42376baf72 Update version 2017-12-02 15:05:59 -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 8ac79a4cb2 Move lc out of loop (does Perl already optimize for this?) 2017-12-02 15:05:30 -08:00
Pragmatic Software 3ab8f44a8a No need to show debugcontext log for empty result 2017-12-02 15:04:36 -08:00
Pragmatic Software f870a724f3 Update version 2017-12-02 11:38:05 -08:00
Pragmatic Software e7b348573f Update version 2017-11-30 18:53:42 -08:00
Pragmatic Software 836a20262f Use correct command for factoid aliases 2017-11-30 18:53:40 -08:00
Pragmatic Software 7a53f74e83 Handle commands/pipes with newlines 2017-11-30 18:50:17 -08:00
Pragmatic Software 7b142c68f5 Fix some UTF8 <=> JSON encoding issues? 2017-11-30 18:46:14 -08:00
Pragmatic Software 8d560ef988 Update version 2017-11-30 16:41:53 -08:00
Pragmatic Software c199fa205d Fix `fact` command 2017-11-30 16:41:50 -08:00
Pragmatic Software fa563391dd Update version 2017-11-30 13:11:42 -08:00
Pragmatic Software 51735494b3 Minor improvement to nick addressing 2017-11-30 13:11:39 -08:00
Pragmatic Software 320c8a4f92 Update version 2017-11-29 15:56:00 -08:00
Pragmatic Software 6f5fb2824b Honor `nooverride` in factmove and factalias 2017-11-29 15:55:53 -08:00
Pragmatic Software 5c36759fd3 Update version 2017-11-28 19:10:25 -08:00
Pragmatic Software 6ddfce4cc3 Remove code duplication 2017-11-28 19:10:22 -08:00
Pragmatic Software 2a012594e7 Update version 2017-11-28 19:07:08 -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 f3a036bc81 Do not expand underscore-prefixed factoid varianbles 2017-11-28 18:30:09 -08:00
Pragmatic Software 35864b96a3 Update version 2017-11-27 20:10:20 -08:00
Pragmatic Software 179abf635f Update version 2017-11-27 19:18:06 -08:00
Pragmatic Software 1b13f00503 Fix utf8 encoding issue with code-factoids? 2017-11-27 19:18:00 -08:00
Pragmatic Software 356efe0a8a Fix some warnings 2017-11-27 19:17:28 -08:00
Pragmatic Software 6ac5c344fa Update version 2017-11-27 02:14:41 -08:00
Pragmatic Software 3b36634fa9 Fix factoid case duplication; enable me/my for pipes 2017-11-27 02:14:34 -08:00
Pragmatic Software 5f1dd143d2 Update version 2017-11-26 12:41:16 -08:00
Pragmatic Software a40a7a5a82 Support KICK in ActionTrigger 2017-11-26 12:41:07 -08:00
Pragmatic Software 9db596fb5c Update version 2017-11-25 20:03: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 98d10b6ccd Update version 2017-11-23 15:19:41 -08:00
Pragmatic Software a1aca0e150 Quote grabs export: Escape HTML entities for channel 2017-11-23 15:19:28 -08:00
Pragmatic Software 52d3cadef7 Improve factoid variable expansion 2017-11-23 14:12:43 -08:00
Pragmatic Software a7f298520d Temporarily fix /msg, sort of 2017-11-23 14:12:23 -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 89d3596dac Update version 2017-11-22 15:25:26 -08:00
Pragmatic Software 834cfaa11d Fix `adminset` not working on hostmasks with anchors 2017-11-22 15:25:14 -08:00
Pragmatic Software a1217190c7 Update version 2017-11-20 16:12:41 -08:00
Pragmatic Software ba970cbc18 Fix factoid channel reference tag duplication 2017-11-20 16:12:13 -08:00
Pragmatic Software 767c0e7532 `factmove` no longer can create factoid keywords with spaces 2017-11-20 16:11:18 -08:00
Pragmatic Software 51b1b25b16 Add `debugcontext` registry item for $stuff dumps 2017-11-20 16:10:48 -08:00
Pragmatic Software 5d85573c6e Update version 2017-11-19 14:39:06 -08:00
Pragmatic Software fc6e0759d3 Fix dead argument in pipe 2017-11-19 14:39:03 -08:00
Pragmatic Software 4d99f1655c Fix unencoded entity in factoids HTML export 2017-11-19 14:37:02 -08:00
Pragmatic Software 1557bbc219 Fix UrlTitles properly 2017-11-19 14:06:17 -08:00
Pragmatic Software b84183e30c Update version 2017-11-19 13:39:03 -08:00
Pragmatic Software edfc01686c Fix UrlTitles to use $stuff 2017-11-19 13:38:55 -08:00
Pragmatic Software 0b9aaf8f79 Update version 2017-11-17 21:38:36 -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 efb53e397f `count` now does whole-word matching 2017-11-17 21:36:41 -08:00
Pragmatic Software a0d3b3271b Update version 2017-11-17 13:55:59 -08:00
Pragmatic Software 33dd854086 Update version 2017-11-17 13:53:30 -08:00
Pragmatic Software 656adae53c Improvements to piping and stuff 2017-11-17 13:53:23 -08:00
Pragmatic Software 73e61b72a7 Update version 2017-11-16 09:24:04 -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 b12cf1d799 Update version 2017-11-14 15:30:16 -08:00
Pragmatic Software ae1e30051d Allow UTF in output again 2017-11-14 15:30:05 -08:00
Pragmatic Software 749377106b Update version 2017-11-14 15:27:38 -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 bfec3ff9e8 Update version 2017-11-13 12:00:55 -08:00
Pragmatic Software d644ac04d5 Limit factoid keywords to 30 characters 2017-11-13 12:00:34 -08:00
Pragmatic Software f71dcfcf0e Limit max comma-separated kicks to 5 2017-11-13 08:42:56 -08:00
Pragmatic Software 541b8a31eb Update version 2017-11-12 08:04:49 -08:00
Pragmatic Software 69c081fd9a Limit maximum number of factoid variable expansions 2017-11-12 08:04:42 -08:00
Pragmatic Software 9acb38d790 Update version 2017-11-11 18:39:04 -08:00
Joey Pabalinas 353fd96022 Prettify recall messages for JOIN/QUIT/KICK/NICKCHANGE/etc (#12) 2017-11-11 18:37:54 -08:00
Pragmatic Software 94169b89a2 Update version 2017-11-11 12:59:34 -08:00
Pragmatic Software 8997534ce6 Can now kick comma-separated nicks 2017-11-11 12:59:27 -08:00
Pragmatic Software 7b4d9cc4cc Update version 2017-11-10 20:30:11 -08:00
Krokodile Glue 250337927b Modify the syntax of the kick command (#10)
* Modify the syntax of the kick command

* Modify the syntax of the kick command

* Beautify helpful comment
2017-11-09 19:26:05 -08:00
Pragmatic Software efe5d838f7 Update version 2017-11-08 11:17:14 -08:00
Pragmatic Software a119ed815f AutoRejoin delay can now be overriden per-channel 2017-11-08 11:17:07 -08:00
Pragmatic Software 5c954dc43c Correct "counter" to "action" in minor text message 2017-11-08 11:16:46 -08:00
Pragmatic Software 39c9efd7d1 Add unban-queue option to `unban` usage message 2017-11-08 11:15:36 -08:00
Pragmatic Software 7e9c116712 `unban` command can now take comma-separated list of targets; can also opt to use unban queue or not 2017-11-08 11:11:43 -08:00
Pragmatic Software 34fee863e0 Update version 2017-11-03 12:28:44 -07:00
Pragmatic Software 1172d7b262 Ensure admins actually have rights in $channel to use $command 2017-11-03 12:28:41 -07:00
Pragmatic Software 9e24f43ff7 `login` command now accepts optional channel argument 2017-11-03 12:27:59 -07:00
Pragmatic Software c1f57d5839 Update version 2017-11-03 11:58:20 -07:00
Pragmatic Software 2b1230a894 Update version 2017-10-17 22:05:10 -07:00
Pragmatic Software 62891fea01 Allow things like user@host in AntiTwitter 2017-10-17 22:05:00 -07:00
Pragmatic Software ae157908ce Update version 2017-10-15 10:56:56 -07:00
Pragmatic Software 62d05f398f Restrict admin level setting to appropriate admins 2017-10-15 10:56:51 -07:00
Pragmatic Software 9219f02654 Update version 2017-10-14 21:44:48 -07:00
Pragmatic Software 456e239afe Update version 2017-10-13 20:54:14 -07:00
Pragmatic Software 665457ff3e Update version 2017-10-10 20:31:48 -07:00
Pragmatic Software 26b6f90c7c Update version 2017-10-10 18:53:14 -07:00
Pragmatic Software a451b0f767 Clean up previous commit 2017-10-10 18:53:11 -07:00
Pragmatic Software 12fcf7479e Update version 2017-10-10 17:19:34 -07:00
Pragmatic Software cffcd04895 Handle module results in parent instead of child 2017-10-10 17:19:02 -07:00
Pragmatic Software fda67f3739 Add buffering to StdinReader 2017-10-10 14:31:31 -07:00
Pragmatic Software 3464df6901 Update version 2017-10-09 19:41:06 -07:00
Pragmatic Software 0a5f64d818 Log when reminders fire off 2017-10-09 19:41:00 -07:00
Pragmatic Software 240b4a6df0 Fix scalar keys thing 2017-10-09 19:40:32 -07:00
Pragmatic Software 7e76740f5b Move special var expansion to expand_special_vars 2017-10-09 19:39:54 -07:00
Pragmatic Software c119043d2a Update version 2017-10-09 19:35:18 -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 95b16daae8 Update version 2017-10-05 19:37:08 -07:00
Pragmatic Software 0fcbaaad4b Update version 2017-10-05 14:32:04 -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 b46dfe31fc Update version 2017-10-04 17:56:43 -07: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 0ab6a46008 Update version 2017-10-04 11:32:29 -07:00
Pragmatic Software e1db291c35 Fix captures in `factchange` regex 2017-09-29 12:40:40 -07:00
Pragmatic Software 492ee7b6a4 Update version 2017-09-29 12:07:59 -07:00
Pragmatic Software 688cafde3c `factchange` now understands modifiers like /g and /i, etc 2017-09-29 12:07:50 -07:00
Pragmatic Software d0c2395d25 Update version 2017-09-27 22:44:53 -07:00
Pragmatic Software 9af866a65a Update version 2017-09-23 21:04:33 -07:00
Pragmatic Software ab7aa990a0 Add :json modifier to escape variables for JSON 2017-09-23 21:04:21 -07:00
Pragmatic Software 346dcd3320 Uh, fix weird typo 2017-09-21 11:52:45 -07:00
Pragmatic Software 339e677732 Update version 2017-09-18 21:36:48 -07:00
Pragmatic Software 807bfbf235 Persist-key now works on VM-based code-factoids 2017-09-18 21:36:40 -07:00
Pragmatic Software 5062dc0be9 Remove annoying /msg about kicking 2017-09-18 21:24:30 -07:00
Pragmatic Software 4c5aa39c1b Update version 2017-09-15 16:41:50 -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 1ec94d6956 Update version 2017-09-14 19:37:46 -07:00
Pragmatic Software cf960261aa Update version 2017-09-12 05:53:57 -07:00
Pragmatic Software eaad5b1c65 Update version 2017-09-12 05:50:55 -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 a03c1c1d0d Update version 2017-09-10 19:53:33 -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 58f21b3bf7 Add newlines to ActionTrigger list 2017-09-09 22:32:14 -07:00
Pragmatic Software f15423774b Update version 2017-09-09 18:23:13 -07:00
Pragmatic Software 7792fd9bb0 Update version 2017-09-05 17:22:57 -07:00
Pragmatic Software 8f9875cf18 Correct $tonick/$nick behavior in factiod interpolation 2017-09-05 17:22:47 -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 3fa44a1a19 Update version 2017-09-05 00:48:17 -07:00
Pragmatic Software d6a845f988 Do some basic string validation for factoids and such 2017-09-05 00:27:28 -07:00
Pragmatic Software 5262934e0d Improve Logger text escaping 2017-09-05 00:18:35 -07:00
Pragmatic Software c3938ed8bb Add ValidateString utilities 2017-09-05 00:18:03 -07:00
Pragmatic Software a805fe26e4 Use SafeFilename in factlog and factundo/redo 2017-09-04 19:07:10 -07:00
Pragmatic Software 5e6e5cb21d Add SafeFilename module 2017-09-04 19:06:31 -07:00
Pragmatic Software 47e295f8cd Add ParseDate plugin 2017-09-03 20:46:34 -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 a2cd25facd factundo and factlog now handle deleted factoids 2017-09-02 01:05:11 -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 5ee07e08d2 Replace control chars with escaped ordinals 2017-09-02 00:19:39 -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 5cd0f85e65 Strip control characters from log messages 2017-08-31 03:30:22 -07:00
Pragmatic Software 678d82676d Add `interpolate` factoid metadata to control interpolation 2017-08-31 03:10:20 -07:00
Pragmatic Software d20ea65155 Update version 2017-08-31 00:04:37 -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 0fd81482d7 Follow factoid aliases when checking for use_output_queue 2017-08-30 18:03:10 -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 b0b1d1affa Fix incorrect fact_find in interpreter 2017-08-30 06:54:23 -07:00
Pragmatic Software 3b93d6c281 Escape single-quotes before using GetOptionsFromString and shellwords 2017-08-30 02:12:05 -07:00
Pragmatic Software 3a4eb4e5f5 Update version 2017-08-28 23:16:13 -07:00
Pragmatic Software 3d7388b402 Correct expansion of $nick and $args and such 2017-08-28 23:15:57 -07:00
Pragmatic Software 9fbafec4fd factundo/factredo now show modifications 2017-08-28 23:14:32 -07:00
Pragmatic Software 9b1cdffa6b Prevent access to undefined db handle 2017-08-28 13:53:03 -07:00
Pragmatic Software d638370cdc Update version 2017-08-27 20:40:52 -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 07eef4b9a2 Update version 2017-08-27 19:52:39 -07:00
Pragmatic Software c5da50593a Expand $0 and /call in factoid variables 2017-08-27 19:52:36 -07:00
Pragmatic Software 65e15e93ee Update version 2017-08-27 19:02:50 -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 51c26d0655 Update version 2017-08-27 04:18:34 -07:00
Pragmatic Software 75c6375339 Refactor code-factoid execution a little bit 2017-08-27 04:18:31 -07:00
Pragmatic Software 73bc7cebe4 Update factset usage to reflect optional channel 2017-08-27 02:44:35 -07:00
Pragmatic Software 2e249b079a Update version 2017-08-27 00:56:57 -07:00
Pragmatic Software cb37eb1ce7 Make channel intelligently optional for more fact* commands 2017-08-27 00:56:55 -07:00
Pragmatic Software fb671ab4de Update version 2017-08-26 22:59:56 -07:00
Pragmatic Software 467a04252b Update version 2017-08-26 21:42:07 -07:00
Pragmatic Software 2cd007d6c4 Execute code-factoids in action_with_args 2017-08-26 21:42:01 -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 b50f9f95ce Update version 2017-08-26 07:04:10 -07:00
Pragmatic Software 57af14413e Add ability to undo/redo factoid revisions 2017-08-26 07:03:01 -07:00
Pragmatic Software c28c19811f Update version 2017-08-26 04:06:40 -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 428268a415 Update version 2017-08-26 03:46:01 -07:00
Pragmatic Software 770e678170 code-factiod symbol name exclusion now more robust 2017-08-26 03:45:58 -07:00
Pragmatic Software 3e2ffe7d61 Update version 2017-08-26 01:50:44 -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 c580fde95c Update version 2017-08-26 01:45:20 -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 d0f837ee94 Update version 2017-08-25 23:36:14 -07:00
Pragmatic Software 06d341b41f Automagically transpose a/an preceding factoid variable expansion 2017-08-25 23:36:11 -07:00
Pragmatic Software bedbe6e370 Update version 2017-08-25 15:32:35 -07:00
Pragmatic Software 8cae7a0847 Pre-expand factoid variables in code-factoids 2017-08-25 15:32:28 -07:00
Pragmatic Software fad64381a4 Update version 2017-08-24 15:19:18 -07:00
Pragmatic Software 7f2f32f3d0 Limit max action length from code-factoid result 2017-08-24 15:19:12 -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 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 b0a4407951 Update version 2017-08-23 19:51:53 -07:00
Pragmatic Software 51f740f50e Update version 2017-08-23 19:25:51 -07:00
Pragmatic Software 872d31528a Add code-factoids! 2017-08-23 19:25:43 -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 6f9d9aba07 Improve `factmove` detection of channel 2017-08-23 19:18:14 -07:00
Pragmatic Software 23c2c3d84e Single-quotes now behave as expected for parse_arguments() 2017-08-23 19:16:32 -07:00
Pragmatic Software 98a061b232 Fix $nick and $arg being overridden by factoids 2017-08-23 19:14:46 -07:00
Pragmatic Software e5f5aa2c15 Treat ping timeouts aggressively again 2017-08-23 00:22:40 -07:00
Pragmatic Software 6e0456940b Repeatedly expand factoid variables for sub-expansions 2017-08-23 00:21:46 -07:00
Pragmatic Software 51019a17ab Update version 2017-08-18 00:53:16 -07:00
Pragmatic Software 716db70664 Add `eval` command to evaluate arbitrary bot code (level 99+ admins only) 2017-08-18 00:53:12 -07:00
Pragmatic Software f9fbae2663 Anti-repeat now case-insensitive 2017-08-18 00:52:21 -07:00
Pragmatic Software 4d358fd86e ActionTriggers no longer case-insensitive (whoops) 2017-08-18 00:51:53 -07:00
Pragmatic Software 05c47bc675 Uppercase only type, not args, in ActionTrigger departure handler 2017-08-15 20:12:07 -07:00
Pragmatic Software dc69010cad Update version 2017-08-12 23:43:42 -07:00
Pragmatic Software c60f344bd1 Add ActionTrigger plugin 2017-08-12 23:43:36 -07:00
Pragmatic Software 63bbcb0941 Handle command queue results 2017-08-12 23:42:56 -07:00
Pragmatic Software 7b99c90429 Show repeats remaining in listing 2017-08-12 23:41:09 -07:00
Pragmatic Software 51f36df8ff Update version 2017-08-12 16:18:29 -07:00
Pragmatic Software 669733f353 Add repeatable reminders; misc sanity checks 2017-08-12 16:18:25 -07:00
Pragmatic Software 1f212c1886 Update version 2017-08-12 04:43:11 -07:00
Pragmatic Software 4cb7c30dd3 Delete reminders that have expired (remindee not around for 31 days) 2017-08-12 04:43:07 -07:00
Pragmatic Software d104005ee9 Update version 2017-08-12 04:06:37 -07:00
Pragmatic Software fa55b36d09 Remove left-over superflurous declaration 2017-08-12 04:06:33 -07:00
Pragmatic Software 4724057860 Update version 2017-08-12 04:03:41 -07:00
Pragmatic Software 0a1d529434 RemindMe now supports listing and deleting reminders; added some sanity checking 2017-08-12 04:03:37 -07:00
Pragmatic Software f1e2b139d9 Update version 2017-08-12 01:29:08 -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 f3d84931b1 Add ability to check if a nick is present in any channels 2017-08-12 01:28:23 -07:00
Pragmatic Software a904fbdccb Update version 2017-08-12 01:24:44 -07:00
Pragmatic Software 3e6e56d2e5 Extremely basic rudimentary RemindMe plugin (work-in-progress) 2017-08-12 01:24:26 -07:00
Pragmatic Software 3299944e9b Update version 2017-08-09 01:22:16 -07:00
Pragmatic Software dc7406ccb8 Fix a couple of keys on scalar 2017-08-09 01:22:13 -07:00
Pragmatic Software b24cd5b238 Update version 2017-08-08 21:18:50 -07:00
Pragmatic Software c8fa308113 Fix harmless undefined variable warning 2017-08-08 21:18:45 -07:00
Pragmatic Software c3067533b2 Enable getopt bundling for `recall` 2017-08-08 21:18:29 -07:00
Pragmatic Software 485ccf689c Fix factadd and factchange optional channel parameter behavior 2017-08-08 21:18:00 -07:00
Pragmatic Software 334b414f7d Whoops, extraneous "my" harmlessly overshadows a variable. Fixed. 2017-08-08 21:17:11 -07:00
Pragmatic Software 74e3a03d42 Update version 2017-08-05 21:38:49 -07:00
Pragmatic Software 1158e3e815 Add ability to reload various config/data files 2017-08-05 21:38:46 -07:00
Pragmatic Software 93a482490d Ensure `version` factoid is always created after load() 2017-08-05 20:25:26 -07:00
Pragmatic Software 16f34026da Add ability to clear DualIndexHashObject 2017-08-05 20:15:15 -07:00
Pragmatic Software e5bd377477 Add ability to clear HashObject; rename load/save 2017-08-05 20:14:49 -07:00
Pragmatic Software aa65839827 Don't use keys on scalar 2017-08-05 20:10:54 -07:00
Pragmatic Software 62de9fd223 Update version 2017-08-05 05:58:49 -07:00
Pragmatic Software 0e62ae65b0 Correct behavior for exceeding allowed unbanmes 2017-08-05 05:58:45 -07:00
Pragmatic Software 1d0ec55e60 Update version 2017-08-05 05:31:49 -07:00
Pragmatic Software 121b264cef `unbanme` now automatically finds all appropriate channel bans, no need to specify channel parameter 2017-08-05 05:31:46 -07:00
Pragmatic Software b66bac2359 Use concise duration for recall timestamp 2017-08-04 21:05:55 -07:00
Pragmatic Software 381b4bee4b Use Time::Duration for rate_limit message 2017-08-04 21:05:31 -07:00
Pragmatic Software 5ac5229bf3 Update version 2017-08-03 23:19:10 -07:00
Pragmatic Software 53c6177801 Restore `immediately` functionality to unban/unmute 2017-08-03 23:19:02 -07:00
Pragmatic Software 1dcbcef14a Update version 2017-08-03 16:15:57 -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 7aa9c4f182 Update version 2017-08-03 15:21:48 -07:00
Pragmatic Software 68821bb0f8 BlackList now respects channel for $a: and $r: 2017-08-03 15:21:46 -07:00
Pragmatic Software 9bd80687b1 Update version 2017-08-03 14:13:32 -07:00
Pragmatic Software 1d79e5f46d Oops, return SOMETHING from sl 2017-08-03 14:13:29 -07:00
Pragmatic Software ea991fc33b Update version 2017-08-03 13:41:09 -07:00
Pragmatic Software 3d49883104 Add magic command 2017-08-03 13:40:54 -07:00
Pragmatic Software 20eed129e2 Update version 2017-08-03 13:30:45 -07:00
Pragmatic Software 2746c14f7c Improved unban queue handling 2017-08-03 13:30:42 -07:00
Pragmatic Software 53ffb271b3 Commands no longer case-sensitive 2017-08-03 13:30:18 -07:00
Pragmatic Software 2236a00877 Remove "Sent." message from sl 2017-08-03 13:29:41 -07:00
Pragmatic Software a76713a612 Match channel exactly in blacklist 2017-08-03 13:29:20 -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 c9c39673d8 Update version 2017-08-01 21:37:21 -07:00
Pragmatic Software 4f628b4cd7 AntiTwitter nicks now case-insensitive... whoops! 2017-08-01 21:37:00 -07:00
Pragmatic Software 85d74f53b1 Message history improvements 2017-08-01 21:36:31 -07:00
Pragmatic Software b932fe73eb Move WHO stuff to IRCHandlers.pm 2017-08-01 21:35:56 -07:00
Pragmatic Software e723379c4d Improve the bot's understanding of "me" and "my" 2017-08-01 21:34:57 -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
Pragmatic Software 121de07ae2 Whoops, attempted to modify current $action in loop 2017-08-01 21:31:58 -07:00
Pragmatic Software 06eb50736d Update version 2017-06-19 18:21:53 -07:00
Pragmatic Software f3620ddd90 Normalize /session hostmasks 2017-06-19 18:21:47 -07:00
Pragmatic Software aadc829865 Update version 2017-06-19 00:37:38 -07:00
Pragmatic Software 9344c19003 Oops, add IF NOT EXISTS to index creation 2017-06-19 00:37:32 -07:00
Pragmatic Software ef6c44f17d Update version 2017-06-18 03:45:38 -07:00
Pragmatic Software cfba69b09f Minor correction of a log message 2017-06-18 03:45:35 -07:00
Pragmatic Software 6a64907bd2 Update version 2017-06-18 03:40:58 -07:00
Pragmatic Software fa854c087f Normalize x-random hostmasks with user field to not pollute message database
Significant optimizations to message database structure and queries
2017-06-18 03:40:51 -07:00
Pragmatic Software cc3154a2c6 Flag SQLite queries that take more than 100ms to complete, if SQL logging is enabled 2017-06-18 03:37:01 -07:00
Pragmatic Software c8d2f8e632 Update version 2017-06-11 23:33:42 -07:00
Pragmatic Software c2ed83b8a0 Optimize some message history SQL 2017-06-11 23:33:38 -07:00
Pragmatic Software caf254ab73 Update version 2017-06-07 19:31:14 -07:00
Pragmatic Software 8612b7c210 Update version 2017-05-23 17:05:31 -07:00
Pragmatic Software 29f6510ec2 Check for existing temp ban before temp-banning 2017-05-23 17:05:25 -07:00
Pragmatic Software 7357ba706e Update version 2017-05-21 02:23:21 -07:00
Pragmatic Software ac246dbdef Increase timer resolution from 10 seconds to 1 second 2017-05-21 02:23:15 -07:00
Pragmatic Software 2d85b14b2e Add ircd config mapping; automatically unban certain types of bans after 7 days 2017-05-21 02:20:44 -07:00
Pragmatic Software 35b1c13012 Make certain unban actions immediate instead of using unban queue 2017-05-21 02:18:44 -07:00
Pragmatic Software 414b11f787 Make unban queue more robust; allow immediate unban/unmute too 2017-05-21 02:18:00 -07:00
Pragmatic Software 3cd63f5161 Update version 2017-05-20 23:48:35 -07:00
Pragmatic Software 461f1a3066 Use unban queue to group multiple -b/-q into a single command, with a delay between multiple commands 2017-05-20 23:48:03 -07:00
Pragmatic Software a219f3d9a7 AntiTwitter: use more restrictive nick-similarity value 2017-05-20 23:45:30 -07:00
Pragmatic Software 373ebc03b3 Improve is_present_similiar to accept custom similarity values 2017-05-20 23:44:45 -07:00
Pragmatic Software f5be26a98c Use arg bundling for `aka` 2017-05-20 23:43:34 -07:00
Pragmatic Software f2f88d9caf Update version 2017-05-14 05:45:52 -07:00
Pragmatic Software 08ac91f11b Update version 2017-05-14 01:39:07 -07:00
Pragmatic Software 5bc65c9f67 Update version 2017-05-13 23:57:23 -07:00
Pragmatic Software 05f27d0c8f Update version 2017-05-13 23:43:05 -07:00
Pragmatic Software 69f2f5477a Update version 2017-04-10 19:57:39 -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
Pragmatic Software f65f6df116 Update version 2017-04-10 19:47:48 -07:00
Pragmatic Software d29dcc3765 Slightly improve `recall` 2017-04-10 19:35:14 -07:00
Pragmatic Software 15c17744ba Comment out some verbose log messages 2017-04-10 19:35:14 -07:00
Pragmatic Software 0697035284 Improve error message for ParseDate 2017-04-10 19:35:14 -07:00
Pragmatic Software be80680626 Improve twit detection 2017-04-10 19:35:14 -07:00
Pragmatic Software a21b27a11f $randomnick now limited to nicks who have spoken in last 2 hours 2017-04-10 19:35:14 -07:00
Pragmatic Software cf4478c1a4 Minor bug/typo fixes 2017-04-10 19:35:14 -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 210099f4e3 Update version 2017-03-03 11:42:43 -08:00
Pragmatic Software 0e24a3758f unban by nick will now go through all akas for matching bans 2017-03-03 11:42:39 -08:00
Pragmatic Software 608130395d Update version 2017-02-27 04:47:02 -08:00
Pragmatic Software 71fabfc0ea Update version 2017-02-22 12:09:11 -08:00
Pragmatic Software 75ca6d61a8 Make AntiTwitter more robust 2017-02-22 12:09:06 -08:00
Pragmatic Software 0685843e3f Update version 2017-02-22 04:18:29 -08:00
Pragmatic Software 9621c6ffbe AntiTwitter: Warn twice before tempban; add logging 2017-02-22 04:18:26 -08:00
Pragmatic Software 30eba50bdc Update version 2017-02-21 05:50:06 -08:00
Pragmatic Software 1e4e101386 Update version 2017-02-21 05:37:48 -08:00
Pragmatic Software 5efc55c306 Ignore interpreted messages in AntiTwitter 2017-02-21 05:37:43 -08:00
Pragmatic Software 6c1e15db80 Update version 2017-02-21 05:26:30 -08:00
Pragmatic Software aac788831a Only one punishment per message! 2017-02-21 05:26:26 -08:00
Pragmatic Software b1432a8112 Update version 2017-02-21 05:20:23 -08:00
Pragmatic Software ca4be630ea Add AntiTwitter plugin 2017-02-21 05:20:17 -08:00
Pragmatic Software 4591e8639b Update version 2017-02-20 18:08:44 -08:00
Pragmatic Software 282d97936f Update version 2017-01-29 18:01:33 -08:00
Pragmatic Software 85b8915494 Fixed some stuff 2017-01-29 18:01:26 -08:00
Pragmatic Software 63f1f973b0 Add missing return 0 to event handler 2016-12-16 19:22:42 -08:00
Pragmatic Software c78dbbb911 Check for value of key instead of existence in loggedin() 2016-12-16 19:20:57 -08:00
Pragmatic Software be2e568066 Update version 2016-12-13 15:42:56 -08:00
Pragmatic Software ca36ee00cd Ignore nicks that have not had activity in the last 1 hour when looking for similar nicks; add nicks to NickList when updating activity if they do not exist yet 2016-12-13 15:42:50 -08:00
Pragmatic Software 3c60a8452c Update version 2016-12-09 15:31:41 -08:00
Pragmatic Software 50c5c15fbd recall now skips nick-prefix and botnick-postfix messages 2016-12-09 15:31:36 -08:00
Pragmatic Software 534523287b Update version 2016-12-06 20:47:29 -08:00
Pragmatic Software 2cc4302c0b Update version 2016-12-04 22:00:55 -08:00
Pragmatic Software c2a2debf3e Nick-floods are now once again detected 2016-12-04 22:00:50 -08:00
Pragmatic Software 4d2a89987b Update version 2016-12-01 05:19:04 -08:00
Pragmatic Software ba7149f518 Add missing parentheses to recently added SQL statements 2016-12-01 05:18:56 -08:00
Pragmatic Software af02bc43d3 Update version 2016-12-01 05:05:10 -08:00
Pragmatic Software a4d23bc445 Er, use OR instead of AND... 2016-12-01 05:05:07 -08:00
Pragmatic Software 9eca3d5adc Update version 2016-12-01 04:57:28 -08:00
Pragmatic Software d47edc100b Improve robustness of message history tracking 2016-12-01 04:57:25 -08:00
Pragmatic Software a5260ef056 Update version 2016-11-30 20:57:28 -08:00
Pragmatic Software ff51114a4f Missed a couple of account/ancestor replacements for nick-changes 2016-11-30 20:57:26 -08:00
Pragmatic Software 961f54f261 Update version 2016-11-30 09:28:36 -08:00
Pragmatic Software 3091516cc6 Reduce scope of $ancestor to nick-changes only
Move message account debug log messages behind a debug toggle
2016-11-30 09:28:19 -08:00
Pragmatic Software 8ba4ffffe4 More robust coverage of aliases when managing message history accounts
When adding a new unknown hostmask to the message history accounts, we now
take significant advantage of the aliases table to find an existing account
id for the hostmask before assigning it a new account id.

Likewise, we now take significant advantage of the aliases table when looking
for a nick-change match.

Fix misc channel case-sensitivity issues, add missing last-seen hostmask
updates, reduce message account linking log verbosity level.
2016-11-29 01:50:49 -08:00
Pragmatic Software bbf45a3fab Fix potential channel name case-sensitivity issues; misc minor fixes 2016-11-29 01:44:31 -08:00
Pragmatic Software 3537b74877 Update last_seen hostmask field in WHO replies 2016-11-29 01:43:11 -08:00
Pragmatic Software 5012886d71 Update version 2016-11-28 12:15:32 -08:00
Pragmatic Software ecd5feced1 AntiKickAutoRejoin: Fix channel case-sensitivity discrepancy and ignore roulette kicks (*BANG!*) 2016-11-28 12:15:26 -08:00
Pragmatic Software 31cb645f30 Update version 2016-11-17 18:34:15 -08:00
Pragmatic Software a5bb523f96 Make secret stuff more secret 2016-11-17 18:34:11 -08:00
Pragmatic Software e37b48822b Update version 2016-11-17 15:57:53 -08:00
Pragmatic Software df8e15b39e Fix factlog for deleted factoids not in global channel 2016-11-17 15:57:48 -08:00
Pragmatic Software 107b4e9883 Update version 2016-11-16 19:15:50 -08:00
Pragmatic Software 3fbefa6746 Put some alias linking messages behind a debug toggle 2016-11-16 19:15:45 -08:00
Pragmatic Software 5d3298462a Add error messages to a couple of commands 2016-11-16 19:14:39 -08:00
Pragmatic Software 0e4f2d1447 Minor effective-level /kick derp 2016-11-16 19:14:00 -08:00
Pragmatic Software fdf529f2ae Update version 2016-11-16 19:07:04 -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 39399e78ae Allow debug tracing of event handlers; don't remove handlers on error 2016-11-16 18:59:13 -08:00
Pragmatic Software 4ed61096dd Missing hash dereference 2016-11-04 12:40:17 -07:00
Pragmatic Software 6fbd6d5620 Update version 2016-10-29 10:47:12 -07:00
Pragmatic Software 3bd424aacc Fix possible case-sensitivity issues 2016-10-29 10:47:08 -07:00
Pragmatic Software 72faa9169f Update version 2016-10-23 03:52:03 -07:00
Pragmatic Software 170dac5776 Improve `!cmd` and `nick: !cmd` processing 2016-10-23 03:51:59 -07:00
Pragmatic Software 0397068a7f Undo recent blink addition 2016-10-23 03:50:34 -07:00
Pragmatic Software 7f00047af8 Update version 2016-10-14 05:56:57 -07:00
Pragmatic Software 8addeb5d49 Allow "nick: !command" to address to nick; minor improvements 2016-10-14 05:56:54 -07:00
Pragmatic Software 4764b034e1 Update version 2016-09-28 14:13:47 -07:00
Pragmatic Software c64dca7b07 Forgot a return 0 in an IRC handler, causing other related handlers to not fire after that handler 2016-09-28 14:13:44 -07:00
Pragmatic Software 49a21b2027 Update version 2016-09-25 12:59:05 -07:00
Pragmatic Software c56b9662b8 Whoops, fix nick-similarity behavior for non-nicks 2016-09-25 12:59:03 -07:00
Pragmatic Software c6473d0255 Update version 2016-09-25 00:24:52 -07:00
Pragmatic Software 2001fc1908 Whoops, return proper nick-casing for exact-match is_present_similar() result 2016-09-25 00:24:49 -07:00
Pragmatic Software 81e106285e Update version 2016-09-25 00:03:40 -07:00
Pragmatic Software f34854fcec Add nick similarity completion
Previously, the bot wouldn't address people by nick if the provided nick
argument doesn't exist in the channel.

Now, the bot's nick list is searched for a nick with a certain similarity
percentage in the order of most recently spoken nicks first. This allows
the bot to address nicks when somebody may have forgotten to add a trailing
underscore/punctuation or may have typoed the nick.

The similarity percentage can be set via the interpreter->nick_similiarty
registry key.  A value of 0 should disable the behavior.
2016-09-25 00:03:37 -07:00
Pragmatic Software 6369a8df99 Update version 2016-09-23 18:32:03 -07:00
Pragmatic Software 3fd2519a87 Minor text change; don't aggressively pursue ping-timeouts 2016-09-23 18:32:00 -07:00
Pragmatic Software d8854603c3 Update version 2016-09-22 08:26:46 -07:00
Pragmatic Software 0cd4102d37 Whoops, NickList should be registered after IRCHandlers since IRCHandlers depends on NickList for AntiFlood QUIT handling 2016-09-22 08:26:42 -07:00
Pragmatic Software 4091127213 Make aka usage message more concise 2016-09-22 08:25:50 -07:00
Pragmatic Software e4d62a2e18 Update version 2016-09-13 12:43:31 -07:00
Pragmatic Software 754d38b50e Fix mismatching WHO id if no WHO replies 2016-09-13 12:43:27 -07:00
Pragmatic Software 1f03985178 Update version 2016-09-02 02:17:12 -07:00
Pragmatic Software 687a5e0ae2 Check WHO when joining channels
When joining a channel, check the WHO list for that channel in order
to obtain all hostmask, nickserv and gecos information and check for
potential ban evasions.
2016-09-02 02:17:10 -07:00
Pragmatic Software 87d02af264 check_bans now can do a dry-run 2016-09-02 02:12:20 -07:00
Pragmatic Software ca5b832ddf Replace baninfo dump with terse line 2016-09-02 02:09:43 -07:00
Pragmatic Software 3225d74206 Update version 2016-08-30 02:14:36 -07:00
Pragmatic Software 2c554328c9 Whoops, do check-bans on join for unidentified users as well when extended-join capability is active 2016-08-30 02:14:21 -07:00
Pragmatic Software 8102e1bc21 Update version 2016-08-29 20:47:49 -07:00
Pragmatic Software d07458425f No need to WHOIS on joins if extended-join is available 2016-08-29 20:47:46 -07:00
Pragmatic Software ca349804ca Update version 2016-08-28 22:36:50 -07:00
Pragmatic Software eff8046f2c kick command now provides random insult if no kick reason is given 2016-08-28 22:36:46 -07:00
Pragmatic Software c93d3db39c Update version 2016-08-28 03:49:30 -07:00
Pragmatic Software 1442485d0b Support account-notify and extended-join capabilities 2016-08-28 03:49:27 -07:00
Pragmatic Software 43351ed8c2 Update version 2016-08-26 04:52:43 -07:00
Pragmatic Software 08a26a70a7 Minor derp with log message 2016-08-26 04:52:38 -07:00
Pragmatic Software 255b42efee Update version 2016-08-26 04:31:55 -07:00
Pragmatic Software 2dea20130f Missed a spot 2016-08-26 04:31:51 -07:00
Pragmatic Software 26c80d8351 Update version 2016-08-26 04:02:33 -07:00
Pragmatic Software c13f3ae9dc Catch more rare scenarios for strongly linking accounts 2016-08-26 04:02:30 -07:00
Pragmatic Software e532c5711f Update version 2016-08-25 01:42:11 -07:00
Pragmatic Software 568c1c8732 Use ? instead of ! to denote nickchange akas 2016-08-25 01:42:06 -07:00
Pragmatic Software ba6fb2c2d7 Improve linking of accounts 2016-08-25 01:41:32 -07:00
Pragmatic Software 6d0a548c26 Update version 2016-08-17 20:34:49 -07:00
Pragmatic Software 857d1aa0d3 Refactor message account linking
Linking of message accounts is now significantly less likely to produce
false-positives.

Previously, any hostmasks with matching nick!*@* would be strongly linked
together.  This led to falsely-linking accounts, either inadvertently or
intentionally.

For example, Bob might also be known as Bob_ and Bobby,
but primarily uses Bob as his main nick.  Somebody else might join with
Bobby and end up being linked to Bob.  Now both Bob and the new Bobby are
linked together as the same person, but likely with different *!user@host.

Now if the new Bobby ever gets banned, then Bob will also end up being
banned for evading Bobby's ban.

This was a sore spot in the previous linking implementation.

This new implementation has several adjustments to more intelligently link
accounts only when they're proven beyond a reasonable doubt to be the same
person (e.g. by matching nickserv accounts, etc).

Consequently, rather than aggressively linking accounts and catching more
ban-evaders at the risk of potentially falsely-linking accounts and falsely
detecting innocent people as ban-evaders, this new implementation will instead
link accounts more reliably at the risk of potential ban-evaders not yet being
linked together and thus being able to evade a ban.

This is a more preferable and reasonable risk.  Active channel ops should be
able to catch any obnoxious ban-evaders that slip through this net.
2016-08-17 20:34:45 -07:00
Pragmatic Software d77ea29b47 Update version 2016-08-01 01:46:30 -07:00
Pragmatic Software 96afc969b3 Update version 2016-07-15 14:09:33 -07:00
Pragmatic Software 674a96431b Improve nick-change evasion detection logic 2016-07-15 14:09:29 -07:00
Pragmatic Software 133b5d1875 Update version 2016-07-01 13:29:46 -07:00
Pragmatic Software 949dc14525 Command queue no longer delays commands relative to each other 2016-07-01 13:29:26 -07:00
Pragmatic Software b03a4b68e6 Update version 2016-07-01 13:03:10 -07:00
Pragmatic Software 41030b5686 Quick rough-draft of auto-rejoin plugin 2016-07-01 13:02:58 -07:00
Pragmatic Software de856f3887 Now joins channel if /invited (and channel is registered and enabled) 2016-07-01 13:01:34 -07:00
Pragmatic Software b215dfe9de Add command queue for delayed command processing 2016-07-01 13:00:20 -07:00
Pragmatic Software 4cb77ba143 Minor fix max_recall_time/max_messages initialization 2016-07-01 12:59:31 -07:00
Pragmatic Software bdfd17612c Add is_active($channel) to determine if $channel is added and enabled 2016-07-01 12:58:29 -07:00
Pragmatic Software 2792a0cb0b Ensure lowercased parameters 2016-07-01 12:56:25 -07:00
Pragmatic Software ff7141a3d6 Minor improvements 2016-07-01 12:55:52 -07:00
Pragmatic Software 35ef8a7af6 Update version 2016-06-25 18:09:53 -07:00
Pragmatic Software dcacec18c6 Totally not a bug
Extremely minor rearrangement of interpreter logic so that `!commands` are
parsed before `command, botnick`. Totally not a bug at all. Pay no attention.
2016-06-25 18:09:47 -07:00
Pragmatic Software bc2bbb8fde Update version 2016-04-10 18:35:18 -07:00
Pragmatic Software b5c107bcbb Remove extraneous comma 2016-04-10 18:35:11 -07:00
Pragmatic Software 5d62f9e728 Update version 2016-03-15 12:45:17 -07:00
Pragmatic Software 3d90b8fbea Update version 2016-03-06 22:25:26 -08:00
Pragmatic Software 1e892f4ca1 Add silent option to countertriggers 2016-03-06 22:25:22 -08:00
Pragmatic Software 40c5ba8268 Update version 2016-02-25 00:51:55 -08:00
Pragmatic Software b87db378cf Do not trigger ban evasion if mask matches banmask; use *!*@host instead of *!user@ip-mask for evasions 2016-02-25 00:51:52 -08:00
Pragmatic Software 75b29e78c5 Update version 2016-02-25 00:47:54 -08:00
Pragmatic Software 76d9184c1d Add explicit dereferences 2016-02-25 00:46:55 -08:00
Pragmatic Software fb846a36ed Obey ignorelist in Counter plugin on_public() 2016-02-25 00:45:46 -08:00
Pragmatic Software 99e505b811 Add `silent` parameter to prevent logging of ignored messages 2016-02-25 00:45:03 -08:00
Pragmatic Software d344e6d667 Update version 2016-02-21 01:41:51 -08:00
Pragmatic Software 00d5cef482 Update version 2016-02-19 20:45:01 -08:00
Pragmatic Software f82a0cd64e Improvements to Counter plugin 2016-02-19 20:44:57 -08:00
Pragmatic Software f2bd3986b7 Update version 2016-02-19 00:18:03 -08:00
Pragmatic Software be18316268 For default installs, revert aka level and don't set max_recall_time 2016-02-19 00:17:54 -08:00
Pragmatic Software b70cf6ad0e Update version 2016-02-18 16:11:29 -08:00
Pragmatic Software 7cc0912712 Restrict aka to admins, and add max_recall_time limit 2016-02-18 16:11:26 -08:00
Pragmatic Software 94026f4488 Update version 2016-02-17 14:57:30 -08:00
Pragmatic Software 1339b30c4b Only admins can add counter triggers 2016-02-17 14:57:24 -08:00
Pragmatic Software 8792633b6a Minor improvement to `aka -w` 2016-02-17 14:56:57 -08:00
Pragmatic Software 124c5c3577 Update version 2016-02-14 18:29:06 -08:00
Pragmatic Software d48cc9d976 Skip only bad triggers instead of all triggers 2016-02-14 18:29:00 -08:00
Pragmatic Software a8983d3a86 Update version 2016-02-14 18:13:33 -08:00
Pragmatic Software d251d0ac7a Add countertrigger command to Counter plugin 2016-02-14 18:13:27 -08:00
Pragmatic Software d8c2084587 Update version 2016-02-13 18:39:18 -08:00
Pragmatic Software 98ee3bef02 Add Counter plugin 2016-02-13 18:39:12 -08:00
Pragmatic Software a3ade65954 Rename unregister_by_name to unregister 2016-02-13 18:38:43 -08:00
Pragmatic Software 8af19a75e9 Delete plugin subs /after/ calling unload() 2016-02-13 18:37:53 -08:00
Pragmatic Software f59e00e5c9 Update version 2016-02-10 10:14:15 -08:00
Pragmatic Software 7bb18e00a7 Use binary attribute for CSV 2016-02-10 10:14:12 -08:00
Pragmatic Software 194bff37db Update version 2016-02-10 07:10:39 -08:00
Pragmatic Software 110c9cc548 Use CSV for GECOS field 2016-02-10 07:10:37 -08:00
Pragmatic Software c97ba1de20 Update version 2016-02-10 03:42:45 -08:00
Pragmatic Software ddeef3cc62 Add support for GECOS 2016-02-10 03:42:42 -08:00
Pragmatic Software 15da1428be Update version 2016-01-29 20:02:58 -08:00
Pragmatic Software 7ccd36d042 Update version 2016-01-29 19:56:34 -08:00
Pragmatic Software 0411249b29 Add AntiRepeat plugin 2016-01-29 19:56:29 -08:00
Pragmatic Software 2b00ce0af5 Update version 2016-01-29 13:09:01 -08:00
Pragmatic Software b4e8302f32 Do not override pre-existing registry with default values 2016-01-29 13:08:40 -08:00
Pragmatic Software 0d70d85506 Update version 2016-01-29 12:59:17 -08:00
Pragmatic Software 4c5227b351 Unregister timers by id instead of subref 2016-01-29 12:59:07 -08:00
Pragmatic Software 6e4c7853f2 Update version 2016-01-26 19:23:06 -08:00
Pragmatic Software 0b5435bc7d Refactor whitelist 2016-01-26 19:23:03 -08:00
Pragmatic Software 6631b5752e Update version 2016-01-26 09:04:06 -08:00
Pragmatic Software 4a3ec27d78 Improve whitelist functionality 2016-01-26 09:04:03 -08:00
Pragmatic Software 5caa814e44 Update version 2016-01-24 03:02:18 -08:00
Pragmatic Software 8ac4a5999d Add whitelist to blacklist check 2016-01-24 03:02:14 -08:00
Pragmatic Software 01eb05a05e Update version 2016-01-23 06:03:51 -08:00
Pragmatic Software 745686eb75 Update ban-whitelist to support user-whitelist 2016-01-23 06:03:47 -08:00
Pragmatic Software 54973eca0b Update version 2016-01-20 08:13:37 -08:00
Pragmatic Software d1e3d8267d Update version 2016-01-19 06:51:42 -08:00
Pragmatic Software 14124da3ac Embedded triggers now work at beginning of message 2016-01-19 06:51:40 -08:00
Pragmatic Software 6fe7d4bd75 Update version 2016-01-16 16:55:53 -08:00
Pragmatic Software 4ef978963c Improve `unbanme` behavior 2016-01-16 16:55:48 -08:00
Pragmatic Software 2e0a5e411c Make "is" optional in `factadd` 2016-01-16 16:55:18 -08:00
Pragmatic Software 4d6348c5b0 Update version 2015-12-22 17:24:13 -08:00
Pragmatic Software 01fa391fec Update version 2015-12-22 08:13:02 -08:00
Pragmatic Software c306ae4ce6 Minor text reformatting 2015-12-22 08:12:59 -08:00
Pragmatic Software b01f29491b Update version 2015-12-14 16:13:46 -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 d199b3c26c Update version 2015-12-14 14:30:49 -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 20a8c30d4c Update version 2015-12-13 22:28:11 -08:00
Pragmatic Software 3a25afdb01 Minor textual correct for factlog disambig text 2015-12-13 22:28:00 -08:00
Pragmatic Software edcf966d56 Update version 2015-12-13 22:21:05 -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 4a765277cb Update version 2015-12-13 22:08:24 -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 03389d4d08 Update version 2015-12-13 14:24:28 -08:00
Pragmatic Software e6ac123fe1 Add factlog command to see factoid changelogs 2015-12-13 14:24:25 -08:00
Pragmatic Software 66ceac3916 Update version 2015-12-13 13:58:13 -08:00
Pragmatic Software e6e7f325fb Add individual change-logs for factoid triggers 2015-12-13 13:58:01 -08:00
Pragmatic Software 31cd5d8388 Update version 2015-11-26 12:36:40 -08:00
Pragmatic Software 2962a44c12 No longer remove trailing punctuation from embedded factoid commands 2015-11-26 12:36:36 -08:00
Pragmatic Software 1f1631935b Update version 2015-11-20 21:11:45 -08:00
Pragmatic Software 4cd1211684 Improve unbanme handling
Sometimes people might join the channel uncloaked and get join-flood banned
with their uncloaked hostmask, and then later attempt to join the channel while
cloaked but the network will prevent them from joining since it checks their IP
address against the banlist in addition to their cloak.

Attempts to use unbanme while cloaked will look for a ban matching the cloak
instead of the IP address and will not find their uncloaked join-flood ban.

To fix this, we now traverse all known aliases/hostmasks for an individual
requesting a join-flood unban and remove any and all bans matching any of the
hostmasks linked to this individual.
2015-11-20 21:08:30 -08:00
Pragmatic Software 742eb849e8 Remove duplicate blank line 2015-11-20 21:02:21 -08:00
Pragmatic Software 77d94af516 Update version 2015-10-25 04:01:48 -07:00
Pragmatic Software aa749860c0 Look for module in global channel before falling back to local channel 2015-10-25 04:01:45 -07:00
Pragmatic Software 4f875f9c4c Update version 2015-10-19 12:21:50 -07:00
Pragmatic Software 89eda8f0a9 Fix undefined variable warning in find_factoid 2015-10-19 12:21:42 -07:00
Pragmatic Software b23f025a12 Update version 2015-10-10 06:07:30 -07:00
Pragmatic Software 43418c1bc6 Require curly braces or backticks around embedded commands 2015-10-10 06:07:24 -07:00
Pragmatic Software 8bb7dfece6 Update version 2015-10-10 04:27:39 -07:00
Pragmatic Software 930801a5fb Require curly braces or backticks around embedded commands 2015-10-10 04:27:36 -07:00
Pragmatic Software f364075bff Update version 2015-10-06 17:35:28 -07:00
Pragmatic Software 0fb098ded1 Update version 2015-10-05 02:11:55 -07:00
Pragmatic Software 54b8750d1b Allow adding channels as factoid adlib modifier 2015-10-05 02:11:52 -07:00
Pragmatic Software 2c59908ee8 Update version 2015-10-05 02:03:17 -07:00
Pragmatic Software cf72a11658 Improve factoid expansions 2015-10-05 02:03:13 -07:00
Pragmatic Software 0f0797c0ee Update version 2015-10-02 20:14:53 -07:00
Pragmatic Software a5c700eec3 Correct encode_entities() in export_factoids() for URLs, etc 2015-10-02 20:14:48 -07:00
Pragmatic Software 52d437f0da Update version 2015-10-02 20:06:28 -07:00
Pragmatic Software dc2f372551 Add missing encode_entities() to export_factoids() 2015-10-02 20:06:25 -07:00
Pragmatic Software f5c1846458 Update version 2015-09-30 09:51:06 -07:00
Pragmatic Software 01f543b3b7 Fix recall from /msg not ignoring the command itself 2015-09-30 09:51:04 -07: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 a562f79956 Update version 2015-09-19 20:02:16 -07:00
Pragmatic Software 43c0361354 Add botnick to "Why would I want to do that to myself?" condition 2015-09-19 20:02:11 -07:00
Pragmatic Software 5abf047602 Update version 2015-09-19 00:27:18 -07:00
Pragmatic Software 04aaeb5475 Fix handling of no factoid found from find_factoid() 2015-09-19 00:27:15 -07:00
Pragmatic Software d4eb08856a Fix recall logic for integer history 2015-09-18 17:45:25 -07:00
Pragmatic Software 8691e6d7bb Update version 2015-09-17 22:18:22 -07:00
Pragmatic Software 43db8ab34e Update version 2015-09-14 10:32:09 -07:00
Pragmatic Software b5c5162ad0 Minor refactor of `title` case of adlib modifier 2015-09-14 10:29:28 -07:00
Pragmatic Software 739c28125b Remove extraneous whitespace 2015-09-14 10:25:16 -07:00
Pragmatic Software e1d557e75f Update version 2015-09-14 10:22:58 -07:00
Pragmatic Software aed3f34c43 Add optional modifiers to factoid variables
Adlib list variables can now accept trailing modifier keywords prefixed with
a colon. These can be chained together to combine their effects.

     :uc - uppercases the expansion
     :lc - lowercases the expansion
     :ucfirst - uppercases the first letter in the expansion
     :title - lowercases the expansion and then uppercases the first letter
              (effectively an alias for :lc:ucfirst)

Examples:
   <pragma_> echo $colors:uc
   <candide> RED
   <pragma_> echo $colors:ucfirst
   <candide> Blue
2015-09-14 10:22:55 -07:00
Pragmatic Software d6319b27c5 Update version 2015-09-14 09:06:48 -07:00
Pragmatic Software ebc7cb9579 Move enter-abuse logic to after chat flood logic to prevent enter-abuse warning and chat flood ban happening at the same time 2015-09-14 09:06:43 -07:00
Pragmatic Software ecaa45b3dc Expand factoid variables sooner so argument processing occurs on expanded action 2015-09-14 09:06:00 -07:00
Pragmatic Software ddeb70f1e3 Update version 2015-09-12 01:52:47 -07:00
Pragmatic Software 50fa9ff706 Improve `recall` error message when no history is found
`recall` now shows all channels a nick was seen in if they weren't seen in
the requested channel.
2015-09-12 01:52:45 -07:00
Pragmatic Software dfcef63e5e Update version 2015-09-10 01:51:31 -07:00
Pragmatic Software 70f091545b Replace "me" in factoid arguments only during first interpretation pass 2015-09-10 01:51:24 -07:00
Pragmatic Software d8183fc405 Update version 2015-09-09 05:24:18 -07:00
Pragmatic Software 7ce40fca4d Correct use/package paths 2015-09-09 05:24:16 -07:00
Pragmatic Software a158e4458f Rename Plugins/_Readme to Plugins/README 2015-09-08 11:50:14 -07:00
Pragmatic Software 8e188b9013 Correct minor typos in description comment 2015-09-08 11:46:08 -07:00
Pragmatic Software 12cd20c072 Update version 2015-09-08 11:42:47 -07:00
Pragmatic Software 17e4cdb8b3 Move Quotegrabs to Plugins 2015-09-08 11:42:43 -07:00
Pragmatic Software de2774ed00 Update version 2015-09-08 05:30:06 -07:00
Pragmatic Software 6d8b6532b6 Immediate leave UrlTitles if message doesn't contain a URL 2015-09-08 05:30:02 -07:00
Pragmatic Software c9711e5fa4 Update version 2015-09-08 04:43:26 -07:00
Pragmatic Software 6c5c263ed2 Move URL titles conditional out of loop 2015-09-08 04:43:24 -07:00
Pragmatic Software c57c9e2f13 Update version 2015-09-08 01:38:02 -07:00
Pragmatic Software 391cd91191 Add $event->{interpreted} example to _Example plugin 2015-09-08 01:37:59 -07:00
Pragmatic Software e5097eee69 Move URL titles to UrlTitles.pm plugin
Add $event->{interpreted} field to events to notify other handlers
whether an event was successfully interpreted by the interpreter.

An $event->{interpreted} that is equal to or greater than 100 means the entire
message was consumed and handlers shouldn't do any further processing of it
that would generate any output to channels or users.

Otherwise, $event->{interpreted} is incremented by 1 for each referenced
command that was processed.
2015-09-08 01:37:34 -07:00
Pragmatic Software fa2865fb10 Fix potential undefined variable warning 2015-09-08 01:30:08 -07:00
Pragmatic Software d51d2367a1 Correct logic of `login` command ignore check 2015-09-07 05:04:54 -07:00
Pragmatic Software 1582b35db9 Update version 2015-09-07 00:20:11 -07:00
Pragmatic Software efcca90444 Revert unplug error message 2015-09-07 00:20:06 -07:00
Pragmatic Software 5c83ea62f3 Rename Pluggable to Plugins 2015-09-06 22:53:49 -07:00
Pragmatic Software 70a3a2a354 Update version 2015-09-06 22:52:43 -07:00
Pragmatic Software adfdccfd27 Rename Pluggable to Plugins 2015-09-06 22:52:39 -07:00
Pragmatic Software 729728a458 Update version 2015-09-06 22:39:59 -07:00
Pragmatic Software 0b74dd070d Pass PBot %conf to auto-loaded plugins 2015-09-06 22:39:40 -07:00
Pragmatic Software 8d666984dc Move AntiAway and AntiKickAutoRejoin to Pluggable 2015-09-06 22:38:59 -07:00
Pragmatic Software 539aeb3e9f Change "not found" to "failed to load" 2015-09-06 22:22:37 -07:00
Pragmatic Software ce3a3d4b9b Update version 2015-09-06 22:17:20 -07:00
Pragmatic Software 0d7f0bf184 Add loadable core plugins
These are different from the loadable factoid modules.  The factoid modules
are external executable shell commands that take stdin as arguments and print
to stdout as a return value.  As such, they are not integrated into the bot
and cannot make use of the bot's internal subroutines.

These plugins are loaded internally and integrated into the bot such that they
can interface with the bot's internal subroutines and state.

All files in the Pluggable directory not beginning with an underscore will be
automatically loaded at bot start-up.

Plugins (including those starting with an underscore) can be manually loaded
or unloaded with the `plug` and `unplug` commands.  Use `pluglist` to list
loaded plugins.
2015-09-06 22:17:07 -07:00
Pragmatic Software f8dba73d02 Correct name of file in error message 2015-09-06 22:04:46 -07:00
Pragmatic Software 16f467252b Do not process server NOTICES as public messages
Add time-out to automatically unban ##fix_your_connection ban-forwards
2015-09-06 22:04:21 -07:00
Pragmatic Software bff1aa34d7 Update version 2015-09-03 20:56:48 -07:00
Pragmatic Software 8c16fbd3e5 Allow factoids to be referenced from within messages
E.g.,

<pragma-> Userbob: You can learn more about candide by reading its !help page and checking out its !source
<candide> Userbob: To learn all about me, see http://www.iso-9899.info/wiki/Candide
<candide> Userbob: My guts can be browsed at https://github.com/pragma-/pbot

Only three triggers will be processed per message.  (I should create a
registry entry to customize this.)

Messages that are addressed at a specific user that exists in the channel will
have that user's name prepended to the factoid output.

Factoid triggers that are referenced from within messages will not produce
error messages if the factoid is not found.

Factoids that have an $arg or $nick special variable will not be triggered as
a reference.

Factoids that have the `noembed` meta-data value set to a true value will not
be invoked as a reference.
2015-09-03 20:56:44 -07:00
Pragmatic Software d570dd7dd4 Fix undefined variable warnings in `recall` 2015-09-03 20:50:07 -07:00
Pragmatic Software 675760289c Allow wild-card in recall/grab text
Do not iterate through weak links when looking for also-known-as
2015-09-03 20:49:06 -07:00
Pragmatic Software 8e1f008f9b Redirect NOTICEs as public messages (anti-flood, command parsing, etc) 2015-09-03 20:46:12 -07:00
Pragmatic Software 34a653b05a Stop appending !*@* to $a:account banmasks 2015-09-03 20:44:33 -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 b6f7dd87e5 Update version 2015-08-22 11:05:57 -07:00
Pragmatic Software 050714e359 Improve `ban` command to accept nick as argument and determine an appropriate banmask 2015-08-22 11:05:53 -07:00
Pragmatic Software d317f2a0c5 Update version 2015-08-19 22:26:32 -07:00
Pragmatic Software eb8a49cc74 Improve `unban` command to find all matching bans given a nick argument
Instead of only taking a hostmask argument, `unban` will now determine
if the argument is a nick, and if so it will then find all bans that
match various hostmasks used by that nick and unban them all.
2015-08-19 22:26:28 -07:00
Pragmatic Software f5b23532ae Update version 2015-08-16 05:21:02 -07:00
Pragmatic Software 3fa12c208e Improve handling of word-boundaries in searches 2015-08-16 05:20:57 -07:00
Pragmatic Software b15267c587 Update version 2015-08-08 12:40:12 -07:00
Pragmatic Software 260b1405a7 Enforce nick-change flood on Guest nicks 2015-08-08 12:40:06 -07:00
Pragmatic Software 499d91e07d Do not exempt bot-admins lower than level 10 from ignore list 2015-08-08 12:39:17 -07:00
Pragmatic Software 89c1ad7efa Update version 2015-08-05 12:29:10 -07:00
Pragmatic Software 35653cb996 Add word-boundaries around text searches 2015-08-05 12:28:15 -07:00
Pragmatic Software 2d875dc5fd Update version 2015-07-28 17:50:09 -07:00
Pragmatic Software 025a8bfc38 Set ##stop_join_flood bans in $channel-floodbans to reduce channel noise 2015-07-28 17:50:06 -07:00
Pragmatic Software 028fe40a8b Correct location of alias_type 2015-07-28 17:49:18 -07:00
Pragmatic Software 154b46194f Use comma-separated list of channels when auto-joining to reduce IRC commands 2015-07-28 17:47:53 -07:00
Pragmatic Software 9cf59888c0 join_channel() can now take a comma-separated list of channels and issue them as one IRC command 2015-07-28 17:47:22 -07:00
Pragmatic Software f6a99818f0 Update version 2015-07-23 17:47:19 -07:00
Pragmatic Software dbfb8a6add Remove unnecessary printing of ignored messages 2015-07-23 17:47:16 -07:00
Pragmatic Software bded959ba4 Remove unnecessary logic 2015-07-23 17:46:33 -07:00
Pragmatic Software cc9f4926ee Make channel argument optional for factrem as well 2015-07-23 17:46:01 -07:00
Pragmatic Software 5305ac43a9 Update version 2015-07-21 15:07:58 -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 8cdad15207 Show enter-abuse warning message just before it would temp-ban
Fix address_to_mask regex
2015-07-21 13:44:42 -07:00
Pragmatic Software 9194f3e871 Update version 2015-07-18 08:13:23 -07:00
Pragmatic Software 1fed4d4de5 Update version 2015-07-17 00:33:09 -07:00
Pragmatic Software 454d305605 Update version 2015-07-15 00:18:59 -07:00
Pragmatic Software 850c8a0525 Add weak/strong also-known-as linking
PBot will now use weak links if the ip address portion of a hostmask
hasn't been seen in the last 48 hours in order to prevent false-positive
linking of dynamic ip addresses.

Weak links are excluded from ban-evasion logic.

Weak links can be manually upgraded to strong links with the `akalink`
command if a human confirms they are the same person through the `aka -w`
command.

Individuals with matching nicks or matching nickserv accounts, etc, will
automatically be strongly linked, as usual.
2015-07-15 00:18:57 -07:00
Pragmatic Software 6a6eff1150 Support nat cloaks for banmasks 2015-07-14 07:29:27 -07:00
Pragmatic Software cbd4e182a6 Update version 2015-07-13 04:01:06 -07:00
Pragmatic Software 4b66f61552 Update version 2015-07-13 02:47:32 -07:00
Pragmatic Software 04f1672f19 Update some admin levels 2015-07-13 02:47:30 -07:00
Pragmatic Software 7e76a77b09 Update version 2015-07-12 02:54:28 -07:00
Pragmatic Software 120922d840 Update version 2015-07-09 23:25:37 -07:00
Pragmatic Software 9376c65b24 Allow optionally using name instead of hostmask in adminset/adminunset/adminrem commands 2015-07-09 23:25:31 -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 241c30b4f4 Do not override special variables in expand_factoid_vars() 2015-07-09 23:24:00 -07:00
Pragmatic Software adc5e39e2f Update version 2015-07-09 07:15:41 -07:00
Pragmatic Software d302587829 Enter-abuse anti-flood settings can now be overridden per-channel 2015-07-09 07:15:32 -07:00
Pragmatic Software 18b1900fbe Update version 2015-07-08 14:06:05 -07:00
Pragmatic Software 7cc8b9c34d Allow chat-flood antiflood settings to be overridable on a per-channel basis 2015-07-08 14:05:55 -07:00
Pragmatic Software ed810dc9d9 Update version 2015-07-06 20:01:22 -07:00
Pragmatic Software 1179a7e1f1 Don't remove dollar-sign from unexpanded factoid vars 2015-07-06 20:01:17 -07:00
Pragmatic Software ed63fb3766 Update version 2015-07-06 19:40:33 -07:00
Pragmatic Software 90b89941cf Update version 2015-07-06 19:39:35 -07:00
Pragmatic Software a0c798dd2a Expand factoid variables in /call statements
This allows us to call random factoids.

E.g.:

  factadd global fact1 is /say This is fact1.
  factadd global fact2 is /say Fact2 is also a pretty neat fact.
  factadd global fact3 is /say But don't forget about fact3!
  factadd global facts is fact1 fact2 fact3
  factadd global randomfact is /call $facts

Invoking the `randomfact` factoid will now randomy pick between
fact1, fact2 and fact3.

This was added to support the `randomkr` factoid.
2015-07-06 19:39:33 -07:00
Pragmatic Software 714f79fb2e Update version 2015-07-05 17:49:21 -07:00
Pragmatic Software 6c9c9d285b Revert chmod 2015-07-05 17:49:06 -07:00
Pragmatic Software 2c6209b578 Use set_default to set default Registry values 2015-07-05 17:48:27 -07:00
Pragmatic Software d1f5c1b705 Add set_default to prevent saving Registry when setting default value 2015-07-05 17:47:12 -07:00
Pragmatic Software f22f2ef12a Update version 2015-07-01 15:21:12 -07:00
Pragmatic Software 83f84e261a Minor bug-fixes 2015-07-01 15:21:08 -07:00
Pragmatic Software e026b9ac42 NickList is_present() now returns canonical nick (proper typographical case) 2015-07-01 15:20:28 -07:00
Pragmatic Software a00a9dfc6b Add more default bad nick suffixes 2015-07-01 15:18:55 -07:00
Pragmatic Software c5cb41e02c Update version 2015-06-26 00:10:27 -07:00
Pragmatic Software 144c3ec63b Fix apostrophe in expand action arguments, and fix regex 2015-06-26 00:10:23 -07:00
Pragmatic Software 7c19ebbd7b Update version 2015-06-25 22:56:15 -07:00
Pragmatic Software f10e1c1c89 Support factoid argument indexing/slicing ($arg[0], $arg[2:4], etc) 2015-06-25 22:56:10 -07:00
Pragmatic Software 8ed333ba96 Fix typo "has_unban_timeout" -> "has_ban_timeout" 2015-06-25 22:55:06 -07:00
Pragmatic Software 09c7437246 Use can_gain_ops/has_un[ban,mute]_timeout subroutines 2015-06-25 20:55:42 -07:00
Pragmatic Software 95a4be6cb0 Add can_gain_ops(), has_unban_timeout() and has_unmute_timeout() subroutines 2015-06-25 20:54:38 -07:00
Pragmatic Software 452ac7fc4c Save registry entries immediately after using set/unset 2015-06-25 20:53:59 -07:00
Pragmatic Software 3b961e0f29 Update version 2015-06-20 17:48:53 -07:00
Pragmatic Software 6b544e9bf4 Stop processing ban evasions immediately after first ban is detected 2015-06-20 17:48:42 -07:00
Pragmatic Software d431d70ac1 Reduce verbosity of factoid debug messages 2015-06-20 17:48:00 -07:00
Pragmatic Software 0d4c5c301f Do not attempt to enforce antiaway/rejoin if not chanop 2015-06-20 07:24:13 -07:00
Pragmatic Software fea56842d3 Update version 2015-06-20 00:20:26 -07:00
Pragmatic Software b4539447a3 Improve check-ban logic 2015-06-20 00:20:23 -07:00
Pragmatic Software 0c1e573ef8 Do not invoke compilation for compile-blocks if nick-prefix is specified and does not exist in channel 2015-06-19 16:16:23 -07:00
Pragmatic Software b8a768aa96 Update version 2015-06-18 23:36:55 -07:00
Pragmatic Software 497b713300 Add response messages for `refresh` command 2015-06-18 23:36:51 -07:00
Pragmatic Software 594b79d0f5 Update version 2015-06-16 21:51:27 -07:00
Pragmatic Software 43f08b4cbc Remove unused `use feature 'switch'` 2015-06-15 20:04:48 -07:00
Pragmatic Software dd4796437b Update version 2015-06-15 19:55:53 -07:00
Pragmatic Software 204f95cba7 Add "refresher" to allow PBot::Module subroutines to be reloaded during runtime 2015-06-15 19:55:46 -07:00
Pragmatic Software 2ae493f1c2 Add `count` option to `recall` command 2015-06-15 17:58:25 -07:00
Pragmatic Software b4bffe9233 Update version 2015-06-13 16:09:02 -07:00
Pragmatic Software 4db125c3c2 Improve account-tracking and ban-evasion for Freenode irccloud.com web gateways 2015-06-13 16:08:57 -07:00
Pragmatic Software 8033213a7f Add options to disable anti-flood per-channel, and to disable enforcement for logged-in admins 2015-06-13 16:08:06 -07:00
Pragmatic Software a3d5dfb63e Update version 2015-06-10 02:27:17 -07:00
Pragmatic Software 73c1c89b6a Correct $length when no $channel or $length argument is provided 2015-06-10 02:27:13 -07:00
Pragmatic Software dfbefee904 random_nick now returns nick with preserved typographical case 2015-06-10 02:26:14 -07:00
Pragmatic Software edf2f0e5ee Update version 2015-06-08 04:43:02 -07:00
Pragmatic Software f2a8839707 Add $randomnick special factoid variable 2015-06-08 04:43:00 -07:00
Pragmatic Software c81612c58c Update version 2015-06-07 18:02:38 -07:00
Pragmatic Software 75655f5d81 Remove ban/mute from time-outs if using "forever" 2015-06-07 18:02:35 -07:00
Pragmatic Software 828bf2fa78 Update version 2015-06-05 22:28:04 -07:00
Pragmatic Software 4895aa5ed8 Don't show duplicate nicks regardless of id unless -h is used 2015-06-05 22:27:59 -07:00
Pragmatic Software f415d73827 Anchor regex in find_admin 2015-06-05 22:27:21 -07:00
Pragmatic Software bf45c6cdde Improve ban evasion; show evaded ban in kick message 2015-06-05 22:26:55 -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 21cd76e99e Ignore surrounding whitespace for integers in parsedate 2015-05-27 16:11:16 -07:00
Pragmatic Software 277b363310 Update version 2015-05-27 11:26:26 -07:00
Pragmatic Software b087324a37 Remove mute from mute-timeouts if -q is detected 2015-05-27 11:26:16 -07:00
Pragmatic Software e835b8c667 Update version 2015-05-27 10:48:55 -07:00
Pragmatic Software d0ebf98441 Automatically unmute +q'd offenders after mute_timeout (7 days) 2015-05-27 10:46:30 -07:00
Pragmatic Software b98ef02b6f Add timed mute/unmute commands 2015-05-27 10:45:43 -07:00
Pragmatic Software 3012297183 Do not require whitespace next to nick when triggering by bot-nick 2015-05-27 10:44:26 -07:00
Pragmatic Software 204c0dc0ce Update version 2015-05-25 17:25:05 -07:00
Pragmatic Software 7607de79a0 Update version 2015-05-25 11:34:48 -07:00
Pragmatic Software b1f3d304b3 Update version 2015-05-25 11:27:28 -07:00
Pragmatic Software a466a0f02f Update version 2015-05-24 13:26:47 -07:00
Pragmatic Software bfe81a87b9 Update version 2015-05-24 06:19:09 -07:00
Pragmatic Software 22545d6249 Update version 2015-05-22 04:24:44 -07:00
Pragmatic Software cdb84a8602 Link nick-changes to original nick's account instead of new nick's 2015-05-22 04:24:38 -07:00
Pragmatic Software 351385cb67 Properly recurse through all linked ids when getting AKAs; optimize Aliases table and AKA function 2015-05-22 04:23:51 -07:00
Pragmatic Software 72c29a9ed8 Update version 2015-05-22 04:03:44 -07:00
Pragmatic Software 5908a74570 Update version 2015-05-18 20:50:28 -07:00
Pragmatic Software ab39220fd5 Update version 2015-05-15 17:53:15 -07:00
Pragmatic Software 0b1d5c29bf Fall back to codepad if sprunge fails to paste
Refactor rate-ratelimiting.
2015-05-15 17:53:13 -07:00
Pragmatic Software 4510d83153 `unbanme` now only works for the first offense
However, the 2nd offense now only earns a 1 hour ban to make up for this.
2015-05-15 17:51:50 -07:00
Pragmatic Software f00405bbd3 Update version 2015-05-12 22:51:07 -07:00
Pragmatic Software 3892295bf1 Wait for nick-change to botnick before joining to prevent joining with random nick 2015-05-12 22:51:04 -07:00
Pragmatic Software d8a721d48a Update version 2015-05-12 21:46:44 -07:00
Pragmatic Software d7d6083a25 Add ability to show alias relationships in `aka` command 2015-05-12 21:46:40 -07:00
Pragmatic Software 5effcd57ac Update version 2015-05-12 12:59:49 -07:00
Pragmatic Software 20aeeea634 Add `akalink` and `akaunlink` commands 2015-05-12 12:59:45 -07:00
Pragmatic Software 9031d97910 Remove left-over debug messages 2015-05-12 12:59:22 -07:00
Pragmatic Software 43806aa228 Update version 2015-05-11 21:28:39 -07:00
Pragmatic Software 5e94890c61 Increase bot's default admin level to 90
`rebuildaliases` command requires level 90 admin due to it's special
use-case.
2015-05-11 21:28:36 -07:00
Pragmatic Software fa6dad12cd Add `Aliases` table to MessageHistory
Improve linking of known aliases for users by using an aliases table
to track the linkages.

Improve check-bans implementation to use new aliases table for
significant performance gains and reduced resource usage.
2015-05-11 21:27:22 -07:00
Pragmatic Software 3776bef88a Reduce WHOIS queries when target joins multiple channels at once 2015-05-10 12:36:47 -07:00
Pragmatic Software b39123813c Update version 2015-05-08 05:11:09 -07:00
Pragmatic Software 745b1ffdc7 Update version 2015-05-08 05:03:00 -07:00
Pragmatic Software d7f2eb0d45 Update version 2015-05-06 21:22:25 -07:00
Pragmatic Software a997705ea4 Correct sprunge error message 2015-05-06 21:22:22 -07:00
Pragmatic Software a245b338c0 Update version 2015-05-06 21:15:35 -07:00
Pragmatic Software 898aa18783 Add rate-limit to paste_sprunge function
Improve formatting of truncate/paste output when an error has occurred.
2015-05-06 21:15:25 -07:00
Pragmatic Software b5c10b73d9 Add "forever" as valid parsedate option
`ban` command will not save ban to unban-timeouts if "forever" is used.
2015-05-06 21:13:39 -07:00
Pragmatic Software 3be6755a61 Do not ignore last-spoken nick if nick is logged in bot admin
Add debug_enter_abuse registry entry
2015-05-06 21:10:55 -07:00
Pragmatic Software 92b738e962 Update version 2015-04-26 16:05:08 -07:00
Pragmatic Software 715ff8ee78 Find factoids in proper channel namespace 2015-04-26 16:05:03 -07:00
Pragmatic Software b9b4a0e2d3 Update version 2015-04-21 01:10:58 -07:00
Pragmatic Software 00203f1705 Update version 2015-04-20 21:33:17 -07:00
Pragmatic Software 3bb3407d37 Update version 2015-04-19 01:55:55 -07:00
Pragmatic Software f20932b442 Allow setting channel-specific registry item `no_url_titles` and `no_compile_blocks` to prevent invoking these in those channels
Rename $mynick to $botnick throughout
2015-04-19 01:55:52 -07:00
Pragmatic Software 4bda217774 Use botnick instead of trigger for stdin commands
Since trigger can be set to be a regex or character-class, use
botnick instead to ensure that commands are properly interpreted.
2015-04-19 01:53:46 -07:00
Pragmatic Software 778933caad Update version 2015-04-16 03:12:14 -07:00
Pragmatic Software 29b3d7e80f Update version 2015-04-14 20:14:24 -07:00
Pragmatic Software 789a4bfe2d Correct handling of `tell`ing factoid aliases 2015-04-14 20:14:22 -07:00
Pragmatic Software b38456e411 Update version 2015-04-13 15:43:22 -07:00
Pragmatic Software a9df8351d3 Move English-to-seconds time duration parser to Utils::ParseDate
Update ban_user_timed() and ignore_user() to use Utils::ParseDate
2015-04-13 15:43:19 -07:00
Pragmatic Software 9ff76ad500 Reduce pseudo-AI typing delay 2015-04-13 15:41:11 -07:00
Pragmatic Software b9b0a55b4e Ensure banmask is a proper mask when doing nick bans 2015-04-13 15:40:43 -07:00
Pragmatic Software 990604e085 Update version 2015-04-11 16:00:40 -07:00
Pragmatic Software 111717c798 Improve `ban` command to understand English time durations
You can now use sentences like "1 hour and 30 minutes" to ban for 5400 seconds.
Also, can now ban in channels from a /msg.
2015-04-11 16:00:20 -07:00
Pragmatic Software a6bafb12a4 Update version 2015-04-10 14:59:20 -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 d89e05b759 Update version 2015-04-10 05:08:19 -07:00
Pragmatic Software f5723d425e Update version 2015-04-10 03:43:52 -07:00
Pragmatic Software c4ec393153 Update version 2015-04-09 11:04:48 -07:00
Pragmatic Software 6642281b8a Update version 2015-04-06 00:49:51 -07:00
Pragmatic Software a15b343752 Update version 2015-04-05 02:32:18 -07:00
Pragmatic Software fcdf24deb5 Update version 2015-04-03 15:33:24 -07:00
Pragmatic Software 17afac5908 Check commands table for keyword before searching regexs 2015-04-03 15:33:19 -07:00
Pragmatic Software d8c12522ed Update version 2015-04-03 13:06:29 -07:00
Pragmatic Software d1341ab4bd Use proper lookbehind to prevent expansion of escaped variables
Remove adlib recursion loop since using $action already enables
recursion since subsitution on $action resets the regex position
2015-04-03 13:06:24 -07:00
Pragmatic Software d2711956d6 Update version 2015-04-03 12:33:42 -07:00
Pragmatic Software ae3791815b Allow recursive expansion of adlib variables
Rename $count to $depth to reflect recursion
2015-04-03 12:33:39 -07:00
Pragmatic Software 383c194966 Don't remove trailing punctuation from arguments
Rename $count to $depth to reflect recursion
2015-04-03 12:32:35 -07:00
Pragmatic Software f3bf1f5e5b Rename $count to $depth to reflect recursion 2015-04-03 12:31:46 -07:00
Pragmatic Software e76592442c Update version 2015-04-03 10:41:07 -07:00
Pragmatic Software 433f381bc9 Don't expand $1, $2, etc, as adlibs 2015-04-03 10:40:48 -07:00
Pragmatic Software 7cd174506f Update version 2015-04-03 10:12:37 -07:00
Pragmatic Software 528f66bfed Refactor Factoids.pm to allow expansion of variables in all factoid types
Variables like $args and adlib variables can now be expanded in modules
and other factoid types.
2015-04-03 10:11:21 -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 2a0912342e Update version 2015-03-30 15:04:12 -07:00
Pragmatic Software c73f8b6a01 Minor refactor 2015-03-30 15:04:08 -07:00
Pragmatic Software b2714e2d16 Update version 2015-03-29 20:26:35 -07:00
Pragmatic Software b6f842bafc Rename some missed variables from previous name-change 2015-03-29 20:26:08 -07:00
Pragmatic Software b36a4fb2c9 Improve message output queue
- Use distinct per-channel queues
- Use timestamp of last message in queue to add delay
- Increase typing speed from 4 characters per second to 7 cps
2015-03-29 20:24:36 -07:00
Pragmatic Software 3f62bfbd94 Update version 2015-03-28 17:52:42 -07:00
Pragmatic Software e199f6309a Factoids can now be set to use a delayed output queue instead of immediately responding 2015-03-28 17:50:43 -07:00
Pragmatic Software 6701ee67f9 find_factoid() can now be told to return found alias instead 2015-03-28 17:49:42 -07:00
Pragmatic Software 5457e129b0 Update version 2015-03-27 13:01:15 -07:00
Pragmatic Software 7599fb0c19 Correct handling of bot trigger in /msg since earlier commit allowing trigger to be a regex 2015-03-27 13:00:43 -07:00
Pragmatic Software 5117c601fb Update version 2015-03-27 04:09:50 -07:00
Pragmatic Software 9140cbec07 Remove ancient obsoleted -1 check on Nickserv account 2015-03-27 04:09:39 -07:00
Pragmatic Software 7f87730de8 Improve handling of Nickserv accounts in check-bans and unbanme 2015-03-27 04:08:47 -07:00
Pragmatic Software 377cf99d35 Update version 2015-03-23 04:27:49 -07:00
Pragmatic Software 44bdf26ebc Add support for per-channel bot trigger characters 2015-03-23 04:27:41 -07:00
Pragmatic Software 2e9f15b7e2 Support IPv6 banmasks 2015-03-23 04:18:33 -07:00
Pragmatic Software 0db12b82ae Update version 2015-03-20 21:14:11 -07:00
Pragmatic Software be47b2cbf2 Improve output of blacklist and ignorelist commands 2015-03-20 21:14:07 -07:00
Pragmatic Software 3e88db4505 Update version 2015-03-16 23:22:22 -07:00
Pragmatic Software 728e05e514 Correct minor logic error 2015-03-16 23:22:18 -07:00
Pragmatic Software b45b707ec2 Update version 2015-03-16 21:10:12 -07:00
Pragmatic Software 9a52fffcdd Rename ShitList to BlackList; minor refactor of IgnoreList 2015-03-16 21:08:25 -07:00
Pragmatic Software d350affa93 Update version 2015-03-15 20:13:03 -07:00
Pragmatic Software cb9ead7624 Incorporate custom `workdir` field into URL for modules 2015-03-15 20:12:44 -07:00
Pragmatic Software 9abce1c102 Update version 2015-03-15 14:07:54 -07:00
Pragmatic Software 284f943c08 Fix typos 2015-03-15 14:07:38 -07:00
Pragmatic Software e604767517 Add support for shitlisting hostmasks 2015-03-15 13:52:30 -07:00
Pragmatic Software 73ba1e7c19 Update version 2015-03-11 02:00:14 -07:00
Pragmatic Software 7970018777 Improve handling of nick-change flood 2015-03-11 02:00:10 -07:00
Pragmatic Software 9ec50d8f5d Update version 2015-03-04 00:41:41 -08:00
Pragmatic Software 386e03c184 Add `stayloggedin` field to admin accounts to prevent logging out when /parting or /quitting 2015-03-04 00:39:44 -08:00
Pragmatic Software d5073be98f Update version 2015-02-17 01:47:38 -08:00
Pragmatic Software e0971e8158 Update version 2015-02-17 01:32:28 -08:00
Pragmatic Software f06aa9dda6 Update version 2015-02-15 20:30:34 -08:00
Pragmatic Software b23935b8dc Create SQLite index for Messages table
This significantly speeds up certain SQL actions on
the Messages table that were done for anti-flood detection.

The bot should now be significantly more quicker to catch
floods promptly without delay.

(Also, comment out some logging messages. Perhaps revisit this
and wrap them with a debug registry variable instead.)
2015-02-15 20:30:28 -08:00
Pragmatic Software 19788eec47 Use 0 second timeout on SelectHandler's select
We do not need to wait for any timeout period in SelectHandler's
select since IRC.pm's select has a 1 second (by default) timeout.

Removing this unnecessary delay will increase the overall
responsiveness of the bot.
2015-02-15 20:23:07 -08:00
Pragmatic Software 1ffe857ba5 Print IRC debug messages to STDERR 2015-02-15 20:19:51 -08:00
Pragmatic Software ec13cf14bc Search all channels if target channel is not a valid channel (private message, for instance) 2015-02-15 20:18:46 -08:00
Pragmatic Software 04f47ba3a1 Show "global" if namespace is ".*" 2015-02-15 20:17:36 -08:00
Pragmatic Software 9f265a0f0e Do not enforce anti-flood on logged in bot admins 2015-02-15 20:16:37 -08:00
Pragmatic Software 559b9ddde1 Use NickList instead of MessageHistory for target channels 2015-02-14 04:03:39 -08:00
Pragmatic Software 800b097a34 Use NickList instead of MessageHistory for target channels 2015-02-14 04:03:18 -08:00
Pragmatic Software ad1ab83298 Update bad_actions with more matches 2015-02-14 04:02:13 -08:00
Pragmatic Software 9f23aef2d0 Random IRC nicks cannot start with a digit 2015-02-14 04:01:09 -08:00
Pragmatic Software 022f86c3e1 Update version 2015-02-13 15:37:55 -08:00
Pragmatic Software 2db21dd011 Update version 2015-02-13 14:39:27 -08:00
Pragmatic Software 2a63cced1d Update version 2015-02-11 21:38:48 -08:00
Pragmatic Software 23ae41c2f2 Update version 2015-02-07 08:48:58 -08:00
Pragmatic Software b693f96806 Update version 2015-01-29 01:40:00 -08:00
Pragmatic Software 972b542582 Update version 2015-01-29 01:25:09 -08:00
Pragmatic Software 12cd9cb8e0 Improve launching of modules
If a `workdir` factoid key is present, the launcher will chdir
to make the specified value the current working directory.

Redirect stderr output to a $modulename-stderr in the module's
current working directory.
2015-01-27 23:49:30 -08:00
Pragmatic Software 4b9e177aec Update version 2015-01-24 08:05:58 -08:00
Pragmatic Software 74f717ad51 Update version 2015-01-23 13:50:17 -08:00
Pragmatic Software f8b6b19398 Show only chat messages in `recall` surrounding context (no joins/quits/etc) 2015-01-23 13:50:14 -08:00
Pragmatic Software 573a18e6ef Update version 2015-01-23 12:33:06 -08:00
Pragmatic Software 5ab76e6e6c Add -x/-context <nick> flag to limit recall -before/-after context to that nick 2015-01-23 11:44:38 -08:00
Pragmatic Software 90597350c5 Update version 2015-01-23 07:36:53 -08:00
Pragmatic Software b806a473d2 Add ability to get surrounding message context in recall command
Add the -b/-before and -a/-after flags to the `recall` command to display
that many lines of surrounding context.

For example, `recall -c ##c -b 100` will show the last 100 messages in the ##c
channel.

Another example, `recall pragma- 50 -b 5 -a 5` will show the 5 messages before the 50th
most recent message spoken by pragma- and then show that 50th message and finally show
the 5 messages after it.
2015-01-23 07:36:39 -08:00
Pragmatic Software 8810605691 Show server:port when connecting 2015-01-23 05:35:06 -08:00
Pragmatic Software 659e61f1fb Update version 2015-01-10 15:56:46 -08:00
Pragmatic Software 7243832cc3 Improve connecting/nicking logic
Randomize nick when connecting and change to botnick after identifying.

Identify after receiving connection welcome message.

Ghost existing nick if it is already in use and then attempt to regain it.
2015-01-10 15:56:43 -08:00
Pragmatic Software 28bd6f3611 Update version 2015-01-06 15:35:55 -08:00
Pragmatic Software 5d1412227f Update version 2014-12-30 17:26:35 -08:00
Pragmatic Software ebd47406ca Update version 2014-12-29 23:56:49 -08:00
Pragmatic Software 7a1d37b51a Update version 2014-12-29 23:25:31 -08:00
Pragmatic Software f9e2c3fb49 CJeopardy improvements
- Reduce hint wait-period from 60 seconds to 30 seconds
- Improve ignoring of common leading words in answers
- Correct several grammar mistakes/typos in questions
2014-12-29 23:19:32 -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 4c65df0529 Update update-version.pl from svn to git 2014-12-29 23:04:35 -08:00
Pragmatic Software ecd2bad066 Add anti-kick-auto-rejoin module that temporarily kickbans offenders who immediately auto-rejoin after having been kicked 2014-12-28 00:44:15 +00:00
Pragmatic Software 0b9513ca2e Reduce ban-tracker verbosity by putting "Getting baninfo" log messages in a debug block 2014-12-27 05:20:21 +00:00
Pragmatic Software bb5c825aab Correct handling of anti-away /me actions 2014-12-27 05:08:42 +00:00
Pragmatic Software e5909965f7 Move anti-away stuff to its own AntiAway.pm module; add /me actions to anti-away detection 2014-12-27 04:53:42 +00:00
Pragmatic Software ba59edb040 Update paren.py module to improve parentheses verbosity 2014-12-20 19:44:40 +00:00
Pragmatic Software a09d3c1d63 Add `permop` channel flag; when non-zero bot automatically ops itself when joining channel, otherwise bot ops itself only when needing to perform an op command and then deops itself after its deop timeout has elapsed 2014-12-18 08:46:13 +00:00
Pragmatic Software 598e2e4988 Add NickList module to track nicks present in channels; dispatch pbot.join/pbot.part events when bot joins/parts channels 2014-11-15 01:18:33 +00:00
Pragmatic Software d1e7abc175 Add event dispatcher module to allow modules to dispatch events and
to register handlers to listen for events.

Update IRCHandlers module to use new event dispatcher to dispatch
irc.events.  Update several modules to register with dispatcher
to listen for irc.events.

Improve handling of reconnection upon unexpected disconnection.

Todo: update more things to use new event dispatcher logic.
2014-11-01 00:15:21 +00:00
Pragmatic Software bc604d3ce2 Insert additional events to IRC::Event::_names table so default handlers will pick them up
Fix up indentation of _names table
2014-11-01 00:08:21 +00:00
Pragmatic Software 5a63fbd705 Auto-kick people who change nicks to a nick matching $bad_away_nicks 2014-10-28 20:35:33 +00:00
Pragmatic Software c979efcfa6 Ignore add_op_command() for channels bot is not registered or set as op 2014-10-28 20:34:48 +00:00
Pragmatic Software f640ade74e Fix regex factoids so that regular factoid keywords have priority over regex triggers 2014-10-28 20:33:11 +00:00
Pragmatic Software f70e044a60 Update latest hostmask last_seen timestamp when linking accounts 2014-10-14 02:33:13 +00:00
Pragmatic Software a679b0ff15 Improve handling of KICK events wrt to message history 2014-10-14 02:32:22 +00:00
Pragmatic Software 46fa0d52b3 Minor code formatting improvement 2014-10-14 02:30:57 +00:00
Pragmatic Software 4dbec8001e Fix regex factoids in global namespace not being triggered 2014-10-14 02:30:14 +00:00
Pragmatic Software 750b78cb53 quotemeta doesn't escape underscores, whoops -- manually escape underscores for Message History SQL statements 2014-10-01 21:18:54 +00:00
Pragmatic Software 79796f9710 CGrammar: Add istrue to static assertion expression; add ability to customize istrue truthiness result, add isfalse 2014-09-19 04:17:37 +00:00
Pragmatic Software 9d3c8c0285 CGrammar: Correct translation of sizeof in static assertions 2014-09-19 03:54:13 +00:00
Pragmatic Software b2e6d7e4c0 Update version 2014-09-11 13:37:57 +00:00
Pragmatic Software 2529d49aac CGrammar: Remove excessive "result of the expression" for parenthesized expressions 2014-09-09 07:20:42 +00:00
Pragmatic Software 83af062376 Fix case-sensitivity to show QUIT messages properly 2014-09-09 07:19:10 +00:00
Pragmatic Software d40361a2bf Disallow ?, [, ], and ~~ in math.pl 2014-08-31 20:27:40 +00:00
Pragmatic Software fa2e3e4b5d Dump LWP error text if get_title.pl fails to fetch webpage 2014-08-31 20:26:24 +00:00
Pragmatic Software 838f232d68 Update C Jeopardy questions 2014-08-31 20:24:08 +00:00
Pragmatic Software a5ede3307e Update C facts module 2014-08-31 20:23:27 +00:00
Pragmatic Software 021401b538 C Jeopardy: Show correctness percentage when an answer is almost correct; recommend #cjeopardy channel when attempting to play via /msg 2014-08-31 20:21:09 +00:00
Pragmatic Software 34d9a2a6d9 Appropriately wildcard /gateway/ hostmask bans 2014-08-18 14:57:12 +00:00
Pragmatic Software 749fda0ff3 Add HHGTTG easter egg to math.pl 2014-08-13 16:55:04 +00:00
Pragmatic Software 654cce66a5 Improve check for ban-evasion when nick-change is detected 2014-08-12 05:51:21 +00:00
Pragmatic Software 068c6a0559 Add default handler for unhandled IRC events; ignore certain IRC events; improve handling of chan-op requests 2014-08-11 07:34:30 +00:00
Pragmatic Software c40e34b3a1 Add newline to "also known as" output to improve formatting in pastes 2014-08-11 07:33:05 +00:00
Pragmatic Software 321fdc401c Improve handling of white-space when splitting output on new-lines 2014-08-11 07:32:24 +00:00
Pragmatic Software c03a1288b6 CGrammar: Fix a|an substitution to an|a 2014-08-10 05:31:29 +00:00
Pragmatic Software 527e8490a3 CGrammar: Add offsetof 2014-08-10 05:03:37 +00:00
Pragmatic Software 48382de916 Add ability to set maximum number of newlines allowed before truncating for preserve newlines 2014-08-05 23:15:11 +00:00
Pragmatic Software dddc9c3be9 Paste remaining lines to paste site if truncated with more lines remaining when preserve newlines is in effect 2014-08-05 23:11:51 +00:00
Pragmatic Software a8ffedc853 C Jeopardy commands now use preserve_whitespace 2014-08-04 22:51:09 +00:00
Pragmatic Software ca37b4fd4e Fix use of wrong sub name when saving registry entries in add/remove subs 2014-08-04 22:50:22 +00:00
Pragmatic Software b15ab7f84f Add ability to preserve newlines in output; require explicit `factadd` to add factoids 2014-08-04 22:48:32 +00:00
Pragmatic Software 74cffe091c C Jeopardy: More improvements to question database 2014-08-04 21:51:23 +00:00
Pragmatic Software 18d245cf10 C Jeopardy: Now says "Too slow!" if someone else also answers the correct answer within 15 seconds 2014-08-04 06:25:56 +00:00
Pragmatic Software 7d6e505d9f C Jeopardy: Clean up some typoes in the questions 2014-08-04 05:20:28 +00:00
Pragmatic Software bf9fe32682 C Jeopardy: Fix and clean-up some questions; fix substitution if "is" in answers 2014-08-04 00:35:41 +00:00
Pragmatic Software 4bf78bf978 C Jeopardy: Add tons of new questions; add support for supplemental tidbits; don't obscure dashes and underscors in hints 2014-08-03 22:20:54 +00:00
Pragmatic Software 55bdc5b930 Enforce CPU limit on expand_macro module 2014-08-03 22:02:36 +00:00
Pragmatic Software bc871bf4b2 C facts: Improve generation of C facts; update cfacts.txt with new facts 2014-08-02 16:01:51 +00:00
Pragmatic Software 9651847165 C Jeopardy: Correct showing of text/answer in "close enough" output due to recent change in handling of typographical case 2014-07-29 20:21:06 +00:00
Pragmatic Software 236b4c1d06 C Jeopardy: Add time-limit to hints 2014-07-29 20:07:48 +00:00
Pragmatic Software 88dc009ae7 C Jeopardy: Show correct typographical case for answers 2014-07-29 19:00:06 +00:00
Pragmatic Software d49700d1e1 C Jeopardy: Add hint command to slowly reveal answer when stumped 2014-07-29 17:30:12 +00:00
Pragmatic Software 2d0a490ed2 C Jeopardy: Fix minor inconsequential typo 2014-07-28 16:28:11 +00:00
Pragmatic Software 00fd1eee89 C Jeopardy: Update question data with additional acceptable answers 2014-07-28 15:56:13 +00:00
Pragmatic Software 9978f0c793 C Jeopardy: Add shuffler to preventing repeating questions 2014-07-28 15:25:54 +00:00
Pragmatic Software 1f8445d3bc C Jeopardy: Add time-limit to `cjeopardy` command. The current question will be shown if within this time-limit, otherwise a new question is shown 2014-07-28 07:45:05 +00:00
Pragmatic Software 4b2abf316f Add C Jeopardy module 2014-07-28 04:29:05 +00:00
Pragmatic Software cf63d9d46a compiler_vm: maintain original ordering of statements before, after and between functions instead of shoving everything to the top or into main 2014-07-23 21:27:09 +00:00
Pragmatic Software 491b4243ad More clean-up of C facts 2014-07-23 20:16:10 +00:00
Pragmatic Software d266e04284 More clean-up of C facts 2014-07-22 09:45:36 +00:00
Pragmatic Software 978c6b1f9d Fix typo in C facts: `simple` -> `simply` 2014-07-22 03:10:10 +00:00
Pragmatic Software c04896aa32 Fix up a couple more C facts misparses 2014-07-22 03:08:56 +00:00
Pragmatic Software d90c845a3b Clean-up some misparsed C facts 2014-07-22 02:14:44 +00:00
Pragmatic Software bcf76471c8 Add `cfact` module 2014-07-22 01:46:16 +00:00
Pragmatic Software da7a827c01 CGrammar: Add "result of the expression" to assignment expressions with spaces; remove extraneous trailing "Do nothing" 2014-07-21 21:27:22 +00:00
Pragmatic Software de375e63a1 CGrammar: Add _Generic; fix issue with compound-literals 2014-07-21 07:11:11 +00:00
Pragmatic Software fd89a4d0f4 CGrammar: Correct placement of "to" in conditional operator; restore "Begin block" and "End block" for nested compound statements 2014-07-18 03:52:16 +00:00
Pragmatic Software 3e47f6bc58 CGrammar: Emit "Do nothing" for empty case statements 2014-07-18 00:39:06 +00:00
Pragmatic Software 7f293450ef CGrammar: Fix for loop init and break statement 2014-07-17 19:04:09 +00:00
Pragmatic Software a59cc20128 CGrammar: Improve if/else in switch block, and improve "Fall through to next case" 2014-07-17 18:51:29 +00:00
Pragmatic Software af8787797a CGrammar: Improve translation of switch/case block 2014-07-17 18:36:09 +00:00
Pragmatic Software 46a0184791 CGrammar: Translate ' ' to "a space"; touch up translation of "the result of the expression the result of the function" to just "the result of the function" 2014-07-16 13:36:40 +00:00
Pragmatic Software ed73046d6b CGrammar: Limit "the result of the expression" to initializer expressions; improve grammar of bitwise assignments 2014-07-15 07:27:34 +00:00
Pragmatic Software 077978bfa1 Add -h option to `aka` command to show full hostmasks 2014-07-13 07:06:04 +00:00
Pragmatic Software 2a8d9152f5 CGrammar: Improve handling of "the result of the expression" 2014-07-13 06:36:55 +00:00
Pragmatic Software 46b5b95d54 Escape undesired SQL wildcards in certain statements; add `aka` command to list also-known-as entries 2014-07-11 12:57:18 +00:00
Pragmatic Software 65073e311d Add support for `nooverride` to prevent commands from being overridden in different namespaces 2014-07-11 12:56:17 +00:00
Pragmatic Software 23b725eeb8 Prevent warning about given/when; incorporate general offense counter in enter abuse offenses; decrement enter abuses once every 24 hours instead of once per hour 2014-07-11 12:54:56 +00:00
Pragmatic Software b2114ca03f CGrammar: Concatenate adjacent string literals 2014-07-11 11:30:05 +00:00
Pragmatic Software 69eca9a336 CGrammar: Change "Repeatedly never" to "Never repeatedly" 2014-07-10 13:13:57 +00:00
Pragmatic Software bea4480cf3 CGrammar: Fix handling 0 as conditional in for loop 2014-07-10 13:11:13 +00:00
Pragmatic Software 38b6edf656 CGrammar: Fix passing 0 as argument to function 2014-07-10 12:35:33 +00:00
Pragmatic Software 5f9fb29e7e CGrammar: Add some missing lowercasing specifiers 2014-07-10 12:24:29 +00:00
Pragmatic Software fab1986a3e CGrammar: Do not use "result of the expression" for single terms 2014-07-10 01:23:19 +00:00
Pragmatic Software 4520be1a2c CGrammar: Improve translation of initializer expressions such as `int i = 'a' > 'b';` 2014-07-09 09:19:49 +00:00
Pragmatic Software de3493f1ca CGrammar: Do not use "an" for items beginning with 'y'; improve translation of array of array indices 2014-07-08 05:24:21 +00:00
Pragmatic Software 029cc1ec7a CGrammar: Improve handling of space seperator in declaration initializers; fix issue with typedefs starting with a type specifier 2014-07-08 03:28:51 +00:00
Pragmatic Software 0c8078c6db CGrammar: Don't pluralize "member" for structs with a single function pointer 2014-07-08 01:15:51 +00:00
Pragmatic Software cc0957b060 CGrammar: Improve handling of declarations and initializers; improve translation of sizeof in statement context 2014-07-08 00:33:50 +00:00
Pragmatic Software 4a646f61c9 CGrammar: correct order of sizeof unary expressions 2014-07-07 10:24:15 +00:00
Pragmatic Software 6295b0f503 CGrammar: Add _Atomic 2014-07-07 09:15:46 +00:00
Pragmatic Software d244af52d8 CGrammar: Improve _Static_assert translation 2014-07-07 08:39:06 +00:00
Pragmatic Software b470359071 CGrammar: Add _Static_assert 2014-07-07 08:27:10 +00:00
Pragmatic Software 9623086310 CGrammar: Add C11's _Alignof 2014-07-07 06:45:50 +00:00
Pragmatic Software 162e264e82 CGrammar: Remove left-over debugging statements 2014-07-06 04:49:10 +00:00
Pragmatic Software 8de131b871 CGrammar: Support C11's _Alignas; improve handling of comments in declaration specifiers 2014-07-06 04:47:07 +00:00
Pragmatic Software 520d1a2c9c CGrammar: Support flexible array struct members; fix up minor whitespace issue 2014-07-05 05:11:07 +00:00
Pragmatic Software 5b10d9769e CGrammar: Correct order of pointer abstract declarator -- now parses `int *[]` properly 2014-07-05 04:39:35 +00:00
Pragmatic Software c638b2c993 CGrammar: Fix shebangs to use env to detect perl location 2014-07-05 00:04:15 +00:00
Pragmatic Software e17c749ca7 CGrammar: Remove todo comments 2014-07-04 23:45:38 +00:00
Pragmatic Software 4583d85b50 CGrammar: Fix declarations without identifier 2014-07-04 23:41:54 +00:00
Pragmatic Software 9c5b307bef compiler_vm: Fix #include parsing logic against mismatched #include <foo" tokens 2014-07-04 13:04:27 +00:00
Pragmatic Software 9b93a33acf CGrammar improvements:
- show return type if _Noreturn function has type other than void
  - improve translation of function body
  - replace "Let `i` be an int" with "Declare `i` as an int"
2014-07-04 12:18:59 +00:00
Pragmatic Software 1f3533bf76 CGrammar: support inline and _Noreturn function specifiers 2014-07-04 11:09:58 +00:00
Pragmatic Software e1ed0bb6b9 CGrammar: replace `parameters` with `arguments` where appropriate 2014-07-04 08:20:01 +00:00
Pragmatic Software 8b626cc81e CGrammar: Wrap struct/union member declaration list with commas to disambiguate nested structs/unions 2014-07-04 02:58:55 +00:00
Pragmatic Software 8b72c03d34 CGrammar improvements:
- periods after "Call the function" and "Result of the function"
  - conditional operator in assignment expression now says "otherwise the value"
  - struct members now use "`identifer` as type" in declarations
  - fix chained designated initializers, e.g. s.i[0] = x and [0][0] = x
  - fix post/pre-incremented/decremented array elements
  - correct positioning of "is nonzero" in multidimensional array locations
2014-07-03 21:33:20 +00:00
Pragmatic Software df5fcbeaaa CGrammar: Add C11 use of type-qualifiers and static in array declarators in function parameter lists 2014-07-02 20:55:50 +00:00
Pragmatic Software d320d5e04a Fix compliment module 2014-07-02 20:54:17 +00:00
Pragmatic Software 8d38af0d69 CGrammar: Include preprocessor and comments in block items 2014-07-02 18:04:22 +00:00
Pragmatic Software 469e16ce28 CGrammar: Update compound-statements to C11's block-item-list mixing declarations and statements 2014-07-02 17:54:21 +00:00
Pragmatic Software 07f9ef6120 CGrammar: Remove "the list" from initializer lists; restore skipping of whitespace to struct/union/enum specifier 2014-07-02 16:54:02 +00:00
Pragmatic Software 7b42e9220e CGrammar: Fix case where `intx` could be parsed as a declaration instead of an identifier 2014-07-02 16:36:22 +00:00
Pragmatic Software 5eee740cd7 CGrammar: Add designated initializers 2014-07-02 01:32:13 +00:00
Pragmatic Software aca698374c CGrammar: Correct beautification regex for "the a" 2014-07-01 19:07:44 +00:00
Pragmatic Software 73967e0721 CGrammar: Progress on C11 features -- added compound-literals 2014-07-01 18:57:02 +00:00
Pragmatic Software 34def4f9ad CGrammar: Fix ordering of statement vs conditional/expression due to concatenated context 2014-07-01 17:03:07 +00:00
Pragmatic Software d6c20bc051 CGrammar: Put space after if/while/for keywords 2014-07-01 16:21:52 +00:00
Pragmatic Software b66e9502d7 CGrammar: Improve translation of structure postfix productions; concatenate contexts for multiple context 2014-07-01 16:16:40 +00:00
Pragmatic Software f4fdd9f221 CGrammar: Begin adding C11 features; add for-loop init declaration; add C11 keywords to reserved list 2014-06-29 21:13:18 +00:00
Pragmatic Software 5d9b45661d CGrammar: Correct handling of empty string literals during beautification 2014-06-28 14:49:59 +00:00
Pragmatic Software 086d5059b1 CGrammar: Move output beautification to c2eng.pl; white-out string literals before beautifying 2014-06-28 14:41:50 +00:00
Pragmatic Software 5730d56d54 CGrammar: Improvements to translation of comma operator 2014-06-28 10:18:28 +00:00
Pragmatic Software 99aea7fe63 CGrammar: Fix translation of multiple type specifiers, e.g. `long double` no longer becomes `double long` 2014-06-27 11:38:54 +00:00
Pragmatic Software 3a3827fe40 CGrammar: Correct context for translation of "post-incremented" vs "increment by one" 2014-06-27 11:25:45 +00:00
Pragmatic Software 26e8f1552c CGrammar: Improve translation of comma operator; remove redundant $arg{context}s 2014-06-26 07:35:11 +00:00
Pragmatic Software 682e6d2af3 CGrammar: Improve pluralization of arrays/pointers in declarations and improve translation of multiple identifiers in typedefs 2014-06-25 12:01:06 +00:00
Pragmatic Software 669e4e37c2 CGrammar: Fix typedefs 2014-06-25 10:15:12 +00:00
Pragmatic Software b38c6c91c1 CGrammar: Add more types; improve translation of comma operator; track identifiers 2014-06-25 08:19:56 +00:00
Pragmatic Software a232919dca CGrammar: Add more lower-case markers 2014-06-24 08:47:29 +00:00
Pragmatic Software a8320f52f9 CGrammar: Fix structure member access; add lower-case markers 2014-06-24 08:44:28 +00:00
Pragmatic Software 95949153e0 CGrammar: Change "is true" to "is nonzero" 2014-06-24 05:38:59 +00:00
Pragmatic Software 9abf8b6e44 CGrammar: Improve "is true" placement 2014-06-24 05:34:54 +00:00
Pragmatic Software 84ee56a15e CGrammar: Remove under-construction warning and outdated todo list 2014-06-23 11:17:23 +00:00
Pragmatic Software 9bb70278b7 CGrammar: static local variables do not have internal linkage 2014-06-23 11:10:40 +00:00
Pragmatic Software 76faa3f2ca CGrammar: Several fixes and improvements 2014-06-23 08:29:08 +00:00
Pragmatic Software c1de5f6c97 CGrammar: Show bad parse error to users 2014-06-22 06:11:11 +00:00
Pragmatic Software d97f8b2fd6 CGrammar: Return output instead of printing; improve error-handling of misparsed code 2014-06-22 06:08:01 +00:00
Pragmatic Software e9b3d7e255 CGrammar: Fix bit-fields; remove under-construction/work-in-progress notice 2014-06-22 04:50:21 +00:00
Pragmatic Software d4cda2bbc6 CGrammar: Fix some abstract declarators in parameter lists; remove some minor extra whitespace 2014-06-22 02:28:28 +00:00
Pragmatic Software a388994d54 CGrammar: Fix anchoring of `reserved` rule 2014-06-21 06:40:03 +00:00
Pragmatic Software 0b941bf771 CGrammar: Anchor reserved rule to prevent prefix matching 2014-06-21 02:01:38 +00:00
Pragmatic Software 1e2caf2bea CGrammar: Er, *correctly* change parameter declarations from "int `i`" to "`i` as int" 2014-06-21 01:40:55 +00:00
Pragmatic Software f137294429 CGrammar: Change parameter declarations from "int `i`" to "`i` as int" 2014-06-21 01:36:24 +00:00
Pragmatic Software c18af75b63 CGrammar: Fix functions taking function pointer as parameter 2014-06-20 23:16:04 +00:00
Pragmatic Software a501557d35 CGrammar: Support long long suffix on constants; add .0 to floating pointer constants when omitted 2014-06-20 09:12:56 +00:00
Pragmatic Software d7197b6bf6 CGrammar: Replace "constant" with "const" since "constant" has a specific meaning in the C standard 2014-06-20 08:25:15 +00:00
Pragmatic Software 3f545cefdc CGrammar: Fix arrays of function pointers and function pointers returning pointers 2014-06-20 08:05:36 +00:00
Pragmatic Software 476db3d6a9 CGrammar: Several improvements in declarations; progress on pointers to functions 2014-06-20 07:43:06 +00:00
Pragmatic Software 1272de61fa CGrammar: Fix preproc conditionals 2014-06-19 05:16:46 +00:00
Pragmatic Software f898580d33 CGrammar: Fix `int const i` to translate to `constant int i` instead of `int constant i` 2014-06-18 22:31:56 +00:00
Pragmatic Software 7590644422 CGrammar: Improve conditional operator translation 2014-06-18 01:08:19 +00:00
Pragmatic Software 8f5e4c9e88 CGrammar: change "pointer to a" to "pointer to" 2014-06-18 00:20:43 +00:00
Pragmatic Software 987de3f38c CGrammar: Oops, pointers are read right-to-left -- fixed const pointers again 2014-06-18 00:14:16 +00:00
Pragmatic Software 861f095829 CGrammar: Fix const pointers 2014-06-17 23:51:55 +00:00
Pragmatic Software dfb7ca0abd CGrammar: Move bit-field to declarator so they can be declared in lists like int a[5], b:5 2014-06-17 23:33:34 +00:00
Pragmatic Software b2a0963abb CGrammar: Improve array translation and fix pointer pluralization 2014-06-17 23:12:02 +00:00
Pragmatic Software 77f1005e03 CGrammar: Fix struct member declarations, pluralize "pointers to" when applicable 2014-06-17 18:20:13 +00:00
Pragmatic Software c40fd81bb0 CGrammar: Add dash between bitwise operators, .e.g. "bitwise ORed" becomes "bitwise-ORed" 2014-06-16 21:23:19 +00:00
Pragmatic Software b0ce2d422e CGrammar: Improve structures and constant literals 2014-06-16 21:13:30 +00:00
Pragmatic Software c205d348e7 CGrammar: Significantly improve postfix expressions, remove basics objects 2014-06-16 02:31:13 +00:00
Pragmatic Software 78419de052 CGrammar: Improve logic of precompiling grammar 2014-06-15 15:42:20 +00:00
Pragmatic Software 7f84708a5e CGrammar: add support for precompiling grammar 2014-06-15 04:28:54 +00:00
Pragmatic Software 9389edd2df CGrammar: Optimize postfix_expression rule and fix function definitions 2014-06-15 03:57:27 +00:00
Pragmatic Software 2dba87f453 CGrammar: Optimize preproc rules 2014-06-15 01:09:06 +00:00
Pragmatic Software 632a9582d5 CGrammar: Improve and optimize conditional_expression rule; improve translation of parenthetical expressions 2014-06-15 00:46:49 +00:00
Pragmatic Software bf9586b6a8 CGrammar: Improve labels and goto 2014-06-14 19:13:53 +00:00
Pragmatic Software 392cbfb5d1 CGrammar: Improve switch/case/break/label 2014-06-14 18:41:55 +00:00
Pragmatic Software c2b4d5cb19 CGrammar: Now parses int *a[10] and int (*a)[10] and such 2014-06-14 17:54:20 +00:00
Pragmatic Software 9597833b32 CGrammar: Function prototypes can appear in delcaration section 2014-06-12 14:19:39 +00:00
Pragmatic Software 0f5dbeda7a CGrammar: Improve chained assignment 2014-06-12 13:23:03 +00:00
Pragmatic Software c6e893a4fa CGrammar: Improve arrays and fix array initialization 2014-06-12 13:13:45 +00:00
Pragmatic Software e29bd99b42 CGrammar: Improve casting, for/do loops and assignment from function result 2014-06-12 12:23:16 +00:00
Pragmatic Software df1fa14b2a CGrammar: Fix array translation text 2014-06-11 12:50:16 +00:00
Pragmatic Software 026db04e4a CGrammar: Remove some redundant returns 2014-06-11 08:54:12 +00:00
Pragmatic Software 992dae043f CGrammar: Fix /* comment */ regex, minor improvement to while loop, need to fix arrays 2014-06-11 08:29:58 +00:00
Pragmatic Software 5c8b845e6d CGrammar: Fix character-literal and string-literal regexs; add more character-literal constants 2014-06-11 07:42:16 +00:00
Pragmatic Software d8703faf0e CGrammar: Fix #elif and function prototypes 2014-06-10 21:12:09 +00:00
Pragmatic Software 27dd491fe6 CGrammar: Improve initializations 2014-06-10 17:01:43 +00:00
Pragmatic Software 83d0d862f5 c2english.pl: Improve code parsing/function extraction 2014-06-10 14:29:16 +00:00
Pragmatic Software 929d9368fe CGrammar: Fix function call results and improve character constants 2014-06-10 08:50:19 +00:00
Pragmatic Software c4fd8a964f CGrammar: Fix preprocessor and improve for-loops 2014-06-10 06:05:14 +00:00
Pragmatic Software 9992119b11 CGrammar: Improve enumeration translation 2014-06-09 10:18:26 +00:00
Pragmatic Software ffab2c6f3b CGrammar: fix enumerations, improve for-loops and comma operators 2014-06-09 10:00:13 +00:00
Pragmatic Software ec1fd207a6 CGrammar: fix conditional statement, improve structures and do-while loop 2014-06-08 15:59:43 +00:00
Pragmatic Software 6641bc3cf2 More progress on CGrammar.pm 2014-06-08 13:51:29 +00:00
Pragmatic Software ca91e34a25 CGrammar: Significantly improve indentation; minor textual improvements 2014-06-08 06:34:55 +00:00
Pragmatic Software 8e818baa52 Rename global_var_declaration to external_declaration 2014-06-07 13:02:50 +00:00
Pragmatic Software 730120be36 Rough-draft work-in-progress alpha of new C-to-English module 2014-06-07 13:00:07 +00:00
Pragmatic Software 6740522fae Improve cdecl usage message 2014-06-05 21:45:25 +00:00
Pragmatic Software a6b66cb351 Add rpn module 2014-06-04 00:21:48 +00:00
Pragmatic Software 2fd23c7222 Ghost nick through NickServ if already on server 2014-06-01 21:33:31 +00:00
Pragmatic Software eec2433906 Move some responses from /msg to public 2014-06-01 21:32:32 +00:00
Pragmatic Software 33765c6d3a Add -editby to factfind, move some responses from /msg to public 2014-06-01 21:31:54 +00:00
Pragmatic Software 2cb5d60b51 compiler_vm: Convert exit code from octal to decimal; add variables to easily change opening/closing brackets; experiment with using whitespace instead of <> 2014-05-31 16:36:37 +00:00
Pragmatic Software 0302a5328a compiler_vm: Add Win32 named-pipe TCP proxy program 2014-05-31 01:24:22 +00:00
Pragmatic Software 62e11d0b5d compiler_vm: add Win32 VirtualBox server; misc improvements 2014-05-31 01:20:31 +00:00
Pragmatic Software 0b728c9d37 Update docs -- added MODULES file for easy installation of Perl modules 2014-05-31 01:11:04 +00:00
Pragmatic Software b9433127d1 Improve wildcard handling 2014-05-31 01:08:01 +00:00
Pragmatic Software 4696df7ea1 Add subroutines to release and identify nick if necessary 2014-05-31 01:07:29 +00:00
Pragmatic Software 60d8235999 Add registry entry to control max recursion depth for interpreter 2014-05-31 01:05:47 +00:00
Pragmatic Software 7b2fb432c0 Restrict factset add_nick to level 10 2014-05-31 01:04:26 +00:00
Pragmatic Software f463852093 Add registry entry to toggle debugging of IRC module 2014-05-31 01:03:42 +00:00
Pragmatic Software a81ba775fc Restored load, unload, count and histogram commands.
Removed enable/disable commands; use factset instead.

Add default_rate_limit registry entry.

Add newlines to output of DualIndexHashable set() subroutine.
2014-05-24 12:01:59 +00:00
Pragmatic Software 02c0143634 Add factmove command to rename/move factoids between channels 2014-05-23 12:42:23 +00:00
Pragmatic Software c2089562c5 Add registry entry for ChanServ ban timeout 2014-05-23 05:03:54 +00:00
Pragmatic Software 5904a3f1f4 Allow quoting/escaping spaces in grab arguments 2014-05-22 01:24:14 +00:00
Pragmatic Software 35e150d2b6 Optimize ban-evasion logic to significantly reduce number of SQLite queries; add registry entry for debugging ban-evasion 2014-05-21 04:52:17 +00:00
Pragmatic Software 5ba8ab0a4b Do not ban nick-flood on non-channels 2014-05-20 22:24:58 +00:00
Pragmatic Software 5c14727fd1 Add SQLite logger and profiler functionality 2014-05-20 10:17:01 +00:00
Pragmatic Software 39c0cd3fb5 Add registry entry to enable/disable antiflood enforcement 2014-05-20 10:14:09 +00:00
Pragmatic Software f5881de7a1 Improve regfind with better formating in pasted output, and add -showvalues argument. regshow/regfind now show private entry names with value redacted 2014-05-20 03:28:43 +00:00
Pragmatic Software 548b4681ac Add %conf to all module creation; add deop timeout registry entry 2014-05-19 22:59:51 +00:00
Pragmatic Software 40b2393d05 Add registry values to manage showing url titles and compiling blocks 2014-05-19 21:34:24 +00:00
Pragmatic Software ac45cf8036 Timer can now update timeout interval by timer id; add timer interval to registry for LagChecker and MessageHistory_SQLite 2014-05-19 10:30:25 +00:00
Pragmatic Software 710bbb76cc Add registry get_array_value() subroutine 2014-05-19 09:55:47 +00:00
Pragmatic Software 349afd4ae0 Correct enter_abuse_punishment default value 2014-05-19 04:30:36 +00:00
Pragmatic Software 937282a114 Add more values to registry for antiflood and lagchecker 2014-05-19 02:42:18 +00:00
Pragmatic Software 020d512ee4 Minor indentation fix 2014-05-18 22:51:37 +00:00
Pragmatic Software 1cce945412 Remove unnecessary ${} around some objects from previous commit 2014-05-18 20:19:30 +00:00
Pragmatic Software 30e3c5ce35 Remove PBot getter/setters; move anti-flood registry defaults to AntiFlood.pm 2014-05-18 20:09:05 +00:00
Pragmatic Software bf4920b866 Set default identify_password to "none" to avoid empty value in registry 2014-05-18 00:30:51 +00:00
Pragmatic Software e07df35cbf Move command modules out of PBot.pm and into their respective modules
E.g., FactoidCommands.pm is now loaded inside Factoids.pm, etc.

Misc reformatting/refactoring of PBot.pm
2014-05-18 00:27:57 +00:00
Pragmatic Software d955bfa06c Add centralized configuration registry module
Allows changing of bot configuration values without needing to restart
bot instance or needing to edit pbot.pl script.

Registry will initially be populated with default values from pbot.pl,
but if a registry file exists then the registry values will take
precedence over the pbot.pl values. For instance, if you regset the
bot trigger to '%' then the trigger will be '%' even if pbot.pl has '!'
or something else explicitly set.

Some registry items can have trigger hooks associated with them.  For
instance, the irc->botnick registry entry has a change_botnick_trigger
associated with it which changes the IRC nick on the server when a new
value is set via regset/regadd.

Tons of other fixes and improvements throughout.
2014-05-17 20:08:19 +00:00
Pragmatic Software d8d26b1cea Add registerable atexit functionality and trap SIGINT 2014-05-16 22:11:31 +00:00
Pragmatic Software b1cb9fa200 Reduce nick-flood limit to 3 within 30 minutes instead of within 1 hour 2014-05-16 22:10:55 +00:00
Pragmatic Software 2e2188532c Correct logic for Guest nick-change allowance 2014-05-16 05:58:21 +00:00
Pragmatic Software a7681c36cb Don't enforce nick anti-flood for services-mandated changes to Guest nick 2014-05-16 05:53:39 +00:00
Pragmatic Software 591dbd70ab Set generic default export websites in pbot.pl 2014-05-16 04:11:25 +00:00
Pragmatic Software cd54dcb573 Track and handle nick-change events; add anti-nick-flood detection 2014-05-16 00:48:46 +00:00
Pragmatic Software 1f242aeec4 Detect and handle KICK events 2014-05-15 15:49:56 +00:00
Pragmatic Software f8fc04f6e5 Distinct JOIN and DEPARTURE events to improve join-flood detection, etc 2014-05-15 01:39:33 +00:00
Pragmatic Software 92b4ef00cf Improve `recall` command with better capabilities
The nick field is now optional and Getopt::Long is used to accept targeted
options for channel/history, allowing recalls by text/channel for any nick
which is useful when you know what text the message contained but not who
said it.
2014-05-14 21:23:59 +00:00
Pragmatic Software dad69fb0c8 Use AutoInactiveDestroy attribute to fix SQLite I/O error due to DBH handle being destroyed when forked process exits 2014-05-13 20:14:38 +00:00
Pragmatic Software ae6f3a6b3d Don't skip begin_work() if commit() fails 2014-05-13 15:18:33 +00:00
Pragmatic Software 11efde4d0d Comment out some verbose debugging log statements 2014-05-13 15:09:29 +00:00
Pragmatic Software 54ac8ec0ef Convert message history to use SQLite database instead of Perl hashtable
Added MessageHistory.pm and MessageHistory_SQLite.pm.  May eventually port
and add MessageHistory_Hashtable.pm as was done with Quotegrabs, but this is
not particularly high on the todo list.

Antiflood.pm has been updated to use the new MessageHistory API.

The `recall` command has been moved from Quotegrabs into MessageHistory.  It
also now has the ability to ignore messages containing the recall command
itself, for improved usability.

Likewise, the `grab` command will now ignore previous `grab` commands when
grabbing by regex in order to prevent accidentally grabbing previous grab
attempts.

The `join` and `part` commands have been improved to accept multiple channels,
and `part` will use the current channel if none is provided.
2014-05-13 10:15:52 +00:00
Pragmatic Software ae1842e3db compiler_vm: Improve a couple of output sanitization regexs 2014-05-08 13:07:24 +00:00
Pragmatic Software 62d93c76c3 Remove left-over debugging print statements 2014-05-06 05:17:31 +00:00
Pragmatic Software 239e3de8ea Quotegrabs.pm now uses quotegrabs_db API for interfacing with storage backend
Two quotegrabs_db backends are now availble:

  * Quotegrabs_Hashtable.pm: the original hashtable implementation
  * Quotegrabs_SQLite.pm: the new SQLite implementation

Quotegrabs_SQLite.pm is now the default quotegrabs_db backend.

This was done to reduce the memory footprint of the bot by not needing to
keep the entire quotegrabs table in memory any longer.

A similiar change will be coming soon to the Factoids table as well as the
MessageHistory table.
2014-05-06 05:15:27 +00:00
Pragmatic Software 2c2b2c2e4b Truncate all messages beyond MAX_NICK_MESSAGES 2014-05-05 05:18:59 +00:00
Pragmatic Software af447c2614 More nickometer tweaks 2014-05-02 03:57:19 +00:00
Pragmatic Software 8e07eb300e compiler_vm: add -Wshadow; support -include 2014-05-02 00:43:42 +00:00
Pragmatic Software c1fa37f982 Tweaks to nickometer module 2014-05-01 23:20:15 +00:00
Pragmatic Software a0b0cb8a74 Add nickometer module 2014-05-01 03:40:56 +00:00
Pragmatic Software 6de1023ee8 Use Getopt::Long to parse `rq` options 2014-04-30 21:37:28 +00:00
Pragmatic Software cebcafba70 Do not allow RE2 to fallback to PCRE 2014-04-29 17:00:51 +00:00
Pragmatic Software 7fa458ab34 Do not expand `me` or remove trailing punctuation for factset/factchange 2014-04-29 04:05:20 +00:00
Pragmatic Software 595e6a34d2 Use DFA regex engine on user-supplied regexs to avoid potential denial-of-service attacks 2014-04-28 17:20:01 +00:00
Pragmatic Software b35382109c Show random quotegrab: if nick_search begins with "#", assume they meant to specify channel_search 2014-04-28 01:52:49 +00:00
Pragmatic Software 96c57d80e5 Minor updates to various modules 2014-04-26 15:22:46 +00:00
Pragmatic Software db66a47257 Update quotegrabs and factoids data 2014-04-26 15:21:00 +00:00
Pragmatic Software ba8dc5195a Update PBot.html documentation 2014-04-26 15:20:38 +00:00
Pragmatic Software f50fec1f90 Fix failed substitution of undefined variables 2014-04-26 15:19:55 +00:00
Pragmatic Software 76cd4965f1 compiler_vm: allow ()'s around function identifiers; e.g. int (main)(void) {} 2014-04-26 15:17:11 +00:00
Pragmatic Software fc1e372908 Update C-Faq module to use latest questions and links 2014-04-22 15:10:10 +00:00
Pragmatic Software 6dabff19bb Fix ban evasion kicking 2014-04-21 07:26:06 +00:00
Pragmatic Software 8cd59b25da Fix chanop command execution, kick ban evaders 2014-04-19 10:38:16 +00:00
Pragmatic Software b642460d84 Don't allow spaces in factoid keywords 2014-04-19 10:37:03 +00:00
Pragmatic Software 030fed38f2 Allow kicking from private message 2014-04-19 10:35:27 +00:00
Pragmatic Software b3ab3bae8f Remove extraneous debug logging statements 2014-04-19 10:34:21 +00:00
Pragmatic Software f003ff1178 Add `unquote_spaces` factoid module metadata to remove escaped quotes from quotemeta, and allow g modifier to modulelauncher_subpattern 2014-04-19 10:32:49 +00:00
Pragmatic Software 08e300bd54 compiler_vm: bump "Same output" length case to 22 to allow repetitions of "Success (no output)" 2014-04-07 07:24:14 +00:00
Pragmatic Software f347c6d1e3 Update man.pl to use newer manpage, and minor formatting fixes 2014-04-07 05:12:00 +00:00
Pragmatic Software 7367e4f18c Include `action_with_args` in factoids export 2014-04-07 04:50:00 +00:00
Pragmatic Software 736056b586 compiler_vm: Don't display "Same output" unless length of output is greater than 10 characters 2014-04-03 07:54:35 +00:00
Pragmatic Software 8a7c539e0f compiler_vm: print "Same output" only if same output is within 10 minutes of last snippet otherwise print actual output again 2014-04-03 07:47:19 +00:00
Pragmatic Software b2544d9d5a compiler_vm: remember last output per channel and print "Same output." if the current output matches the last output 2014-04-02 23:48:43 +00:00
Pragmatic Software 4e8aa560e8 Use proper letter-casing of nick in recall command results 2014-04-02 01:58:35 +00:00
Pragmatic Software 1ec463f021 compiler_vm: Remember last keyword when chaining together "and" statements in editor
This allows the more natural "replace 'a' with 'b' and 'c' with 'd'" syntax
rather than the previous syntax of "replace 'a' with 'b' and replace 'c' with 'd'"
2014-04-02 00:23:14 +00:00
Pragmatic Software 474f7ed168 Remove compiler_vm ability to execute .gdbinit commands 2014-03-24 15:37:54 +00:00
Pragmatic Software f13adc1500 Fix derp in math.pl 2014-03-24 03:10:08 +00:00
Pragmatic Software cb6d811ba2 Minor improvements to math.pl 2014-03-24 03:05:48 +00:00
Pragmatic Software 2a933bff87 Improve math.pl to support specific math functions (e.g., sqrt, etc) 2014-03-24 02:25:37 +00:00
Pragmatic Software ee3fddf1eb expand_macros.pl doesn't require a nick argument any longer, correct ARGV count 2014-03-22 18:52:54 +00:00
Pragmatic Software 8338b009d4 Properly handle preserve-whitespace; use modulelaucher_subpattern regex to correct whitespace 2014-03-18 14:55:34 +00:00
Pragmatic Software e728276aca Add remove_reader() to SelectHandler and remove unnecessary foreground check from StdinReader's initialize() 2014-03-16 01:47:16 +00:00
Pragmatic Software edd507b2e0 Show channel in quotegrabs getq command 2014-03-15 08:12:52 +00:00
Pragmatic Software 2faeeb2de8 Add -nick/-channel/-text options to quotegrabs rq command (also retaining original syntax) 2014-03-15 08:07:05 +00:00
Pragmatic Software f998f974c0 Truncate module launcher piped result 2014-03-15 01:53:33 +00:00
Pragmatic Software 36b7e1fa6f Improve handling of interpreter result and module execution 2014-03-14 10:05:11 +00:00
Pragmatic Software 4a110848e9 Add SelectHandler class to register callbacks for selecting and reading handles; updating StdinReader to use SelectHandler 2014-03-14 05:51:15 +00:00
Pragmatic Software 1831d0775d anti-flood: Enter abuse now requires 10 seconds or less between messages 2014-03-13 12:00:28 +00:00
Pragmatic Software 087c819069 anti-flood: Add enter-key abuse tracking; use duration() for displaying ban-lengths; save message history after prune 2014-03-12 22:13:05 +00:00
Pragmatic Software f2c556e5c7 Add utility to view/analyze message_history off-line 2014-03-11 00:05:58 +00:00
Pragmatic Software fe020443bb anti-flood: Set hostmask to last known nickserv account when checking accounts until nick without account is found 2014-03-10 08:15:33 +00:00
Pragmatic Software 8afb73acc2 Fix "argument isn't numeric" warning 2014-03-10 06:39:30 +00:00
Pragmatic Software bd3fa4dee3 anti-flood: Improve linking of accounts 2014-03-10 06:28:56 +00:00
Pragmatic Software e808286f24 anti-flood: Now tracks if a user uses different NickServ accounts, and remembers each one for ban-evasion detection 2014-03-10 03:50:02 +00:00
Pragmatic Software e6e02259e4 anti-flood: execute whois command more smartly 2014-03-09 07:15:50 +00:00
Pragmatic Software 3bd73c4866 Improvements to anti-flood message history storage and maintenance 2014-03-09 06:56:48 +00:00
Pragmatic Software 17ed2fb64a Remove extranous ) typo in "Displaying text" string 2014-03-07 16:51:18 +00:00
Pragmatic Software 80a29256ed Fix undefined variable $from when issuing commands from stdin 2014-03-07 16:50:35 +00:00
Pragmatic Software 4bcd485c2e Anti-flood: remove some log messages to reduce noise; fix +q $a:account detection 2014-03-07 16:48:56 +00:00
Pragmatic Software 765e907aa7 Remove single-quotes from found-one-factoid keyword/action 2014-03-07 00:57:08 +00:00
Pragmatic Software bff786666e compiler_vm: Add more standard headers to default set of includes 2014-03-06 21:52:44 +00:00
Pragmatic Software bc261e0965 compiler_vm: Add ability to show/diff/copy another channel's snippet 2014-03-05 19:58:46 +00:00
Pragmatic Software 8cecad56d2 Minor refactor of HashObject initialize sub 2014-03-05 19:30:37 +00:00
Pragmatic Software 21bec3b1e4 Update quotegrabs data 2014-03-05 14:42:44 +00:00
Pragmatic Software e1c4c30743 Slight rewording of join-flood notification message to improve awareness of automatic unbanning 2014-03-05 14:32:24 +00:00
Pragmatic Software d080a6ff89 factshow command now shows module action 2014-03-05 14:30:02 +00:00
Pragmatic Software 42c2554655 Add chanlist command to list channel data 2014-03-05 14:28:58 +00:00
Pragmatic Software a5ae7478e1 compiler_vm: Add $channel argument to separate snippet history into per-channel/nick files 2014-03-04 21:40:51 +00:00
Pragmatic Software 921c9917a5 Add $channel special variable for factoids/modules that expands to $from parameter 2014-03-04 21:40:13 +00:00
Pragmatic Software 2a4c1bafd1 Don't ban if $a:account matches account 2014-03-04 10:50:12 +00:00
Pragmatic Software c1f87bf177 Don't show regex escapes in factfind output 2014-03-04 10:48:08 +00:00
Pragmatic Software ec6f146fa6 Don't show regex escapes in factfind output 2014-03-04 10:47:43 +00:00
Pragmatic Software 62c9477a73 Update factoids (use add_nick for prec/paren, etc) 2014-03-04 10:45:36 +00:00
Pragmatic Software 818ad29914 Remove need to pass nick as command-line parameter to expand/paren modules (use add_nick factoid metadata) 2014-03-04 10:43:28 +00:00
Pragmatic Software 9b2c374bbb Use export_site properly in Quotegrabs.pm 2014-03-03 10:33:34 +00:00
Pragmatic Software f6c75f2b4f Factoids and Quotegrabs HTML exported tables can now be filtered 2014-03-03 09:24:33 +00:00
Pragmatic Software f4275a4cc8 compiler_vm: more compiler output beautification 2014-03-01 20:25:42 +00:00
Pragmatic Software 4d0e23243b compiler_vm: minor beautification of compiler diagnostic output 2014-03-01 14:42:08 +00:00
Pragmatic Software 80a7a82221 Remove extranous flushall from compiler watchdog 2014-02-28 07:52:28 +00:00
Pragmatic Software e72a8c04a2 Remove use of compiler output merger 2014-02-28 07:48:27 +00:00
Pragmatic Software 7a99175bd7 compiler_vm updates
- make compiler_output_merger.pl more resistant to being killed
  - support gcc 4.9.0's -fdiagnostics-show-caret 
    (disable in channel, enable in paste)
  - force a newline to be added to program output to prevent output
    from being buffered by output merger
2014-02-27 16:31:31 +00:00
Pragmatic Software aa00540c8d compiler_vm: Hack to ensure gdb and prog streams are output in the correct order 2014-02-25 11:49:21 +00:00
Pragmatic Software d66d3d2a31 compiler_vm: Add constants to easily customize time-out and nographic options in compiler_server.pl 2014-02-25 11:47:57 +00:00
Pragmatic Software 0b2b18d93a compiler_vm: separate program output and gdb output in watchdog to prevent crossing the streams 2014-02-25 05:40:44 +00:00
Pragmatic Software 91a9c69fa5 Interpreter: check for {} code command before regular commands 2014-02-25 03:47:12 +00:00
Pragmatic Software f6edfce6b4 compiler_vm: Use random fortune instead of Ipsum for default input 2014-02-24 07:25:50 +00:00
Pragmatic Software 6e3dc6dba2 Add `add_nick` metadata key to tell modules to prepend nick to resulting text; unquote all spaces in module arguments 2014-02-24 00:58:00 +00:00
Pragmatic Software 7388bf9cfc Add heartbeat logic to compiler server to detect when vm is booted (prevents unnecessary vm restarts) 2014-02-23 00:56:51 +00:00
Pragmatic Software 38fb275234 Fix error message for bad search term within paragraph in c99std/c11std 2014-02-22 02:42:25 +00:00
Pragmatic Software 4c4bdd9188 Show nick before channel in `rq` command when no quotes found 2014-02-10 18:07:34 +00:00
Pragmatic Software 6d8fac71fb Improve output when no matching quotes found for `rq` command 2014-02-10 18:04:05 +00:00
Pragmatic Software 29316b23ba Update c2english with -f force option, and hide certain errors 2014-02-05 01:13:16 +00:00
Pragmatic Software 5a61f57f3c Use Storable to save/load message history hash
Reuse config_dir/data_dir variable in pbot.pl
2014-02-05 01:10:56 +00:00
Pragmatic Software 0f2616a552 Update paren module to handle ternary conditional operator 2013-12-23 08:48:24 +00:00
Pragmatic Software 8adc766dc4 Improve paren/prec module 2013-12-01 13:36:21 +00:00
Pragmatic Software 9c1a077d2e Allow expand_macros.pl to #include stuff to expand 2013-11-28 05:36:41 +00:00
Pragmatic Software b042e073db Remove #include from expand_macros.pl input 2013-11-28 05:25:54 +00:00
Pragmatic Software d5d4d503b2 Update factoids (added expand) 2013-11-28 05:12:39 +00:00
Pragmatic Software 2323bb89bb Add expand_macros.pl module 2013-11-28 05:11:54 +00:00
Pragmatic Software de89ca61a2 Add n1256.out and n1570.out 2013-11-18 15:00:14 +00:00
Pragmatic Software 489ed21aa0 Add workaround to ensure $##stop_join_flood forwards are removed from unban_timeouts if non-existent 2013-11-17 17:06:54 +00:00
Pragmatic Software ece84c23f8 Remove left-over nick/host lower-casing code 2013-11-17 17:05:20 +00:00
Pragmatic Software ac6d913290 Update parens.py with edk's simplification of parentheses verbosity logic 2013-11-14 17:33:11 +00:00
Pragmatic Software 936d45e04e Improve verbosity of parenthesized precedence in parens module 2013-11-14 15:21:52 +00:00
Pragmatic Software f618b29282 Do not lowercase hostmask/nicks in message history (quotegrab now preserves nick case) 2013-11-14 06:35:40 +00:00
Pragmatic Software d83fbf83db Update factoids and quotegrabs 2013-11-14 06:34:20 +00:00
Pragmatic Software 805215ce81 Add paren.py module (shows precedence of expressions by adding parentheses)
TODO: Add 'show_nick' factoid/module key so nickname logic doesn't need to be
      added to module sources
2013-11-14 06:29:22 +00:00
Pragmatic Software a9adbcf498 Support `+` in `recall` command to recall multiple messages, similiar to `grab` 2013-10-27 07:34:00 +00:00
Pragmatic Software 97261637f1 Add `recall` command 2013-10-26 23:22:25 +00:00
Pragmatic Software 274193bed7 Allow quote grabbers to delete their own grabs 2013-10-26 02:39:54 +00:00
Pragmatic Software b7b9ce76ca Fix potential infinite loop due to not restoring pos value after regex 2013-10-25 07:33:43 +00:00
Pragmatic Software e1588491e3 Improve error messages for `grab` command 2013-10-22 21:30:56 +00:00
Pragmatic Software 1155205f0e Bot now keeps message history for itself -- can now be grabbed for quotegrabs 2013-10-22 18:57:08 +00:00
Pragmatic Software 111847340e Make c2english output slightly more clean 2013-10-19 18:42:05 +00:00
Pragmatic Software c6e67200c1 Run code through gcc for syntax checking before attempting to parse to english 2013-10-19 17:56:43 +00:00
Pragmatic Software aeec4fb2f5 Restore missing "$keyword is $result" when triggering factoid without $ref_from 2013-10-14 17:22:06 +00:00
Pragmatic Software a4def7d653 Fix potential race-condition check-ban issue where a server could send a message immediately after someone is banned, causing them to be falsely detected as evading a ban 2013-10-14 11:53:34 +00:00
Pragmatic Software 6bb3e86f33 Minor improvements to html export css so links aren't as ugly 2013-10-13 10:56:01 +00:00
Pragmatic Software d374fdfc01 Skip channels without factoids in html export 2013-10-13 10:23:49 +00:00
Pragmatic Software b6a09e50e3 Add table of contents to quotegrabs html export 2013-10-13 10:23:20 +00:00
Pragmatic Software 7cf8e91ab2 Fix export command factoids/quotegrabs argument 2013-10-13 10:14:20 +00:00
Pragmatic Software 32385ec691 Fix wrong quote-type for #include derp 2013-10-12 16:35:23 +00:00
Pragmatic Software c91a8e5c3d Fix /say substitution derp that allowed "/say /msg foo bar" to actually invoke /msg rather than saying "/msg foo bar" 2013-10-12 15:06:27 +00:00
Pragmatic Software 02ebf106a8 Add table of contents to factoids html export 2013-10-12 13:52:12 +00:00
Pragmatic Software 37dca64465 Add missing closing html tags to quotegrabs html export 2013-10-12 13:36:36 +00:00
Pragmatic Software aab27f4797 Improve factoids export to use tablesorter 2013-10-12 13:35:57 +00:00
Pragmatic Software fd12d228d8 Improve author(s) column in quotegrab html export 2013-10-12 11:00:29 +00:00
Pragmatic Software 3d233dcdfe Add tablesorter javascript library and related css 2013-10-12 04:39:24 +00:00
Pragmatic Software ba5042259f Improve quotegrab export and touch-up database 2013-10-12 04:35:01 +00:00
Pragmatic Software 701e554ecf Improve quotegrab html export with sortable columns 2013-10-11 18:17:07 +00:00
Pragmatic Software 174e7f71e4 Fix issues with quoted literals and #include statement 2013-10-11 14:50:29 +00:00
Pragmatic Software 272e13236f Preserve empty lines in source 2013-10-07 05:03:03 +00:00
Pragmatic Software bd9e53e77a Split multi-context grabbed nicks to show first nick when displaying such quotegrabs 2013-10-04 22:14:16 +00:00
Pragmatic Software 2cb74ecf95 Add functionality to grab multiple nicks in one quotegrab 2013-10-04 04:55:45 +00:00
Pragmatic Software dc1390fca2 Improve formatting 2013-09-16 10:35:32 +00:00
Pragmatic Software 7decfdf28a Correct devalidation and QUIT event issues 2013-09-14 01:56:00 +00:00
Pragmatic Software 23d2e57527 Added ability to lock factoids to prevent editing; improved detection of ban-evasion by devalidating accounts on part/quit and devalidating existing accounts that match a banmask when a ban occurs 2013-09-13 21:48:19 +00:00
Pragmatic Software d739415a29 Fix show/undo/replace/etc (need args stripped first); undo once again updates last-code record 2013-09-13 11:32:15 +00:00
Pragmatic Software 2720071dbd compiler_vm:
Add compiler flags section to web-pasted output
  Clean up output section in web-pasted output
  Save cc-specific flags (-paste, -nomain, etc) to last-code
2013-09-13 11:03:50 +00:00
Pragmatic Software 8d882a4240 compiler_vm: -paste and -nomain arguments no longer need to be first arguments; fix issue with `replace` command 2013-09-13 09:29:24 +00:00
Pragmatic Software a6a3129171 Preserve comments in code/paste 2013-08-27 12:49:14 +00:00
Pragmatic Software 522b9770dd compiler_vm:
Fix comment stripping logic regarding C89 comments versus C99 comments in code like `int i = 10 //**/ 2\n;`
  Code history now includes argument flags
  Improved regex parsing of diff tags
2013-08-27 00:42:17 +00:00
Pragmatic Software 4adedc2a90 Show "No difference." when code is the same in `cc diff` 2013-08-24 15:01:31 +00:00
Pragmatic Software cb74a9be1e Improved matching of tags in `cc diff` to be less greedy 2013-08-23 22:26:32 +00:00
Pragmatic Software e6ae49fd4f Improve handling of spaces in `cc diff` 2013-08-23 18:26:43 +00:00
Pragmatic Software 36e48cb703 Added `cc diff` command 2013-08-22 20:41:54 +00:00
Pragmatic Software 0e783365d1 Misc updates to modules/compiler_vm 2013-08-16 17:28:17 +00:00
Pragmatic Software a6f608cda5 Don't remove ban_timeout on -q (only +b/-b are tracked); use wildcard host when banning for evasion instead of specific host 2013-08-06 19:56:28 +00:00
Pragmatic Software 2a332d6415 Improve ban-evasion detection 2013-08-03 17:26:49 +00:00
Pragmatic Software edff4b6c4c Update ref_user to use full hostmask instead of just nick; add edited_by/edited_on to factoid metadata levels hash 2013-07-31 13:48:50 +00:00
Pragmatic Software d2d5695dda Add edited_by/edited_on fields when changing factoids; Use full hostmasks instead of just nick for owner/edited_by fields when adding/editing factoids 2013-07-31 13:29:37 +00:00
Pragmatic Software 67e0833f93 Bug-fixes to recent commits 2013-07-30 13:12:21 +00:00
Pragmatic Software 2509bcec64 Fix splitting of IPv6 masks in modes in IRC/Connection.pm
Include channel in "Unbanning ..." message in unban_user
Set target_nickserv_account if accounts match in check_bans
2013-07-30 09:50:59 +00:00
Pragmatic Software 7f2cefea7a Don't check for ban evasion on PARTs 2013-07-28 14:12:57 +00:00
Pragmatic Software d170f75924 Improve ban evasion detection 2013-07-28 10:31:12 +00:00
Pragmatic Software 416115f12f Ban timeouts hash converted to DualIndexHashObject to properly group masks by channels 2013-07-24 12:35:40 +00:00
Pragmatic Software 58d45480a5 Using `grab` command without arguments now properly displays help text 2013-07-24 12:34:13 +00:00
Pragmatic Software 553eceeb77 Fix interpretation of /me commands 2013-07-24 12:33:19 +00:00
Pragmatic Software 2a62729fcc Fix potential infinite loop in "replace all"; show line numbers in diagnostics if using "-paste"; other misc fixes 2013-06-17 22:25:05 +00:00
Pragmatic Software 8d6c2587a8 Show number of matching quotes only if more than one match 2013-06-09 00:04:20 +00:00
Pragmatic Software 0f234734b8 Prepend "/me" to ACTION messages; update Quotegrabs to recognize "/me" messages 2013-06-04 17:09:30 +00:00
Pragmatic Software 8586038f03 Misc updates 2013-06-03 17:04:24 +00:00
Pragmatic Software dc52430044 Add SSL support, and other misc updates 2013-02-25 02:27:24 +00:00
Pragmatic Software abd9fafb87 Update factoids and quotegrabs database 2013-02-13 07:23:01 +00:00
Pragmatic Software 57166ff734 compiler_vm: Handle --version flag 2013-02-05 11:14:19 +00:00
Pragmatic Software 3d492ed76b Allow function argument list to be empty; e.g., int main() { code } 2013-02-01 23:35:11 +00:00
Pragmatic Software e846f24716 Rename -naked to -nomain; fix issue with function prototypes 2012-12-30 08:14:27 +00:00
Pragmatic Software 9205736b3f Don't add {}'s around single statements following if/for/etc; add -naked flag to prevent wrapping code with a main function 2012-12-29 16:19:51 +00:00
Pragmatic Software e93ac26062 compiler_vm: Warn about #defines not terminated with \n 2012-11-21 19:01:10 +00:00
Pragmatic Software d5e5f2c728 Reposition `*` character in function regex to be consistent 2012-11-19 15:57:54 +00:00
Pragmatic Software c8d77ed230 Replace `A-Z0-9_` in function regex with `\w` to slightly improve readability 2012-11-19 15:52:07 +00:00
Pragmatic Software a6a2b3eeb3 Minor clean-up of previous commit to remove unnecessary substitutions 2012-11-19 15:45:13 +00:00
Pragmatic Software 1d7791d9a5 compiler_vm: Improve extraction of function parameters containing parentheses 2012-11-18 19:18:56 +00:00
Pragmatic Software 3f771df8bc compiler_vm: added -paste flag to send formatted source/output to paste site and show link instead of output; e.g. `cc -paste <code>` --> http://somepastesite.com 2012-11-14 18:36:04 +00:00
Pragmatic Software 39a38b58f8 Triggering non-existent factoids now attempts to factfind (for keywords and text) before trying a levenshtein closest match (of keywords) 2012-11-04 20:42:38 +00:00
Pragmatic Software b8d2d0797e compiler_vm: Show output from program when using `paste` command
google search: Show "No results found" if no results found
c99std/c11std: Minor clean-up of output
2012-11-02 22:08:20 +00:00
Pragmatic Software 208f89837f Improve handling of auto-op and op-commands on per-channel basis
Restore functionality to log out admins when they part/quit
Improve display of quit messages in log
2012-10-27 21:03:10 +00:00
Pragmatic Software f16dedf680 compiler_vm: add script to mount/umount qcow2 for editing 2012-10-24 12:29:00 +00:00
Pragmatic Software 4602c3b732 compiler_vm: Pass host date to guest
Replace "Killed" with "[Killed]"
             Don't print empty '' after unprintable char values
             Set default language in compiler_client.pl to C11
2012-10-24 12:26:18 +00:00
Pragmatic Software 7f8b39d20a compiler_vm: Limit cpu usage and kill processes using excess cpu 2012-10-07 17:48:18 +00:00
Pragmatic Software f61bb61aeb Channels: Properly check for arguments to chanadd/chanrem
HashObject: Fix potential divide by zero
compiler_vm: Limit cpu usage and kill processes using excess cpu
             Unbuffer stdout
2012-10-05 01:59:04 +00:00
Pragmatic Software 65660625c2 Added dice_roll.pl module, and updated others 2012-09-18 01:32:07 +00:00
Pragmatic Software bf91c67346 compiler_vm: improve parsing/function extraction 2012-09-17 07:12:16 +00:00
Pragmatic Software 2b5ff48a4c Interpreter: tell <nick> about <command> now case-insensitive
AntiFlood: Correct use of ignore list
IgnoreList: Ignoring user without args now permanent instead of 5 mins
            Save time when ignore expires instead of seconds remaining
            Improve output of `ignore list` command for readability
2012-09-06 10:09:44 +00:00
Pragmatic Software a0bcdfef2f compiler_vm: improve parsing of cpp and functions (properly handle \n) 2012-09-03 18:48:47 +00:00
Pragmatic Software 7ed26f928e compiler_vm: fix \n after #include directives 2012-09-03 07:02:17 +00:00
Pragmatic Software a4cf4136ee compiler_vm: Improve handling of \n in quoted literals 2012-09-01 05:20:01 +00:00
Pragmatic Software ccf1d35a54 Improvements in interpreter; tell <nick> about <command>; etc 2012-08-23 22:50:07 +00:00
Pragmatic Software 09cb762c6f compiler_vm: update client to remove duplicate warnings/infos; typeof('a') should be int; misc output clean-ups 2012-08-18 03:28:10 +00:00
Pragmatic Software da3e05bc72 Prevent gcc from optimizing away gdb() call 2012-08-16 01:17:28 +00:00
Pragmatic Software 6b35dc210c Skip message containing grab command when grabbing own nick; match brackets for compiler-block; etc 2012-08-12 16:41:38 +00:00
Pragmatic Software cb770d81ac Grab most recent quote by regex instead of oldest first 2012-08-01 11:06:01 +00:00
Pragmatic Software 876d9fb5c6 Improved grab command to accept regex for history 2012-08-01 09:57:43 +00:00
Pragmatic Software 52b23418e2 Updated factoids and quotegrabs data 2012-07-22 19:27:37 +00:00
Pragmatic Software 8a70c06096 Misc bug fixes and tweaks 2012-07-22 19:22:30 +00:00
Pragmatic Software dad1bf978e compiler_vm: improved function extraction (missed a spot) 2012-03-21 16:02:02 +00:00
Pragmatic Software 0e957ba414 compiler_vm: improved function extraction 2012-03-21 15:58:07 +00:00
Pragmatic Software 2fc11ea1fd compiler_vm: disregard this commit 2012-03-21 15:54:43 +00:00
Pragmatic Software 5066f348a1 compiler_vm: added support for splint 2012-03-12 03:33:54 +00:00
Pragmatic Software b30216d8ec compiler_vm: restored stdin input, improved error output, reset vm only on timed-out for improved speed 2012-02-29 01:10:12 +00:00
Pragmatic Software 38166bd14d compiler_vm: reset vm only on time-outs to improve response speed 2012-02-25 08:30:49 +00:00
Pragmatic Software 58a592c86f compiler-vm: use astyle with file instead of stdin to avoid astyle bug; add lorem ipsum default -input text 2012-02-15 22:00:58 +00:00
Pragmatic Software 4e52d77f61 compiler_vm: improved macro parsing; replace newlines outside of quoted text 2012-02-11 05:05:49 +00:00
Pragmatic Software a2e2d15fc7 compiler_vm: added libc fatal errors; trace program only on signal 2012-02-09 18:48:45 +00:00
Pragmatic Software 4efa96dbbe docs: updated PBot.html 2012-02-05 18:27:04 +00:00
Pragmatic Software 11923967cf compiler_vm: watchdog debug output includes commands sent to gdb, fflush stdout on breakpoints 2012-02-04 20:34:55 +00:00
Pragmatic Software e3ec59322e compiler_vm: watchdog wraps more gdb output with <> 2012-02-04 06:02:52 +00:00
Pragmatic Software 56bd0e9101 compiler_vm: added trace() macro to trace function calls 2012-02-03 17:54:52 +00:00
Pragmatic Software e2e54079ae compiler_vm: improved abormal signal handling 2012-02-02 18:28:24 +00:00
Pragmatic Software fd1f18850a compiler_vm: updates (needs refactoring, pronto) 2012-02-02 04:14:38 +00:00
Pragmatic Software 22b43f21bf compiler_vm: updated gdb parsing (still needs refactoring) 2012-01-31 05:32:24 +00:00
Pragmatic Software d56aaeebca compiler_vm: updated to show local vars if no output, etc 2012-01-29 23:50:33 +00:00
Pragmatic Software 84f2f979a6 compiler_vm: rewrote watchdog to execute within gdb; added dump(), ptype(), watch() macros 2012-01-28 07:39:13 +00:00
Pragmatic Software 2830147338 Added missing encode_entities to c99/c11std generation 2012-01-23 22:33:13 +00:00
Pragmatic Software 59e100a44c Updated c99std and c11std to index footnotes 2012-01-23 22:24:51 +00:00
Pragmatic Software e5028eded6 Updated genstd.pl and n1256.txt/n1570.txt to improve parsing/detection of unparsed sections 2012-01-17 02:07:01 +00:00
Pragmatic Software 4e9774422b Updated c11std and c99std to properly index appendices 2012-01-17 00:08:26 +00:00
Pragmatic Software 1ba8750e0b Adding n1256.html and n1570.html 2012-01-16 15:40:30 +00:00
Pragmatic Software 0c8bc4f682 Added c99std and c11std commands. Now indexes FOREWORD, INTRODUCTION and appedices. 2012-01-16 15:34:32 +00:00
Pragmatic Software 0c9a9cccd2 google search module: decode HTML entities in result titles 2012-01-05 11:04:55 +00:00
Pragmatic Software cf0fead036 compiler-vm: added -input flag for providing stdin input; added %b printf specifier to print base-2; bug-fixes 2011-12-30 23:20:29 +00:00
Pragmatic Software dd7f84ceff bantracker: track +q and +b separately to prevent loss of information
bantracker: do not ban someone if their hostmask matches their +q mask
bantracker: remove ban timeouts on -q/-b
antiflood: unbanme will not work if manual ban/quiet set in place
2011-12-17 11:43:21 +00:00
Pragmatic Software 1d691caeb9 factoids: don't show nick prefix if has action_with_args; updated factoids
interpreter: don't expand $nick in result for all commands
2011-12-17 00:30:44 +00:00
Pragmatic Software d7dc16346c ban-tracker: track whether ban is +q or +b; do not ban evaders of generic +b bans ending with !*@*
anti-flood: improved logic of catching ban evaders
2011-12-15 06:18:10 +00:00
Pragmatic Software 49561130e5 factoids: improved 8ball response, etc 2011-12-15 06:13:21 +00:00
Pragmatic Software 3d0f763253 factoids: added hugs/hugs_response; aliased pokes, pets, spanks, slaps, hugs, etc 2011-12-13 04:43:57 +00:00