Add error logging

This commit is contained in:
2025-08-16 11:05:18 +03:00
parent 946a1ea151
commit 3b71b190a0

View File

@@ -108,18 +108,26 @@ func (c *TelegramController) Stop() {
c.bot.StopReceivingUpdates()
}
func (c *TelegramController) send(chattable tgbotapi.Chattable) (tgbotapi.Message, error) {
msg, err := c.bot.Send(chattable)
if err != nil {
c.logger.Error("Failed to send message to tg bot", "error", err)
}
return msg, err
}
func (c *TelegramController) handleStartCommand(message *tgbotapi.Message) {
msg := tgbotapi.NewMessage(message.Chat.ID, "Привет! Я бот для расшифровки аудиосообщений. Отправь мне голосовое сообщение или аудиофайл, и я пришлю тебе текст.")
msg.ReplyToMessageID = message.MessageID
c.bot.Send(msg)
c.send(msg)
}
func (c *TelegramController) handleForbiddenUser(message *tgbotapi.Message) {
msg := tgbotapi.NewMessage(message.Chat.ID, "Извини, тебе нельзя пользоваться этим ботом. Обратись к владельцу бота.")
msg.ReplyToMessageID = message.MessageID
c.bot.Send(msg)
c.send(msg)
}
func (c *TelegramController) handleHelpCommand(message *tgbotapi.Message) {
@@ -138,14 +146,14 @@ func (c *TelegramController) handleHelpCommand(message *tgbotapi.Message) {
msg := tgbotapi.NewMessage(message.Chat.ID, helpText)
msg.ReplyToMessageID = message.MessageID
c.bot.Send(msg)
c.send(msg)
}
func (c *TelegramController) handleAudioMessage(message *tgbotapi.Message) {
// Отправляем сообщение о начале обработки
progressMsg := tgbotapi.NewMessage(message.Chat.ID, "Обрабатываю аудиофайл...")
progressMsg.ReplyToMessageID = message.MessageID
sentProgressMsg, err := c.bot.Send(progressMsg)
sentProgressMsg, err := c.send(progressMsg)
if err != nil {
c.logger.Error("Failed to send progress message", "error", err)
return
@@ -156,7 +164,7 @@ func (c *TelegramController) handleAudioMessage(message *tgbotapi.Message) {
if err != nil {
c.logger.Error("Failed to download audio file", "error", err)
errorMsg := tgbotapi.NewMessage(message.Chat.ID, "Ошибка при скачивании аудиофайла. Попробуйте еще раз.")
c.bot.Send(errorMsg)
c.send(errorMsg)
return
}
defer fileReader.Close()
@@ -166,14 +174,14 @@ func (c *TelegramController) handleAudioMessage(message *tgbotapi.Message) {
if err != nil {
c.logger.Error("Failed to create transcribe job", "error", err)
errorMsg := tgbotapi.NewMessage(message.Chat.ID, "Ошибка при создании задачи на расшифровку. Попробуйте еще раз.")
c.bot.Send(errorMsg)
c.send(errorMsg)
return
}
// Отправляем сообщение об успешном создании задачи
successMsg := tgbotapi.NewMessage(message.Chat.ID, fmt.Sprintf("Задача на расшифровку создана. ID задачи: %s", job.Id))
successMsg.ReplyToMessageID = message.MessageID
c.bot.Send(successMsg)
c.send(successMsg)
// Отправляем результат расшифровки (асинхронно)
go c.sendTranscriptionResult(message.Chat.ID, job.Id, sentProgressMsg.MessageID)
@@ -183,7 +191,7 @@ func (c *TelegramController) handleVoiceMessage(message *tgbotapi.Message) {
// Отправляем сообщение о начале обработки
progressMsg := tgbotapi.NewMessage(message.Chat.ID, "Обрабатываю голосовое сообщение...")
progressMsg.ReplyToMessageID = message.MessageID
sentProgressMsg, err := c.bot.Send(progressMsg)
sentProgressMsg, err := c.send(progressMsg)
if err != nil {
c.logger.Error("Failed to send progress message", "error", err)
return
@@ -194,7 +202,7 @@ func (c *TelegramController) handleVoiceMessage(message *tgbotapi.Message) {
if err != nil {
c.logger.Error("Failed to download voice file", "error", err)
errorMsg := tgbotapi.NewMessage(message.Chat.ID, "Ошибка при скачивании голосового сообщения. Попробуйте еще раз.")
c.bot.Send(errorMsg)
c.send(errorMsg)
return
}
defer fileReader.Close()
@@ -204,14 +212,14 @@ func (c *TelegramController) handleVoiceMessage(message *tgbotapi.Message) {
if err != nil {
c.logger.Error("Failed to create transcribe job", "error", err)
errorMsg := tgbotapi.NewMessage(message.Chat.ID, "Ошибка при создании задачи на расшифровку. Попробуйте еще раз.")
c.bot.Send(errorMsg)
c.send(errorMsg)
return
}
// Отправляем сообщение об успешном создании задачи
successMsg := tgbotapi.NewMessage(message.Chat.ID, fmt.Sprintf("Задача на расшифровку создана. ID задачи: %s", job.Id))
successMsg.ReplyToMessageID = message.MessageID
c.bot.Send(successMsg)
c.send(successMsg)
// Отправляем результат расшифровки (асинхронно)
go c.sendTranscriptionResult(message.Chat.ID, job.Id, sentProgressMsg.MessageID)
@@ -226,7 +234,7 @@ func (c *TelegramController) handleDocumentMessage(message *tgbotapi.Message) {
// Отправляем сообщение о начале обработки
progressMsg := tgbotapi.NewMessage(message.Chat.ID, "Обрабатываю аудиофайл...")
progressMsg.ReplyToMessageID = message.MessageID
sentProgressMsg, err := c.bot.Send(progressMsg)
sentProgressMsg, err := c.send(progressMsg)
if err != nil {
c.logger.Error("Failed to send progress message", "error", err)
return
@@ -237,7 +245,7 @@ func (c *TelegramController) handleDocumentMessage(message *tgbotapi.Message) {
if err != nil {
c.logger.Error("Failed to download document file", "error", err)
errorMsg := tgbotapi.NewMessage(message.Chat.ID, "Ошибка при скачивании аудиофайла. Попробуйте еще раз.")
c.bot.Send(errorMsg)
c.send(errorMsg)
return
}
defer fileReader.Close()
@@ -247,14 +255,14 @@ func (c *TelegramController) handleDocumentMessage(message *tgbotapi.Message) {
if err != nil {
c.logger.Error("Failed to create transcribe job", "error", err)
errorMsg := tgbotapi.NewMessage(message.Chat.ID, "Ошибка при создании задачи на расшифровку. Попробуйте еще раз.")
c.bot.Send(errorMsg)
c.send(errorMsg)
return
}
// Отправляем сообщение об успешном создании задачи
successMsg := tgbotapi.NewMessage(message.Chat.ID, fmt.Sprintf("Задача на расшифровку создана. ID задачи: %s", job.Id))
successMsg.ReplyToMessageID = message.MessageID
c.bot.Send(successMsg)
c.send(successMsg)
// Отправляем результат расшифровки (асинхронно)
go c.sendTranscriptionResult(message.Chat.ID, job.Id, sentProgressMsg.MessageID)
@@ -306,11 +314,11 @@ func (c *TelegramController) sendTranscriptionResult(chatID int64, jobID string,
if job.TranscriptionText != nil {
resultMsg := tgbotapi.NewMessage(chatID, *job.TranscriptionText)
resultMsg.ReplyToMessageID = progressMessageID
c.bot.Send(resultMsg)
c.send(resultMsg)
} else {
resultMsg := tgbotapi.NewMessage(chatID, "Расшифровка завершена, но текст пуст.")
resultMsg.ReplyToMessageID = progressMessageID
c.bot.Send(resultMsg)
c.send(resultMsg)
}
return
case "failed":
@@ -323,14 +331,14 @@ func (c *TelegramController) sendTranscriptionResult(chatID int64, jobID string,
}
resultMsg := tgbotapi.NewMessage(chatID, errorMsg)
resultMsg.ReplyToMessageID = progressMessageID
c.bot.Send(resultMsg)
c.send(resultMsg)
return
}
case <-timeout:
// Время ожидания истекло
resultMsg := tgbotapi.NewMessage(chatID, "Время ожидания результата расшифровки истекло. Попробуйте позже проверить статус задачи.")
resultMsg.ReplyToMessageID = progressMessageID
c.bot.Send(resultMsg)
c.send(resultMsg)
return
}
}