feat: массовое удаление broadcast сообщений у всех получателей
- Quick delete теперь удаляет сообщения у всех получателей broadcast - Добавлен метод get_message_by_telegram_id в ChatMessageService - При удалении проходит по всем forwarded_message_ids и удаляет у каждого - Показывает статистику удаления админу (автоматически исчезает через 3 сек) - Помечает сообщение как удалённое в БД
This commit is contained in:
@@ -185,6 +185,23 @@ class ChatMessageService:
|
||||
)
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
@staticmethod
|
||||
async def get_message_by_telegram_id(
|
||||
session: AsyncSession,
|
||||
telegram_message_id: int,
|
||||
user_id: Optional[int] = None
|
||||
) -> Optional[ChatMessage]:
|
||||
"""Получить сообщение по telegram_message_id"""
|
||||
query = select(ChatMessage).where(
|
||||
ChatMessage.telegram_message_id == telegram_message_id
|
||||
)
|
||||
|
||||
if user_id:
|
||||
query = query.where(ChatMessage.user_id == user_id)
|
||||
|
||||
result = await session.execute(query)
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
@staticmethod
|
||||
async def get_user_messages(
|
||||
session: AsyncSession,
|
||||
|
||||
Reference in New Issue
Block a user