Прогресс

This commit is contained in:
2026-02-03 10:40:53 +03:00
parent 011f7be20f
commit d7f3c8c6f1

View File

@@ -46,11 +46,9 @@ NO_MORE_SCENARIOS_TEXT = """📭 Пока нет доступных сценар
FIRST_REPLICA_INSTRUCTIONS = """🎙 Начинаем запись дорожки!
Отправляйте голосовые сообщения с озвучкой реплик. Говорите чётко и естественно.
Отправляйте голосовые сообщения с озвучкой реплик. Говорите чётко и естественно."""
📝 Реплика 1:"""
SHOW_REPLICA_TEXT = "📝 Реплика {num}:"
SHOW_REPLICA_TEXT = "📝 Реплика {num}/{total}:"
CONFIRM_RESTART_TEXT = """⚠️ Вы уверены, что хотите начать заново?
@@ -66,7 +64,7 @@ INVALID_INPUT_TEXT = "❌ Пожалуйста, отправьте голосо
ASK_REPLICA_NUMBER_TEXT = "🔢 Введите номер реплики для перезаписи (1-{max}):"
REPEAT_REPLICA_TEXT = "🔄 Перезапись реплики {num}:"
REPEAT_REPLICA_TEXT = "🔄 Перезапись реплики {num}/{total}:"
# === Клавиатуры ===
@@ -249,10 +247,19 @@ def get_track_length(scenario_id: str, speaker_id: int) -> int:
def format_replica_message(session: UserSession) -> str:
"""Форматирует сообщение с репликой."""
replica_text = get_current_replica_text(session)
header = SHOW_REPLICA_TEXT.format(num=session.replica_index + 1)
total = get_track_length(session.scenario_id, session.speaker_id)
header = SHOW_REPLICA_TEXT.format(num=session.replica_index + 1, total=total)
return f"{header}\n\n{replica_text}"
def format_first_replica(session: UserSession) -> str:
"""Форматирует сообщение с первой репликой и инструкциями."""
replica_text = get_current_replica_text(session)
total = get_track_length(session.scenario_id, session.speaker_id)
header = SHOW_REPLICA_TEXT.format(num=1, total=total)
return f"{FIRST_REPLICA_INSTRUCTIONS}\n\n{header}\n\n{replica_text}"
def format_admin_stats() -> str:
"""Форматирует статистику для админки."""
from src.audio import format_duration
@@ -347,8 +354,7 @@ async def handle_accept_intro(
session.scenario_id = scenario_id
session.speaker_id = speaker_id
session.replica_index = 0
replica_text = get_current_replica_text(session)
await query.edit_message_text(f"{FIRST_REPLICA_INSTRUCTIONS}\n\n{replica_text}")
await query.edit_message_text(format_first_replica(session))
logger.info(f"User {user.id} started track {scenario_id}/{speaker_id}")
session.last_bot_message_id = query.message.message_id
@@ -367,8 +373,7 @@ async def handle_rerecord_previous(
if session.replica_index == 0:
session.state = UserState.FIRST_REPLICA
replica_text = get_current_replica_text(session)
await query.edit_message_text(f"{FIRST_REPLICA_INSTRUCTIONS}\n\n{replica_text}")
await query.edit_message_text(format_first_replica(session))
else:
text = format_replica_message(session)
await query.edit_message_text(text, reply_markup=get_show_replica_keyboard())
@@ -408,8 +413,7 @@ async def handle_confirm_restart(
session.state = UserState.FIRST_REPLICA
session.replica_index = 0
replica_text = get_current_replica_text(session)
await query.edit_message_text(f"{FIRST_REPLICA_INSTRUCTIONS}\n\n{replica_text}")
await query.edit_message_text(format_first_replica(session))
session.last_bot_message_id = query.message.message_id
upsert_user_session(session)
logger.info(
@@ -476,10 +480,8 @@ async def handle_save_track(
session.scenario_id = scenario_id
session.speaker_id = speaker_id
session.replica_index = 0
replica_text = get_current_replica_text(session)
await query.edit_message_text(
f"{thanks_msg}\n\n{FIRST_REPLICA_INSTRUCTIONS}\n\n{replica_text}"
)
first_replica_msg = format_first_replica(session)
await query.edit_message_text(f"{thanks_msg}\n\n{first_replica_msg}")
logger.info(
f"User {user.id} saved track, started new: {scenario_id}/{speaker_id}"
)
@@ -560,8 +562,7 @@ async def handle_exit_admin(
elif session.state == UserState.NO_MORE_SCENARIOS:
await query.edit_message_text(NO_MORE_SCENARIOS_TEXT)
elif session.state == UserState.FIRST_REPLICA:
replica_text = get_current_replica_text(session)
await query.edit_message_text(f"{FIRST_REPLICA_INSTRUCTIONS}\n\n{replica_text}")
await query.edit_message_text(format_first_replica(session))
elif session.state == UserState.SHOW_REPLICA:
text = format_replica_message(session)
await query.edit_message_text(text, reply_markup=get_show_replica_keyboard())
@@ -623,10 +624,9 @@ async def handle_confirm_upload(
waiting_session.replica_index = 0
upsert_user_session(waiting_session)
replica_text = get_current_replica_text(waiting_session)
msg = (
f"🎉 Появился новый сценарий!\n\n"
f"{FIRST_REPLICA_INSTRUCTIONS}\n\n{replica_text}"
f"{format_first_replica(waiting_session)}"
)
await context.bot.send_message(row[0], msg)
except Exception:
@@ -897,11 +897,12 @@ async def handle_replica_number_input(
session.state = UserState.REPEAT_REPLICA
session.replica_index = num - 1
replica_text = get_current_replica_text(session)
total = get_track_length(session.scenario_id, session.speaker_id)
msg_id = await send_message_and_save(
update,
context,
session,
f"{REPEAT_REPLICA_TEXT.format(num=num)}\n\n{replica_text}",
f"{REPEAT_REPLICA_TEXT.format(num=num, total=total)}\n\n{replica_text}",
)
session.last_bot_message_id = msg_id
upsert_user_session(session)