Files
miti99bot/wrangler.toml
T
tiennm99 3e4e0e5b6e feat(lolschedule): per-chat subscribe/unsubscribe for the daily cron
Replaces the single LOLSCHEDULE_CHAT_ID env var with a KV-backed
subscriber list. New commands /lolschedule_subscribe and
/lolschedule_unsubscribe let each chat opt in/out. The cron now fans
out to every subscriber via Promise.allSettled so one blocked chat
cannot break the others.
2026-04-21 10:38:59 +07:00

57 lines
2.2 KiB
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,trading,lolschedule"
# 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 = "f7f190fcb2fa42eb84a05542911334b0"
preview_id = "0ad72e1c34174f8cadf828e62db099a8"
# D1 database for module persistent storage. Each module prefixes its tables
# with `{moduleName}_` (e.g. `trading_trades`). Migrations are applied via
# `npm run db:migrate` (chained into `npm run deploy`).
# Create with: npx wrangler d1 create miti99bot-db
# then replace REPLACE_ME_D1_UUID below with the returned database_id.
[[d1_databases]]
binding = "DB"
database_name = "miti99bot-db"
database_id = "261b54e7-0fdb-4fe7-8ed9-2e8a8bcf459c"
# Cron Triggers — union of all schedules declared by modules.
# When adding a module with cron entries, append its schedule(s) here.
# See docs/adding-a-module.md for the full module author workflow.
# Local testing: curl "http://localhost:8787/__scheduled?cron=0+1+*+*+*"
# (requires `wrangler dev --test-scheduled`)
[triggers]
crons = ["0 17 * * *", "0 1 * * *"]
# Workers Observability — captures console.* logs, request metadata, and
# invocation traces in the Cloudflare dashboard (Observability → Logs).
# 200k events/day included on free plan. `head_sampling_rate = 1` keeps
# all invocations; drop to 0.1 for 10% sampling if volume grows.
[observability]
enabled = true
head_sampling_rate = 1
[observability.logs]
enabled = true
invocation_logs = true
[observability.traces]
enabled = true
head_sampling_rate = 1
# 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