fixes, chat handlers
Some checks reported errors
continuous-integration/drone/push Build encountered an error
Some checks reported errors
continuous-integration/drone/push Build encountered an error
This commit is contained in:
@@ -105,6 +105,35 @@ async def forward_to_channel(message: Message, channel_id: str) -> tuple[bool, O
|
||||
@router.message(F.text)
|
||||
async def handle_text_message(message: Message):
|
||||
"""Обработчик текстовых сообщений"""
|
||||
# Проверяем является ли это командой
|
||||
if message.text and message.text.startswith('/'):
|
||||
# Список пользовательских команд, которые НЕ нужно пересылать
|
||||
user_commands = ['/start', '/help', '/my_code', '/my_accounts']
|
||||
admin_commands = ['/start',
|
||||
'/add_account', '/remove_account', '/verify_winner', '/winner_status', '/user_info',
|
||||
'/check_unclaimed', '/redraw',
|
||||
'/chat_mode', '/set_forward', '/global_ban', '/ban', '/unban', '/banlist', '/delete_msg', '/chat_stats'
|
||||
]
|
||||
|
||||
# Извлекаем команду (первое слово)
|
||||
command = message.text.split()[0] if message.text else ''
|
||||
|
||||
# Если это пользовательская команда - пропускаем, она будет обработана другими обработчиками
|
||||
if command in user_commands:
|
||||
return
|
||||
|
||||
# Если это админская команда
|
||||
if command in admin_commands:
|
||||
# Проверяем права админа
|
||||
if not is_admin(message.from_user.id):
|
||||
await message.answer("❌ У вас нет прав для выполнения этой команды")
|
||||
return
|
||||
# Если админ - команда будет обработана другими обработчиками, пропускаем пересылку
|
||||
return
|
||||
|
||||
# Если неизвестная команда - тоже не пересылаем
|
||||
return
|
||||
|
||||
async with async_session_maker() as session:
|
||||
# Проверяем права на отправку
|
||||
can_send, reason = await ChatPermissionService.can_send_message(
|
||||
|
||||
Reference in New Issue
Block a user