Stabilize staff concurrency and premium emoji; enable verified Drone deployment
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
"""
|
||||
Хэндлеры для управления сообщениями администратором
|
||||
"""
|
||||
from src.utils.errors import public_error
|
||||
from src.core.access import is_admin
|
||||
import logging
|
||||
from aiogram import Router, F, Bot
|
||||
from aiogram.types import Message, CallbackQuery
|
||||
@@ -17,9 +19,6 @@ logger = logging.getLogger(__name__)
|
||||
message_admin_router = Router(name="message_admin")
|
||||
|
||||
|
||||
def is_admin(user_id: int) -> bool:
|
||||
"""Проверка, является ли пользователь администратором"""
|
||||
return user_id in ADMIN_IDS
|
||||
|
||||
|
||||
@message_admin_router.message(CaseInsensitiveCommand("delete"))
|
||||
@@ -28,7 +27,7 @@ async def delete_replied_message(message: Message):
|
||||
Удаление сообщения по команде /delete (регистронезависимо)
|
||||
Работает только если команда является ответом на сообщение бота
|
||||
"""
|
||||
if not is_admin(message.from_user.id):
|
||||
if not await is_admin(message.from_user.id):
|
||||
await message.answer("❌ Недостаточно прав")
|
||||
return
|
||||
|
||||
@@ -48,7 +47,7 @@ async def delete_replied_message(message: Message):
|
||||
logger.info(f"Администратор {message.from_user.id} удалил сообщение {message.reply_to_message.message_id}")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при удалении сообщения: {e}")
|
||||
await message.answer(f"❌ Не удалось удалить сообщение: {str(e)}")
|
||||
await message.answer(f"❌ Не удалось удалить сообщение: {public_error(e)}")
|
||||
|
||||
|
||||
@message_admin_router.callback_query(F.data == "delete_message")
|
||||
@@ -56,7 +55,7 @@ async def delete_message_callback(callback: CallbackQuery):
|
||||
"""
|
||||
Удаление сообщения по нажатию кнопки
|
||||
"""
|
||||
if not is_admin(callback.from_user.id):
|
||||
if not await is_admin(callback.from_user.id):
|
||||
await callback.answer("❌ Недостаточно прав", show_alert=True)
|
||||
return
|
||||
|
||||
@@ -66,7 +65,7 @@ async def delete_message_callback(callback: CallbackQuery):
|
||||
logger.info(f"Администратор {callback.from_user.id} удалил сообщение через кнопку")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка при удалении сообщения через кнопку: {e}")
|
||||
await callback.answer(f"❌ Ошибка: {str(e)}", show_alert=True)
|
||||
await callback.answer(f"❌ Ошибка: {public_error(e)}", show_alert=True)
|
||||
|
||||
|
||||
# Функция-фильтр для проверки триггерных слов
|
||||
@@ -93,7 +92,7 @@ async def quick_delete_replied_message(message: Message):
|
||||
|
||||
Удаляет сообщение у всех получателей broadcast рассылки
|
||||
"""
|
||||
if not is_admin(message.from_user.id):
|
||||
if not await is_admin(message.from_user.id):
|
||||
return # Не админ - пропускаем
|
||||
|
||||
try:
|
||||
@@ -115,7 +114,8 @@ async def quick_delete_replied_message(message: Message):
|
||||
|
||||
chat_message = await ChatMessageService.get_message_by_telegram_id(
|
||||
session,
|
||||
telegram_message_id=replied_msg.message_id
|
||||
telegram_message_id=replied_msg.message_id,
|
||||
chat_id=message.chat.id,
|
||||
)
|
||||
|
||||
# Если нашли broadcast сообщение - удаляем у всех получателей
|
||||
|
||||
Reference in New Issue
Block a user