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