Пишу несложного бота на aiogram.
У меня есть две онлайн кнопки, после нажатия на любую из них бот запрашивает изображение и делает с ним разные действия. Как это реализовать? Вот код:
@dp.callback_query_handler(lambda c: c.data == 'button1')
async def process_callback_button1(callback_query: types.CallbackQuery):
await bot.answer_callback_query(callback_query.id)
await bot.delete_message(chat_id=callback_query.from_user.id, message_id=callback_query.message.message_id)
await bot.send_message(callback_query.from_user.id, 'Отправьте любое изображение')
@dp.callback_query_handler(lambda c: c.data == 'button2')
async def process_callback_button1(callback_query: types.CallbackQuery):
await bot.answer_callback_query(callback_query.id)
await bot.delete_message(chat_id=callback_query.from_user.id, message_id=callback_query.message.message_id)
await bot.send_message(callback_query.from_user.id, 'Отправьте фото с животным')
@dp.message_handler(content_types=['photo'])
async def get_photo(message: types.Message):
if types.CallbackQuery.data == 'button1':
await message.photo[-1].download('test.jpg')
path = os.getcwd()
await bot.send_photo(message.chat.id, types.InputFile(path + '/t.jpg'))
os.remove(path=path + '/t.jpg')
if types.CallbackQuery.data == 'button2':
await message.photo[-1].download('test.jpg')
path = os.getcwd()
x = load_image()
await message.answer(f'Мне кажется это: {predict(x)}')
os.remove(path=path + '/test.jpg')