Пишу запись песни и информации о ней в БД через машину состояний. Пытался реализовать через @dp.message_handler(content_types=['media'], state=FSMAdmin.media) и @dp.message_handler(content_types=['document'], state=FSMAdmin.media) но ничего не сработало, ошибок не выдает, просто не реагирует
Код машины состояний:
#Добавление треков
@dp.message_handler(lambda message: message.text == "Загрузить трек", state=None)
async def cm_start(message: types.Message):
if message.from_user.id in ADMIN:
await FSMAdmin.track.set() #Здесь Бот ожидает получить трек
await message.reply("Отправь трек", reply_markup=cancel_keyboard)
else:
await bot.send_message(message.from_user.id, "Не понимаю о чем ты, используй команду /start", reply_markup=start_keyboard)
#Обработка кнопки "назад"
@dp.message_handler(lambda message: message.text == "Назад", state=None)
async def back(message: types.Message):
if message.from_user.id in ADMIN:
await bot.send_message(message.from_user.id, "Хорошо", reply_markup=start_keyboard)
else:
await bot.send_message(message.from_user.id, "Не понимаю о чем ты, используй команду /start", reply_markup=start_keyboard)
#Получение трека
@dp.message_handler(content_types=['audio'], state=FSMAdmin.track)
async def load_audio(message: types.Message, state: FSMContext):
if message.from_user.id in ADMIN:
async with state.proxy() as data:
data['audio'] = message.audio.file_id
await FSMAdmin.next() #Здесь мы переходим к следующему шагу
await message.reply("Теперь пришли любой файл к треку")
#Получение названия тека и запрос медиа
@dp.message_handler(content_types=['media'], state=FSMAdmin.media)
async def load_media(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['media'] = message.document.file_id
await FSMAdmin.next()
await message.reply("Теперь пришли название песни")
#Получение названия и завершение
@dp.message_handler(content_types=['text'], state=FSMAdmin.name)
async def load_name(message: types.Message, state: FSMContext):
if message.from_user.id in ADMIN:
async with state.proxy() as data:
data['name'] = message.text
await sql_add_command(state)
await state.finish()
await message.reply("Готово!", reply_markup=admin_keyboard)
else:
await bot.send_message(message.from_user.id, "Не понимаю о чем ты, используй команду /start", reply_markup=start_keyboard)