fix: fix /start command not working - router order issue
PROBLEM:
- /start command was not responding
- Chat router was intercepting all text messages including commands
- Main router with /start handler was connected AFTER chat_router
ROOT CAUSE:
- chat_router has @router.message(F.text) handler that catches ALL text
- It was connected BEFORE main router with Command('start') handler
- chat_router returned early for /start, preventing main handler from running
SOLUTION:
1. Move main router (with /start, /help, /admin) to FIRST position
2. Keep chat_router LAST (catches only unhandled messages)
3. Remove /start and /help from chat_handlers command list (handled earlier)
ROUTER ORDER (priority):
1. router (main.py) - base commands
2. admin_router - admin panel
3. registration_router
4. admin_account_router
5. admin_chat_router
6. redraw_router
7. account_router
8. chat_router - LAST (catch-all for broadcasts)
ALSO FIXED:
- Add missing imports in admin_panel.py: Lottery, Participation, Account
- Fixes NameError crashes in cleanup functions
This commit is contained in:
@@ -107,9 +107,10 @@ 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',
|
||||
# Список команд, которые НЕ нужно пересылать
|
||||
# (Базовые команды /start, /help уже обработаны раньше в main.py)
|
||||
user_commands = ['/my_code', '/my_accounts']
|
||||
admin_commands = [
|
||||
'/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'
|
||||
|
||||
Reference in New Issue
Block a user