Fix tg bot graceful shutdown
This commit is contained in:
@@ -5,7 +5,6 @@ import (
|
||||
"io"
|
||||
"log/slog"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@@ -15,14 +14,27 @@ import (
|
||||
)
|
||||
|
||||
type TelegramController struct {
|
||||
// deps
|
||||
bot *tgbotapi.BotAPI
|
||||
transcribeService *service.TranscribeService
|
||||
jobRepo contract.TranscriptJobRepository
|
||||
logger *slog.Logger
|
||||
// params
|
||||
updateTimeout int
|
||||
}
|
||||
|
||||
func NewTelegramController(transcribeService *service.TranscribeService, jobRepo contract.TranscriptJobRepository, logger *slog.Logger) (*TelegramController, error) {
|
||||
botToken := os.Getenv("TELEGRAM_BOT_TOKEN")
|
||||
type TelegramConfig struct {
|
||||
BotToken string
|
||||
UpdateTimeout int
|
||||
}
|
||||
|
||||
func NewTelegramController(
|
||||
config TelegramConfig,
|
||||
transcribeService *service.TranscribeService,
|
||||
jobRepo contract.TranscriptJobRepository,
|
||||
logger *slog.Logger,
|
||||
) (*TelegramController, error) {
|
||||
botToken := config.BotToken
|
||||
if botToken == "" {
|
||||
return nil, &EmptyBotTokenError{}
|
||||
}
|
||||
@@ -37,6 +49,7 @@ func NewTelegramController(transcribeService *service.TranscribeService, jobRepo
|
||||
transcribeService: transcribeService,
|
||||
jobRepo: jobRepo,
|
||||
logger: logger,
|
||||
updateTimeout: config.UpdateTimeout,
|
||||
}
|
||||
|
||||
return controller, nil
|
||||
@@ -46,7 +59,7 @@ func (c *TelegramController) Start() {
|
||||
c.logger.Info("Telegram bot started", "username", c.bot.Self.UserName)
|
||||
|
||||
u := tgbotapi.NewUpdate(0)
|
||||
u.Timeout = 60
|
||||
u.Timeout = c.updateTimeout
|
||||
|
||||
updates := c.bot.GetUpdatesChan(u)
|
||||
|
||||
@@ -79,7 +92,7 @@ func (c *TelegramController) Start() {
|
||||
}
|
||||
|
||||
func (c *TelegramController) Stop() {
|
||||
c.logger.Info("Telegram bot stopped")
|
||||
c.bot.StopReceivingUpdates()
|
||||
}
|
||||
|
||||
func (c *TelegramController) handleStartCommand(message *tgbotapi.Message) {
|
||||
|
Reference in New Issue
Block a user