Ограничил длину аудиосообщений
This commit is contained in:
@@ -33,3 +33,6 @@ TELEGRAM_WRITE_TIMEOUT: int = 30
|
|||||||
# Настройки retry
|
# Настройки retry
|
||||||
MAX_RETRY_ATTEMPTS: int = 3
|
MAX_RETRY_ATTEMPTS: int = 3
|
||||||
RETRY_DELAYS: tuple[float, ...] = (1.0, 2.0, 4.0)
|
RETRY_DELAYS: tuple[float, ...] = (1.0, 2.0, 4.0)
|
||||||
|
|
||||||
|
# Ограничения на голосовые сообщения
|
||||||
|
MAX_VOICE_DURATION: int = 30 # максимальная длительность в секундах
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ from telegram import (
|
|||||||
from telegram.error import TelegramError
|
from telegram.error import TelegramError
|
||||||
from telegram.ext import ContextTypes
|
from telegram.ext import ContextTypes
|
||||||
|
|
||||||
from src.config import ADMIN_LOGIN
|
from src.config import ADMIN_LOGIN, MAX_VOICE_DURATION
|
||||||
from src.database import (
|
from src.database import (
|
||||||
User,
|
User,
|
||||||
UserSession,
|
UserSession,
|
||||||
@@ -49,6 +49,7 @@ from src.messages import (
|
|||||||
TRACK_SAVED_TEXT,
|
TRACK_SAVED_TEXT,
|
||||||
VOICE_EXPECTED_TEXT,
|
VOICE_EXPECTED_TEXT,
|
||||||
VOICE_SAVE_ERROR_TEXT,
|
VOICE_SAVE_ERROR_TEXT,
|
||||||
|
VOICE_TOO_LONG_TEXT,
|
||||||
)
|
)
|
||||||
from src.scenarios import find_available_track
|
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
|
real_replica_index = replicas[session.replica_index].replica_index
|
||||||
|
|
||||||
voice = update.message.voice
|
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:
|
try:
|
||||||
await save_voice_message(
|
await save_voice_message(
|
||||||
context.bot,
|
context.bot,
|
||||||
|
|||||||
@@ -77,6 +77,13 @@ VOICE_SAVE_ERROR_TEXT = """❌ Произошла ошибка при сохра
|
|||||||
|
|
||||||
Пожалуйста, попробуйте отправить голосовое сообщение ещё раз."""
|
Пожалуйста, попробуйте отправить голосовое сообщение ещё раз."""
|
||||||
|
|
||||||
|
VOICE_TOO_LONG_TEXT = """❌ Голосовое сообщение слишком длинное.
|
||||||
|
|
||||||
|
Максимальная длительность — {max_duration} секунд.
|
||||||
|
Длительность вашего сообщения — {duration} секунд.
|
||||||
|
|
||||||
|
Пожалуйста, запишите более короткое сообщение."""
|
||||||
|
|
||||||
TRACK_SAVED_TEXT = """✅ Дорожка сохранена!
|
TRACK_SAVED_TEXT = """✅ Дорожка сохранена!
|
||||||
|
|
||||||
🙏 Спасибо большое за вашу помощь! Если у вас есть желание и возможность, вы можете озвучить ещё несколько дорожек!
|
🙏 Спасибо большое за вашу помощь! Если у вас есть желание и возможность, вы можете озвучить ещё несколько дорожек!
|
||||||
|
|||||||
Reference in New Issue
Block a user