3
0
mirror of https://github.com/pragma-/pbot.git synced 2025-09-26 22:27:23 +02:00

391 Commits

Author SHA1 Message Date
Pragmatic Software
f54efb0864
Improve LagChecker
- wait until fully connected (irc.welcome) before sending PING
- do not send another PING until PONG is received

These changes prevent the bot from sending multiple PINGs when the
ircd is heavily lagging. The multiple PINGs would queue up and then
get sent all at once when the ircd unlagged, potentially causing an
excess-flood disconnection.
2025-09-25 15:04:21 -07:00
Pragmatic Software
3219c3d008
Improve code-factoids
- now processes command substitutions, pipes, and splits
- indentation and newlines preserved
2025-09-25 01:14:10 -07:00
Pragmatic Software
8f1ac5b5ba
Factoids: variable expansions update ref-count and last-referenced 2025-09-25 01:03:17 -07:00
Pragmatic Software
49b926c372
Commands/Factoids: factchange handles newlines; factadd $0-data exempted from recursion limit 2025-09-24 10:54:40 -07:00
Pragmatic Software
fe31b630e9
applets/pbot-vm: Multiple improvements
- host/lib/SplitLine: preserve \t tabs
- host/lib/InteractiveEdit: encode history as JSON to preserve newlines
- host/lib/Languages/_default: strip joined space following newlines
2025-09-24 10:50:25 -07:00
Pragmatic Software
091f6b101e
Plugin/Wordle: hard now shows whether hard mode was already enabled/disabled 2025-09-14 07:57:45 -07:00
Pragmatic Software
2011275f27
Quotegrabs/Storage: remove unused import 2025-09-04 10:30:31 -07:00
Pragmatic Software
0fb4cd7fa7
Plugin/ActionTrigger: enable triggering on bot messages 2025-09-04 10:29:29 -07:00
Pragmatic Software
cdef9e5fe8
Core/IRC/Connection: dispatch pbot.public/pbot.caction events for bot messages 2025-09-04 10:27:57 -07:00
Pragmatic Software
6147a5afc7
Plugin/Wordle: add solved duration 2025-09-04 10:26:53 -07:00
Pragmatic Software
3d7a98b611
Plugin/AntiHello: remove initial ban warning 2025-09-04 10:26:02 -07:00
Pragmatic Software
9cf4b18538
Factoids: Restrict recursion depth for commands that modify factoids (factadd, factchange, etc) 2025-09-04 10:24:55 -07:00
Pragmatic Software
4e69444be0
Core/Interpreter: process cmd-pipes at correct stack-depth 2025-08-25 06:19:17 -07:00
Pragmatic Software
55831b3d4a
applets/trans: make Bing default engine; misc improvements 2025-08-25 04:36:02 -07:00
Pragmatic Software
8fdd51bc9a
Core/Interpreter: simplify ref_from 2025-07-30 15:51:09 -07:00
Pragmatic Software
d5aa7f9e41
Core/Interpreter: improve command splitting and substitutions 2025-07-29 13:39:11 -07:00
Pragmatic Software
27db494f85
applets/cdecl.pl: show usage when command is invalid 2025-07-20 07:39:20 -07:00
Pragmatic Software
675a723d57
applets/trans.pl: improve options parsing 2025-07-20 05:57:12 -07:00
Pragmatic Software
9d29336cb2
applets/qalc.pl: make qalc safe 2025-07-20 00:58:37 -07:00
Pragmatic Software
4582e225e5
applets/trans.pl: whitelist allowed options 2025-07-19 12:24:31 -07:00
Pragmatic Software
66ce01a0c3
applets/trans.pl: restrict allowed options 2025-07-19 09:18:45 -07:00
Pragmatic Software
cff8d5fe70
Plugin/Wordle: display hard-mode status in info 2025-07-19 08:55:21 -07:00
Pragmatic Software
8752349210
applets/trans.pl: disallow -pager 2025-07-19 08:54:38 -07:00
Pragmatic Software
4525cb95d1
Plugin/Worlde: track nonword and invalid guesses 2025-07-08 22:41:19 -07:00
Pragmatic Software
30ac705d99
Plugin/Wordle: fix hard mode minimum letter requirements; test hard mode validation before word existence check; replace "is not" with "can't be" 2025-07-02 14:45:25 -07:00
Pragmatic Software
b61dbe17c6
Plugin/Wordle: add toggleable hard mode 2025-06-26 23:21:48 -07:00
Pragmatic Software
722408d95e
Factoids: rename top20 to top50 and add "referenced" subcommand 2024-11-30 16:47:13 -08:00
Pragmatic Software
4162c06fe4
Commands/ChanOp: silly kick-message shenanigans 2024-11-30 16:40:33 -08:00
Pragmatic Software
f172563fdc
Utils/SQLiteLogger: update log() to use subroutine signatures 2024-11-30 16:26:52 -08:00
Pragmatic Software
80bc79cfbc
Plugin/Wordle: always have last word/guess in info 2024-11-27 16:51:02 -08:00
Pragmatic Software
6ba8776c2c
Plugin/Wordle: keep game state after giveup 2024-11-27 16:15:09 -08:00
Pragmatic Software
001f2024c4
Factoids: add default value modifier
Uses POSIX shell parameter expansion syntax.

    <pragma-> !factadd cookie /me gives a cookie to ${args:-nobody. What a shame}!
       <PBot> cookie added to the global channel.

    <pragma-> !cookie Bob
            * PBot gives a cookie to Bob!

    <pragma-> !cookie
            * PBot gives a cookie to nobody. What a shame!

    <pragma-> !factadd sum /call calc $arg[0]:-1 + $arg[1]:-2
       <PBot> sum added to the global channel.

    <pragma-> !sum
       <PBot> 1 + 2 = 3

    <pragma-> !sum 3
       <PBot> 3 + 2 = 5

    <pragma-> !sum 4 6
       <PBot> 4 + 6 = 10
