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

328 Commits

Author SHA1 Message Date
Pragmatic Software
af2d9844b8
Interpreter: allow processing of empty result
This fixes .e.g.:

    <pragma-> !echo foo &{echo bar | { sed s/bar// }} baz

such that it produces the output "foo  baz" instead of no output at all.
2024-11-02 17:53:37 -07:00
Pragmatic Software
f680439d47
Plugin/Wordle: add guesses subcommand 2024-10-31 00:55:31 -07:00
Pragmatic Software
e7d3a543c4
Update factoids
Amazing factoids being created in #wordle by JAA and emanuele6.

jaa-guesses2wordles: /call wordles &{jaasolve-state2pattern &{jaa-guesses2state '&{wordle guesses | {stripircformatting}}' $arg[-1]}} &{wordle info | {sed s/ \(.*$//} | {sed s/^.* //}}

jaa-guesses2state: /code sh shopt -s extglob; declare -A _m=(\* G \? Y \  B);_w=" ${1//ẞ/ß}" _w=${_w,,} _o=; while [[ "${_w}" ]]; do _g= _r= _w=${_w:1}; while [[ "${_w}" == ' '?[\ ?*]* ]]; do
_g+=${_w:1:1} _r+=${_m["${_w:2:1}"]} _w=${_w:3}; done; _o=$_o${_o:+.}$_g.$_r; done; _o=${_o%.+([^.]).+(G)}; for ((_i = ${2:-0}; _i > 0; --_i)); do _o=${_o%.+([^.]).+([GYB])}; done; printf %s\\n "$_o"

wsg: /call call &{func grep wordle wordle &{wordle start &{clength $arg[0]} $arg[1]}} guess $arg[0]

clength: /code sh printf %s "${#1}"

rspray: /call func sed s/Le.*?:.*?@//g Le:&{wordle start}@&{wordle guess &{rw}}@&{wordle guess &{rw}}@&{wordle guess &{rw}}@&{wordle guess &{rw}}

rw: /code sh _len="${1:-5}" ; _list="${2:-american}" ; grep -P ^.{$_len}$ /usr/share/dict/$_list | shuf -n 1

Also megaspray, megasolve, jaasolve, wsgl, and more!
2024-10-30 19:18:18 -07:00
Pragmatic Software
d8a284e9c1
Core/Interpreter: preserve newlines in commands 2024-10-30 16:37:20 -07:00
Pragmatic Software
e5e0f26b90
applets/pbot-vm: minor fixes
* set `preserve_escapes` to 0 in guest/_c_base.pm so escapes are stripped in:

     <pragma-> ,show testcargs
     <candide> [global] testcargs: /code c11 printf("/say args: " ); while
               (*++argv) printf("[%s] " , *argv);
     <pragma-> ,testcargs foo\'bar baz\'qux
     <candide> args: [foo\'bar] [baz\'qux]

  to produce the desired output of:

     <candide> args: [foo'bar] [baz'qux]

* set `keep_spaces` to 1 in host/_default.pm since it turns out that in some
  languages unquoted spaces are significant, e.g. in `sh ${1%  *}` to strip
  text following two spaces. Without `keep_spaces` enabled, `sh ${1%  *}`
  becomes `sh ${1% *}` and strips all text following one space instead of two.
2024-10-30 15:43:38 -07:00
Pragmatic Software
f4caf44eb0
split_line(): Remove no longer used next_ch/last_ch 2024-10-29 12:49:19 -07:00
Pragmatic Software
4287cb9fa2
Fix split_line() quoting to be more sh-like
E.g.:

<pragma-> show testcargs
   <PBot> [global] testcargs: /code c11 printf("/say args: " ); while (*++argv) printf("[%s] " , *argv);
<pragma-> testcargs 'hello''world' 'how are 'you today
   <PBot> args: [helloworld] [how are you] [today]

Previously, adjacent 'foo''bar' would end up as 2 args like [foo] [bar]. Now
they are properly concatenated into one [foobar] argument.

This also fixes the cases of whitespace being inserted after quoted arguments.
2024-10-29 10:19:46 -07:00
Pragmatic Software
4a025801a2
applets/pbot-vm: disregard IRC text modifiers when escaping unprintable characters 2024-10-27 12:52:15 -07:00
Pragmatic Software
f2068a4baf
Plugin/AntiHello: update regex 2024-10-25 17:51:16 -07:00
Pragmatic Software
2c7dcafba5
Plugin/AntiHello: save offense counters to storage 2024-10-25 16:01:08 -07:00
Pragmatic Software
f542cc0cf2
Core/Factoids: top20: show only defined edited-by for edited sub-command 2024-10-23 22:32:27 -07:00
Pragmatic Software
4345b0a75c
Core/Factoids: update edit-by when factadd -f; add edited to top20 2024-10-23 21:36:21 -07:00
Pragmatic Software
673c468159
applets/cjeopardy: add more alternative answers 2024-10-23 12:34:27 -07:00
Pragmatic Software
abdb88c7b3
Plugin/Wordle: add solved-by to info and guess 2024-10-23 11:59:03 -07:00
Pragmatic Software
7db191e7c2
applets/cjeopardy: add alternative answers tor postfix/prefix questions 2024-10-22 10:47:20 -07:00
Pragmatic Software
755d7bd6c0
Bug fixes
general.debugcontext: filter out cmdlist and arglist

Core/Applets: log applet start/stop and duration

Core/ProcessManager: fix potential race-condition with $context object

Core/Interpreter:

    * expand pronouns before command-substitution
    * attempt to find current channel's factoid instance for metadata
    * remove duplication of command history in command-substition
    * terminate pipe/substitution processing when protecting self

Core/Factoids: limit -url contents to 250kb
2024-10-22 09:50:10 -07:00
Pragmatic Software
521e8850b0
Core/IgnoreList: allow specifying nickname as channel argument to ignore private messages 2024-10-15 20:05:24 -07:00
Pragmatic Software
597820c053
Core/Factoids: properly restore invalid $variable expansions 2024-10-15 19:56:04 -07:00
Pragmatic Software
71a4c4c331
Plugin/Wordle: add info command; minor tweak to start error-handling 2024-10-15 11:54:32 -07:00
Pragmatic Software
d29a60978e
Plugin/Battleship: improve ship placement
Same-player ships will no longer be aligned end-to-end in the same orientation
to appear like one long ship.

There will no longer always be an even amount of horizontal and vertical ships
for each player.
2024-10-06 01:34:04 -07:00
Pragmatic Software
a2b5162290
Plugin/Battleship: perform attacks in command-order instead of player-order 2024-10-05 14:19:05 -07:00
Pragmatic Software
646a7f8e7f
Factoids: move /code to after action processing 2024-10-04 22:34:02 -07:00
Pragmatic Software
bb1b43b089
applets/wiktionary: refactor relations 2024-10-02 20:13:45 -07:00
Pragmatic Software
68bd1e4d86
applets/wiktionary: add -r flag for relations 2024-10-02 18:50:56 -07:00
Pragmatic Software
9192b7bfad
pbot-vm: Preserve escapes in -args and -stdin 2024-10-01 13:08:52 -07:00
Pragmatic Software
a453518fab
AntiFlood: add some missing nickserv account case normalization 2024-09-28 12:19:37 -07:00
Pragmatic Software
50ca5b57f6
Remove TypoSub from plugin_autoload 2024-09-23 11:27:04 -07:00
Pragmatic Software
fcaa2d3044
Plugin/Wordle: add missing Italian words and vowel; fix German translation 2024-09-22 17:05:46 -07:00
Pragmatic Software
635f2c5a00
Update factoids 2024-09-19 13:57:20 -07:00
Pragmatic Software
e39c9ea3ad
WebPaste: sprunge.us dead 2024-09-19 13:56:23 -07:00
Pragmatic Software
6d10a146ed
applets/c2english: improve text of function calls 2024-09-19 13:55:08 -07:00
Pragmatic Software
7da755d248
pbot-vm: make clang2x default language; add -Wno-unused-variable 2024-09-19 13:51:57 -07:00
Pragmatic Software
002f7a23d1
Plugin/AntiHello: always send private message warning 2024-09-08 17:17:47 -07:00
Pragmatic Software
13c117e360
pbot-vm: remove/replace -Wno-unused with -Wno-unused-parameter 2024-08-17 22:17:46 -07:00
Pragmatic Software
1b9e482396
Plugin/Wordle: refactor how wordlist is (not) reloaded 2024-08-13 00:07:13 -07:00
Pragmatic Software
ac8753f962
Plugin/Wordle: do not reload words from disk until wordlist changes; add british and urban to supp for English lists 2024-08-12 12:43:20 -07:00
Pragmatic Software
b31aa7a816
AntiAway/AntiHello: added "2nd offense" text to warning kick message 2024-08-10 14:02:58 -07:00
Pragmatic Software
de42067e28
Plugin/AntiHello: update greeting regex 2024-08-07 15:51:01 -07:00
Pragmatic Software
1986da2a4b
Plugin/AntiHello: update greeting regex 2024-08-07 15:29:17 -07:00
Pragmatic Software
dd4be2184c
Add Plugins/AntiHello to warn about stand-alone greetings in large channels 2024-08-07 14:48:05 -07:00
Pragmatic Software
e96e48562c
Plugin/WordMorph: improve start message 2024-08-03 00:00:07 -07:00
Pragmatic Software
58303f6b97
Plugin/AntiAway: unregister irc.public when unloading 2024-07-23 11:38:16 -07:00
Pragmatic Software
4cf8583a1e
Plugin/AntiAway: improve logic of temp-ban warning 2024-07-22 13:56:44 -07:00
Pragmatic Software
a0a61ff0d5
Plugin/AntiAway: monitor PRIVMSG for away nicks 2024-07-22 13:47:30 -07:00
Pragmatic Software
88518a21df
Update factoids 2024-07-11 13:54:40 -07:00
Pragmatic Software
6ac157d42d
applets/c2english: make some rules more aware of expressions 2024-07-10 12:46:56 -07:00
Pragmatic Software
c1847efc35
applets/wiktionary: remove pluralization of parts of speech 2024-06-29 12:04:37 -07:00
Pragmatic Software
ff31d71024
applets/wiktionary: add part of speech filter option 2024-06-29 11:33:11 -07:00
Pragmatic Software
dfd56aed57
Plugin/AntiRepeat: increase min length to allow "thanks"/"thank you" 2024-06-28 18:51:37 -07:00
Pragmatic Software
6722fd7f8d
Store user passwords as salted hash digests
This was way overdue. User passwords are no longer stored as cleartext.

When PBot is restarted after applying this commit, all stored passwords will
be converted to salted hash digests.

The `useradd`, `userset` and `my` commands will now hash passwords.

Why did it take me so long to finally get around to hashing passwords
properly, you might ask. The reason why this wasn't done sooner is because
all of my users used hostmask-based `autologin`. The passwords that PBot
randomly generated were ignored and never used.

I do regret that it took me so long to get around to this, for those of you
who might be using custom passwords instead of hostmask-based `autologin`.
2024-06-22 22:38:15 -07:00