Прогресс
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user