Добавил retry для скачивания аудиосообщений
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user