При вводе в чат тг слова: /изменения, должна запуститься машина состояния. Но ничего не происходит! Код разбит по модулям, ничего не напутано, код запускается без ошибок, но вот машина состояния не запускается(
from aiogram import types, Dispatcher
from create_bot import dp, bot
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from data_base import botbd
from aiogram.types import ReplyKeyboardRemove, \
ReplyKeyboardMarkup, KeyboardButton, \
InlineKeyboardMarkup, InlineKeyboardButton
#появляется после ввода /start
button_menu = KeyboardButton("Меню")
greet_kb = ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True).add(button_menu)
#появляется после ввода слова Меню
button_wr = KeyboardButton("/изменения")
button_stats = KeyboardButton("stats")
button_other = KeyboardButton("other")
button_info = KeyboardButton("info")
greet_menu = ReplyKeyboardMarkup(resize_keyboard=True).add(button_wr, button_stats, button_other, button_info)
#при вводе /start
#@dp.message_handler(commands=['start'])
async def process_start_command(message: types.Message):
await message.answer("Привет, для продолжения перейдите в меню!", reply_markup=greet_kb)
#@dp.message_handler()
async def menu_command(message : types.Message):
if message.text == 'меню' or message.text == 'Меню':
await message.answer("Сделайте свой выбор!", reply_markup=greet_menu)
################################################################
class FSMAdmin(StatesGroup):
winers = State()
losers = State()
#тут машина состояния должна начать работать, после выбора на клавиатуре кнопки /изменения
#@dp.message_handler(commands='изменения', state=None)
async def cm_start(message : types.Message):
await FSMAdmin.winers.set()
await message.reply('Введите количество побед:')
#@dp.message_handler(state=FSMAdmin.winers)
async def load_win(message : types.Message, state: FSMContext):
async with state.proxy() as data:
data['winers'] = message.text
await FSMAdmin.next()
await message.reply('Введите количество поражений:')
#@dp.message_handler(state=FSMAdmin.losers)
async def load_lose(message : types.Message, state: FSMContext):
async with state.proxy() as data:
data['losers'] = message.text
await botbd.sql_add_command(state)
await state.finish()
def register_handlers_client(dp : Dispatcher):
dp.register_message_handler(process_start_command, commands=['start'])
dp.register_message_handler(menu_command)
dp.register_message_handler(cm_start, commands='изменения', state=None)
dp.register_message_handler(load_win, state=FSMAdmin.winers)
dp.register_message_handler(load_lose, state=FSMAdmin.losers)
это в основном файле, который запускается:
from aiogram.utils import executor
from create_bot import dp
from handlers import client, other
from data_base import botbd
client.register_handlers_client(dp)
executor.start_polling(dp, skip_updates=True, on_startup=on_startup)
Это в файле с dp:
from aiogram import Bot
from aiogram.dispatcher import Dispatcher
from config import TOKEN
from aiogram.contrib.fsm_storage.memory import MemoryStorage
storage = MemoryStorage()
bot = Bot(token=TOKEN)
dp = Dispatcher(bot, storage=storage)