2024-11-27 12:17:45 -08:00
Pragmatic Software
917cae2ffb
Plugin/Spinach: fix players exit game on /part and /quit 2024-11-22 03:17:39 -08:00
Pragmatic Software
7a7730d039
Interpreter: improve processing of embedded and split commands 2024-11-21 20:31:28 -08:00
Pragmatic Software
bea5aa071b
Plugin/Spinach: improve lie count log 2024-11-21 20:28:50 -08:00
Pragmatic Software
5f4b2989a1
Factoids: fact no longer adds ref channel to output 2024-11-21 20:21:14 -08:00
Pragmatic Software
947082f2a2
Plugin/ActionTrigger: don't handle events already processed by another command 2024-11-21 16:05:44 -08:00
Pragmatic Software
888da7dda1
Factoids: move enabled check to before /call 2024-11-15 01:15:37 -08:00
Pragmatic Software
c6433a662f
Commands/Factoids: remove "not owner" restriction on factset/factunset 2024-11-14 01:21:48 -08:00
Pragmatic Software
5bca8c7d16
Plugin/Spinach: Improvements 2024-11-13 21:43:22 -08:00
Pragmatic Software
343dbae57e
Plugin/Spinach: add help text; minor clean-ups 2024-11-10 18:39:14 -08:00
Pragmatic Software
dbff4bc2f7
Interpreter: reset split_result after processing it
This fixes e.g.:

    <pragma-> ,{echo foo ;;; echo bar}  ,{echo baz}
       <PBot> foo bar
       <PBot> foo baz

To instead produce the expected:

    <PBot> foo bar
    <PBot> baz
2024-11-10 17:45:33 -08:00
Pragmatic Software
72ac68fb02
Plugin/Spinach: rounds/questions/bonus rounds now configurable via settings
The number of rounds, questions and bonus rounds are now all configurable via
`spinach set settings`.

Refactored states to not transition of a false value is returned, to eliminate
all explicit "wait" states.
2024-11-09 20:54:10 -08:00
Pragmatic Software
22771fabf6
Plugin/Spinach: massive refactor
Refactored ridiculous large per-round/per-question state transitions and
subroutines into a much more manageable and simpler state machine.

Now can easily and trivially adjust maximum rounds and maximum questions
by editing $self->{game} hashtable entries. TODO: make this configurable
via `spinach set`.

Replaced "/msg me" with "/msg $botnick" throughout.

Adjusted lie validation:

  * If all words of lie are found within solution and word-count of lie is
    less than word-count of solution, then game will say "So-and-so has found
    part of the truth!"

  * If lie is 20%-or-less different to the solution, then game will say
    "So-and-so has misspelled the truth!"
2024-11-08 23:29:52 -08:00
Pragmatic Software
a11dc12861
Interpreter: remove debug message 2024-11-07 19:47:02 -08:00
Pragmatic Software
e325138249
Plugin/Spinach: correct round1q3 state transition 2024-11-07 19:46:30 -08:00
Pragmatic Software
a262139fd2
Factoids: require locked to be exactly 1 to invoke commands with required_caps
This allows us to set `locked` to a value greater than `1` to lock a factoid WITHOUT
allowing invocation of `required_caps` commands. This lets us safely lock a factoid
that has unrestrained `$args` or variables.
2024-11-07 01:45:15 -08:00
Pragmatic Software
12ec8bb77c
Factoids: don't add nick if add_nick defined and set to 0 2024-11-06 22:51:29 -08:00
Pragmatic Software
54ef6b14ce
Plugin/Date: use existing context when launching date applet
This preserves the pipe/cmd-substitution/etc to allow post-processing
of the `date` output.

Interpreter: Reset `interpreted` contextual metadata when handling
result to allow recursion for continued command processing.
2024-11-05 23:57:48 -08:00
Pragmatic Software
7f49321e29
Commands/Factoids: fix unsetting locked on factoids with cap-override 2024-11-05 16:55:53 -08:00