Добавил retry для скачивания аудиосообщений

This commit is contained in:
2026-02-09 17:10:48 +03:00
parent b41e735b22
commit f11e6ca826
5 changed files with 82 additions and 21 deletions

View File

@@ -6,6 +6,7 @@ from telegram import (
ReplyKeyboardRemove,
Update,
)
from telegram.error import TelegramError
from telegram.ext import ContextTypes
from src.config import ADMIN_LOGIN
@@ -47,6 +48,7 @@ from src.messages import (
SPECIFY_GENDER_TEXT,
TRACK_SAVED_TEXT,
VOICE_EXPECTED_TEXT,
VOICE_SAVE_ERROR_TEXT,
)
from src.scenarios import find_available_track
@@ -869,15 +871,20 @@ async def handle_voice_message(
real_replica_index = replicas[session.replica_index].replica_index
voice = update.message.voice
await save_voice_message(
context.bot,
voice.file_id,
user.id,
session.scenario_id,
session.speaker_id,
real_replica_index,
max(1, voice.duration), # телеграм возвращает с точностью до секунд
)
try:
await save_voice_message(
context.bot,
voice.file_id,
user.id,
session.scenario_id,
session.speaker_id,
real_replica_index,
max(1, voice.duration), # телеграм возвращает с точностью до секунд
)
except TelegramError as e:
logger.error(f"Failed to save voice for user {user.id}: {e}")
await update.message.reply_text(VOICE_SAVE_ERROR_TEXT)
return
track_length = get_track_length(session.scenario_id, session.speaker_id)