mirror of
https://github.com/tiennm99/miti99bot.git
synced 2026-04-17 13:21:31 +00:00
grammY-based bot with a module plugin system loaded from the MODULES env var. Three command visibility levels (public/protected/private) share a unified command namespace with conflict detection at registry build. - 4 initial modules (util, wordle, loldle, misc); util fully implemented, others are stubs proving the plugin system end-to-end - util: /info (chat/thread/sender ids) + /help (pure renderer over the registry, HTML parse mode, escapes user-influenced strings) - KVStore interface with CFKVStore and a per-module prefixing factory; getJSON/putJSON convenience helpers; other backends drop in via one file - Webhook at POST /webhook with secret-token validation via grammY's webhookCallback; no admin HTTP surface - Post-deploy register script (npm run deploy = wrangler deploy && node --env-file=.env.deploy scripts/register.js) for setWebhook and setMyCommands; --dry-run flag for preview - 56 vitest unit tests across 7 suites covering registry, db wrapper, dispatcher, help renderer, validators, and HTML escaper - biome for lint + format; phased implementation plan under plans/
23 lines
867 B
TOML
23 lines
867 B
TOML
name = "miti99bot"
|
|
main = "src/index.js"
|
|
compatibility_date = "2025-10-01"
|
|
|
|
# Enabled modules at runtime. Comma-separated. Must match static-map keys in src/modules/index.js.
|
|
# Also duplicate this value into .env.deploy so scripts/register.js derives the same public command list.
|
|
[vars]
|
|
MODULES = "util,wordle,loldle,misc"
|
|
|
|
# KV namespace holding all module state. Each module auto-prefixes its keys via createStore().
|
|
# Create with:
|
|
# wrangler kv namespace create miti99bot-kv
|
|
# wrangler kv namespace create miti99bot-kv --preview
|
|
# then paste the returned IDs below.
|
|
[[kv_namespaces]]
|
|
binding = "KV"
|
|
id = "REPLACE_ME"
|
|
preview_id = "REPLACE_ME"
|
|
|
|
# Secrets (set via `wrangler secret put <name>`, NOT in this file):
|
|
# TELEGRAM_BOT_TOKEN — bot token from @BotFather
|
|
# TELEGRAM_WEBHOOK_SECRET — arbitrary high-entropy string, also set in .env.deploy
|