架構
go-bot 維持平台 package 的獨立性,並共用一項公開慣例:Reply(handler) 回傳非空字串時,會回覆至觸發對話。
系統總覽
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]
邊界
| Package | 傳輸方式 | 重點 |
|---|---|---|
telegram |
long polling | 訊息、callback keyboard、媒體、status |
discord |
WebSocket gateway | 附件、原生元件、status |
line |
HTTP webhook | reply、push、媒體下載 |
tts |
HTTPS + process | PCM 轉 OGG/OPUS |
平台 package 刻意各自維持 Input 與 handler 型別,因為事件 payload 與 ID 不同。