Skip to content

import: chat & messaging batch (6 scripts)#1

Merged
Aybook merged 1 commit into
masterfrom
import/chat-and-messaging
May 6, 2026
Merged

import: chat & messaging batch (6 scripts)#1
Aybook merged 1 commit into
masterfrom
import/chat-and-messaging

Conversation

@Aybook
Copy link
Copy Markdown
Contributor

@Aybook Aybook commented May 6, 2026

First import batch. Pulls six chat and messaging scripts from upstream luadch/scripts (dead since 2022-08), each at its highest version, BOM-stripped where the upstream file shipped one, prefixed with a provenance header pointing back at `docs/IMPORT_NOTES.md`.

Scripts in this PR

Script Upstream version Function
`bot_advanced_chat` v0.5 (multi) Advanced chat bot with history, members table, pm2op forward
`etc_messenger` v0.4 (english) Bot-style PM messaging with delivery queue
`etc_blackboard` v0.2 (multi) Shared bulletin board, persistent
`etc_wunschbrett` v0.2 (multi) Wishlist / request forum, persistent
`etc_mainecho` v0.3 (english) Main-chat echo with exclude-trigger table
`ptx_poll_bot` v3.0 (english) Polling / voting bot, persistent

Layout

Files mirror the hub's `scripts/` directory layout so wholesale install (`cp -r repo/scripts/* hub/scripts/`) just works:

  • `scripts/.lua`
  • `scripts/lang/.lang.{en,de}` for the localised ones
  • `scripts/data/_<...>.tbl` for state files (most scripts)
  • `scripts//...` for scripts using a script-named state subdir (etc_blackboard, etc_wunschbrett)

State files ship empty / default so the directories exist at first save.

Normalisation

`etc_wunschbrett` upstream literally set `scriptname = "etc_wunschbrett_v0.2"` (with version baked into the identifier), and the lang files matched (`etc_wunschbrett_v0.2.lang.{en,de}`). On import, normalised to `etc_wunschbrett` plus matching lang filenames; comment in the file documents the change.

Audit

  • Lua 5.4 patterns checked across the batch: zero hits for `setfenv` / `getfenv` / `loadstring` / `unpack` / `module(...)` / `os.execute` / `io.popen` / `debug.` / 1-arg `os.difftime` / `math.atan2` / `math.pow` / `math.log10`. The luadch sandbox API kept users on `hub.` / `cfg.` / `util.` so direct stdlib usage is rare.
  • BOMs at file head: present on all six upstream files; stripped on prepend so the surviving content has the provenance header at offset 0 with no mid-file BOM.

Test plan

  • Drop scripts into `d:\Projekte\luadch\build\install\luadch\scripts\ with their lang/data assets, run smoke harness against [\luadch-ng/luadch`](https://github.com/luadch-ng/luadch) v3.1.1: 10 / 10 PASS, including the "no script errors in log" gate. All six scripts loaded cleanly under the empty-`_ENV` sandbox.
  • Manual functional smoke per script (chat command exercise) - deferred to a follow-up if needed; the load-clean check is the floor for this batch.

Out of scope

  • Functional bug fixes to upstream issues touching these scripts (none of the 19 open upstream issues map to this batch's six scripts).
  • Behaviour changes to the scripts themselves; pure import + provenance + minimal normalisation only.

Refs the import-pass triage in `docs/IMPORT_NOTES.md`.

Imports the first batch of upstream luadch/scripts into the modernised
repo. All six load cleanly under the v3.1.x sandbox (smoke harness
10/10 PASS with these scripts dropped into the install tree).

Each script is at its highest upstream version, BOM-stripped where
needed, prefixed with a provenance header.

- bot_advanced_chat (v0.5 multi): advanced chat bot with history,
  members table, pm2op forward.
- etc_messenger (v0.4 english): bot-style PM messaging with queue.
- etc_blackboard (v0.2 multi): shared bulletin board, persistent.
- etc_wunschbrett (v0.2 multi): wishlist / forum, persistent. The
  upstream scriptname carried "_v0.2" in the literal; normalised to
  "etc_wunschbrett" on import (lang files renamed to match).
- etc_mainecho (v0.3 english): main-chat echo, exclude-trigger table.
- ptx_poll_bot (v3.0 english): polling / voting bot, persistent.

State files for each script ship empty (or default) so the data dir
exists at first save; users get clean state at first load.

README updated with the layout description (mirror of hub scripts/
tree) and the wholesale-or-per-file install model.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant