No description
- TypeScript 87.9%
- Python 10.5%
- JavaScript 0.8%
- Dockerfile 0.8%
| .references | ||
| src | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| compose.yml | ||
| Dockerfile | ||
| eslint.config.js | ||
| package.json | ||
| pnpm-lock.yaml | ||
| README.md | ||
| tsconfig.json | ||
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
- Copy
.env.example→.env, setBOT_TOKEN. 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 typecheckfor 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.