Documentation

Architecture

go-bot keeps platform packages independent and shares one public convention: Reply(handler) sends a returned non-empty string back to the triggering conversation.

System overview

flowchart LR
  App[Application] --> TG[telegram]
  App --> DC[discord]
  App --> LN[line]
  TG --> TTS[tts]
  DC --> TTS
  TG --> TGA[Telegram API]
  DC --> DGA[Discord API]
  LN --> LNA[LINE API]
  TTS --> Gemini[Gemini TTS]
  TTS --> FFmpeg[ffmpeg]

Boundaries

Package Transport Focus
telegram long polling messages, callback keyboards, media, status
discord WebSocket gateway attachments, native components, status
line HTTP webhook reply, push, media save
tts HTTPS + process PCM to OGG/OPUS

Platform packages intentionally retain their own Input and handler types because their event payloads and identifiers differ.

中文