mirror of
https://github.com/agessaman/meshcore-bot.git
synced 2026-04-27 11:25:27 +00:00
13c10fd1a5
Adds a new !fortune command that picks a random fortune from a configured BSD-format fortune file (entries separated by a line containing only %). The parser handles: % as separator or terminator, multi-line fortunes, trailing whitespace, and % embedded mid-line. Path validation via validate_safe_path() blocks path traversal before any file open. Command is auto-discovered by the plugin loader. Config section [Fortune_Command] added to config.ini.example with enabled and file keys. Default file: data/fortune/fortunes.txt. 22 tests cover: parsing edge cases, security path rejection, can_execute enable/disable, execute happy path, empty file fallback, and plugin metadata. Fortune file: BSD V8-fortunes (fortunes-freebsd-classic) Source: https://github.com/HubTou/fortunes-freebsd-classic 1,903 fortunes drawn from the classic BSD UNIX fortune database. Content note -- data/fortune/fortunes.txt (1,903 fortunes): No racist, lewd, or pornographic content found. Six lines flagged during review as mildly coarse; retained but noted here for reference in case a future maintainer wishes to remove them: L1763: Some days chicken salad -- some days chicken shit. L2289: We retard what we cannot repel, we palliate what we cannot cure. -Johnson L3009: In New York they signal the wrong way just to fuck you up. -David Yost L3161: Sure [Somoza]'s a son-of-a-bitch, but he's OUR son-of-a-bitch. -F.D. Roosevelt L3305: When better machines are built, jks will break them, and td will bitch about it. L3589: It's the thought, if any, that counts! -Dick Grantges ("Dick" is a proper name, not a slur)