telegram: недоступность api.telegram.org больше не роняет старт

- авторизация бота ушла из NewBot в Run: повторяется в фоне с backoff
  от 30 секунд до 15 минут, пока не появится связь
- отказ по токену (401/404) повторами не лечится — бот просто выключается,
  веб-часть продолжает работать
- у клиента Telegram ограничен только dial (15 c): long polling и заливка
  вложений должны оставаться без общего таймаута
This commit is contained in:
av
2026-07-25 14:17:59 +03:00
parent 13dafa2f68
commit c3acb50fcc
3 changed files with 76 additions and 22 deletions
+3 -8
View File
@@ -71,16 +71,11 @@ func main() {
// Web handler
handler := web.NewHandler(memorySvc, cfg.Memos.URL, cfg.Memos.PublicURL, cfg.General.AllowLoadMore, logger)
// Telegram bot
// Telegram bot. Авторизация в Telegram идёт в фоне (Bot.Run) с повторами:
// недоступный api.telegram.org не должен мешать старту веб-части.
var tgBot *telegram.Bot
if cfg.Telegram.Enabled {
var err error
tgBot, err = telegram.NewBot(cfg.Telegram, memorySvc, client, cfg.Memos.URL, cfg.Memos.PublicURL, cfg.General.AllowLoadMore, loc, logger)
if err != nil {
logger.Error("failed to create telegram bot", "error", err)
store.Close()
os.Exit(1) //nolint:gocritic // store.Close() called above; linter doesn't track manual cleanup
}
tgBot = telegram.NewBot(cfg.Telegram, memorySvc, client, cfg.Memos.URL, cfg.Memos.PublicURL, cfg.General.AllowLoadMore, loc, logger)
}
// HTTP server