Ограничил длину аудиосообщений

This commit is contained in:
2026-02-10 10:03:35 +03:00
parent dfdd3c7b69
commit f45fd66562
3 changed files with 26 additions and 1 deletions

View File

@@ -33,3 +33,6 @@ TELEGRAM_WRITE_TIMEOUT: int = 30
# Настройки retry
MAX_RETRY_ATTEMPTS: int = 3
RETRY_DELAYS: tuple[float, ...] = (1.0, 2.0, 4.0)
# Ограничения на голосовые сообщения
MAX_VOICE_DURATION: int = 30 # максимальная длительность в секундах

View File

@@ -9,7 +9,7 @@ from telegram import (
from telegram.error import TelegramError
from telegram.ext import ContextTypes
from src.config import ADMIN_LOGIN
from src.config import ADMIN_LOGIN, MAX_VOICE_DURATION
from src.database import (
User,
UserSession,
@@ -49,6 +49,7 @@ from src.messages import (
TRACK_SAVED_TEXT,
VOICE_EXPECTED_TEXT,
VOICE_SAVE_ERROR_TEXT,
VOICE_TOO_LONG_TEXT,
)
from src.scenarios import find_available_track
@@ -871,6 +872,20 @@ async def handle_voice_message(
real_replica_index = replicas[session.replica_index].replica_index
voice = update.message.voice
# Проверяем длительность
if voice.duration > MAX_VOICE_DURATION:
await update.message.reply_text(
VOICE_TOO_LONG_TEXT.format(
max_duration=MAX_VOICE_DURATION, duration=voice.duration
)
)
logger.info(
f"User {user.id} sent voice too long: {voice.duration}s "
f"(max {MAX_VOICE_DURATION}s)"
)
return
try:
await save_voice_message(
context.bot,

View File

@@ -77,6 +77,13 @@ VOICE_SAVE_ERROR_TEXT = """❌ Произошла ошибка при сохра
Пожалуйста, попробуйте отправить голосовое сообщение ещё раз."""
VOICE_TOO_LONG_TEXT = """❌ Голосовое сообщение слишком длинное.
Максимальная длительность — {max_duration} секунд.
Длительность вашего сообщения — {duration} секунд.
Пожалуйста, запишите более короткое сообщение."""
TRACK_SAVED_TEXT = """✅ Дорожка сохранена!
🙏 Спасибо большое за вашу помощь! Если у вас есть желание и возможность, вы можете озвучить ещё несколько дорожек!