chore: add ruff and ty, fix linting
- Add ruff (line-length 88) and ty to dev dependencies - Fix all ruff linting errors - Configure ty to ignore nullable type warnings - Update AGENTS.md with linting instructions
This commit is contained in:
@@ -26,9 +26,11 @@ INTRO_TEXT = """👋 Добро пожаловать!
|
||||
|
||||
Это бот для сбора датасета озвученных реплик совещаний.
|
||||
|
||||
Вы будете озвучивать реплики участников совещаний. Каждая дорожка — это реплики одного участника в рамках одного совещания.
|
||||
Вы будете озвучивать реплики участников совещаний.
|
||||
Каждая дорожка — это реплики одного участника в рамках одного совещания.
|
||||
|
||||
📋 Отправляя голосовые сообщения, вы соглашаетесь с тем, что они будут использованы в исследовательских целях для обучения моделей машинного обучения.
|
||||
📋 Отправляя голосовые сообщения, вы соглашаетесь с тем, что они будут
|
||||
использованы в исследовательских целях для обучения моделей машинного обучения.
|
||||
|
||||
Нажмите кнопку ниже, чтобы начать."""
|
||||
|
||||
@@ -201,6 +203,13 @@ def get_track_length(scenario_id: str, speaker_id: int) -> int:
|
||||
return len(get_replicas_for_track(scenario_id, speaker_id))
|
||||
|
||||
|
||||
def format_replica_message(session: UserSession) -> str:
|
||||
"""Форматирует сообщение с репликой."""
|
||||
replica_text = get_current_replica_text(session)
|
||||
header = SHOW_REPLICA_TEXT.format(num=session.replica_index + 1)
|
||||
return f"{header}\n\n{replica_text}"
|
||||
|
||||
|
||||
def format_admin_stats() -> str:
|
||||
"""Форматирует статистику для админки."""
|
||||
stats = get_stats()
|
||||
@@ -314,8 +323,7 @@ async def handle_rerecord_previous(
|
||||
replica_text = get_current_replica_text(session)
|
||||
await query.edit_message_text(f"{FIRST_REPLICA_INSTRUCTIONS}\n\n{replica_text}")
|
||||
else:
|
||||
replica_text = get_current_replica_text(session)
|
||||
text = f"{SHOW_REPLICA_TEXT.format(num=session.replica_index + 1)}\n\n{replica_text}"
|
||||
text = format_replica_message(session)
|
||||
await query.edit_message_text(text, reply_markup=get_show_replica_keyboard())
|
||||
|
||||
session.last_bot_message_id = query.message.message_id
|
||||
@@ -371,10 +379,7 @@ async def handle_cancel_restart(
|
||||
"""Обработчик отмены рестарта."""
|
||||
query = update.callback_query
|
||||
session.state = UserState.SHOW_REPLICA
|
||||
replica_text = get_current_replica_text(session)
|
||||
text = (
|
||||
f"{SHOW_REPLICA_TEXT.format(num=session.replica_index + 1)}\n\n{replica_text}"
|
||||
)
|
||||
text = format_replica_message(session)
|
||||
await query.edit_message_text(text, reply_markup=get_show_replica_keyboard())
|
||||
session.last_bot_message_id = query.message.message_id
|
||||
upsert_user_session(session)
|
||||
@@ -430,10 +435,7 @@ async def handle_rerecord_last(
|
||||
track_length = get_track_length(session.scenario_id, session.speaker_id)
|
||||
session.state = UserState.SHOW_REPLICA
|
||||
session.replica_index = track_length - 1
|
||||
replica_text = get_current_replica_text(session)
|
||||
text = (
|
||||
f"{SHOW_REPLICA_TEXT.format(num=session.replica_index + 1)}\n\n{replica_text}"
|
||||
)
|
||||
text = format_replica_message(session)
|
||||
await query.edit_message_text(text, reply_markup=get_show_replica_keyboard())
|
||||
session.last_bot_message_id = query.message.message_id
|
||||
upsert_user_session(session)
|
||||
@@ -497,8 +499,7 @@ async def handle_exit_admin(
|
||||
replica_text = get_current_replica_text(session)
|
||||
await query.edit_message_text(f"{FIRST_REPLICA_INSTRUCTIONS}\n\n{replica_text}")
|
||||
elif session.state == UserState.SHOW_REPLICA:
|
||||
replica_text = get_current_replica_text(session)
|
||||
text = f"{SHOW_REPLICA_TEXT.format(num=session.replica_index + 1)}\n\n{replica_text}"
|
||||
text = format_replica_message(session)
|
||||
await query.edit_message_text(text, reply_markup=get_show_replica_keyboard())
|
||||
elif session.state == UserState.CONFIRM_SAVE:
|
||||
await query.edit_message_text(
|
||||
@@ -547,10 +548,8 @@ async def handle_confirm_upload(
|
||||
"SELECT telegram_id FROM users WHERE id = ?", (waiting_user_id,)
|
||||
).fetchone()
|
||||
if row:
|
||||
await context.bot.send_message(
|
||||
row[0],
|
||||
"🎉 Появился новый сценарий для озвучивания! Используйте /start для продолжения.",
|
||||
)
|
||||
msg = "🎉 Появился новый сценарий! Используйте /start"
|
||||
await context.bot.send_message(row[0], msg)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
@@ -619,8 +618,7 @@ async def handle_voice_message(
|
||||
)
|
||||
else:
|
||||
session.state = UserState.SHOW_REPLICA
|
||||
replica_text = get_current_replica_text(session)
|
||||
text = f"{SHOW_REPLICA_TEXT.format(num=session.replica_index + 1)}\n\n{replica_text}"
|
||||
text = format_replica_message(session)
|
||||
msg_id = await send_message_and_save(
|
||||
update, context, session, text, get_show_replica_keyboard()
|
||||
)
|
||||
@@ -631,7 +629,10 @@ async def handle_voice_message(
|
||||
|
||||
@with_user_and_session
|
||||
async def handle_replica_number_input(
|
||||
update: Update, context: ContextTypes.DEFAULT_TYPE, user: User, session: UserSession | None
|
||||
update: Update,
|
||||
context: ContextTypes.DEFAULT_TYPE,
|
||||
user: User,
|
||||
session: UserSession | None,
|
||||
) -> None:
|
||||
"""Обработчик ввода номера реплики."""
|
||||
if not session or session.state != UserState.ASK_REPLICA_NUMBER:
|
||||
@@ -715,14 +716,21 @@ VOICE_EXPECTED_TEXT = "❌ Пожалуйста, отправьте голосо
|
||||
|
||||
@with_user_and_session
|
||||
async def handle_unexpected_text(
|
||||
update: Update, context: ContextTypes.DEFAULT_TYPE, user: User, session: UserSession | None
|
||||
update: Update,
|
||||
context: ContextTypes.DEFAULT_TYPE,
|
||||
user: User,
|
||||
session: UserSession | None,
|
||||
) -> None:
|
||||
"""Обработчик неожиданных текстовых сообщений."""
|
||||
if not session:
|
||||
await update.message.reply_text("Используйте /start для начала работы с ботом.")
|
||||
return
|
||||
|
||||
voice_states = {UserState.FIRST_REPLICA, UserState.SHOW_REPLICA, UserState.REPEAT_REPLICA}
|
||||
voice_states = {
|
||||
UserState.FIRST_REPLICA,
|
||||
UserState.SHOW_REPLICA,
|
||||
UserState.REPEAT_REPLICA,
|
||||
}
|
||||
if session.state in voice_states:
|
||||
await update.message.reply_text(VOICE_EXPECTED_TEXT)
|
||||
# В других состояниях игнорируем текст (например, INTRO, NO_MORE_SCENARIOS)
|
||||
|
||||
Reference in New Issue
Block a user