chat restore
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2026-02-09 20:07:46 +09:00
parent 062b782fb7
commit 4e2c8981c2
8 changed files with 485 additions and 56 deletions

View File

@@ -38,7 +38,13 @@ async def show_chat_menu(message: Message, state: FSMContext):
await state.clear()
async with async_session_maker() as session:
user = await UserService.get_user_by_telegram_id(session, message.from_user.id)
user = await UserService.get_or_create_user(
session,
message.from_user.id,
username=message.from_user.username,
first_name=message.from_user.first_name,
last_name=message.from_user.last_name
)
if not user:
await message.answer("❌ Вы не зарегистрированы. Используйте /start")
@@ -134,7 +140,13 @@ async def start_conversation(callback: CallbackQuery, state: FSMContext):
await callback.message.edit_text("❌ Пользователь не найден")
return
sender = await UserService.get_user_by_telegram_id(session, callback.from_user.id)
sender = await UserService.get_or_create_user(
session,
callback.from_user.id,
username=callback.from_user.username,
first_name=callback.from_user.first_name,
last_name=callback.from_user.last_name
)
# Получаем последние 10 сообщений из диалога
messages = await P2PMessageService.get_conversation(
@@ -182,7 +194,13 @@ async def show_conversations(callback: CallbackQuery):
await callback.answer()
async with async_session_maker() as session:
user = await UserService.get_user_by_telegram_id(session, callback.from_user.id)
sender = await UserService.get_or_create_user(
session,
callback.from_user.id,
username=callback.from_user.username,
first_name=callback.from_user.first_name,
last_name=callback.from_user.last_name
)
conversations = await P2PMessageService.get_recent_conversations(session, user.id, limit=10)
@@ -274,7 +292,13 @@ async def handle_p2p_message(message: Message, state: FSMContext):
return
async with async_session_maker() as session:
sender = await UserService.get_user_by_telegram_id(session, message.from_user.id)
sender = await UserService.get_or_create_user(
session,
message.from_user.id,
username=message.from_user.username,
first_name=message.from_user.first_name,
last_name=message.from_user.last_name
)
sender_name = f"@{sender.username}" if sender.username else sender.first_name
# Определяем тип сообщения