No description
  • TypeScript 87.9%
  • Python 10.5%
  • JavaScript 0.8%
  • Dockerfile 0.8%
Find a file
2026-08-18 02:40:07 +06:00
.references feat: initial commit 2026-08-18 02:40:07 +06:00
src feat: initial commit 2026-08-18 02:40:07 +06:00
tests feat: initial commit 2026-08-18 02:40:07 +06:00
.dockerignore feat: initial commit 2026-08-18 02:40:07 +06:00
.env.example feat: initial commit 2026-08-18 02:40:07 +06:00
.gitignore feat: initial commit 2026-08-18 02:40:07 +06:00
AGENTS.md feat: initial commit 2026-08-18 02:40:07 +06:00
CLAUDE.md feat: initial commit 2026-08-18 02:40:07 +06:00
compose.yml feat: initial commit 2026-08-18 02:40:07 +06:00
Dockerfile feat: initial commit 2026-08-18 02:40:07 +06:00
eslint.config.js feat: initial commit 2026-08-18 02:40:07 +06:00
package.json feat: initial commit 2026-08-18 02:40:07 +06:00
pnpm-lock.yaml feat: initial commit 2026-08-18 02:40:07 +06:00
README.md feat: initial commit 2026-08-18 02:40:07 +06:00
tsconfig.json feat: initial commit 2026-08-18 02:40:07 +06:00

dodoislands-bot

Telegram bot reporting live ACNH treasure-island dodo codes from multiple sources — in groups and via Guest Mode mentions.

  • Sources: Pange Plays (6 islands) + Chopaeng (~25 public islands)
  • Per-island: tap-to-copy dodo code, visitor bar (▓▓▓░░░░ 3/7, lobby cap 7), description
  • 5-min shared cache, 🔄 force refresh with a 30 s per-source cooldown, stale data served on source failures
  • Rendered as Telegram rich messages (native blocks)

Run

  1. Copy .env.example.env, set BOT_TOKEN.
  2. docker compose up -d --build — or locally: pnpm install && pnpm dev.
env default
BOT_TOKEN required
CACHE_TTL_MS 300000
FORCE_COOLDOWN_MS 30000

Bot setup (BotFather)

  • Enable Guest Mode in the bot's settings (BotFather MiniApp) so @mentions work from any chat.
  • Allow the bot to be added to groups (BotFather → Bot Settings → Allow Groups).
  • Keep group privacy ON (commands still arrive).
  • Commands: islands — current dodo codes.

Usage

  • Groups: /islands, then 🔄 Refresh (force refresh; 30 s per-source cooldown).
  • Anywhere: mention @<botname> — one reply with the current codes.

Notes

  • No build step: runs TypeScript directly via tsx (pnpm start); pnpm typecheck for type errors.
  • package.json pins @puregram/api via pnpm.overrides — puregram@3.7 needs ~10.2 while @puregram/* satellites still pin ~10.1; drop the override once satellites catch up.