Aiogram бот. Ошибка 'aiogram.utils.exceptions.MessageTextIsEmpty: Message text is empty'
Я хочу сделать телеграмм бота, который будет редактировать изображения. Редактор изображений управляется inline-кнопками. Библиотека для редактирования изображения Pillow. Python 3.9
bot.py:
import logging
from aiogram import Bot, Dispatcher, types
import RedImager
logging.basicConfig(level=logging.INFO)
bot = Bot(token='мой токен')
dp = Dispatcher(bot)
@dp.callback_query_handler(text="random_value")
async def send_random_value(call: types.CallbackQuery):
await call.message.answer(RedImager.imagemin())
@dp.message_handler(content_types=['photo'])
async def handle_docs_photo(message):
buttons = [
types.InlineKeyboardButton(text="Контраст", callback_data="random_value"),
types.InlineKeyboardButton(text="Оф. канал Telegram", url="tg://resolve?domain=telegram")
]
keyboard = types.InlineKeyboardMarkup(row_width=1)
keyboard.add(*buttons)
if await message.photo[-1].download(destination_file="test.jpg"):
await message.answer("Что вы хотите сделать с изображением?:", reply_markup=keyboard)
await bot.send_photo(photo='test.jpg', chat_id=message.chat.id)
async def main():
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())```
RedImager.py(Pillow):
```from PIL import Image
def imagemin():
filename = "test.jpg"
with Image.open(filename) as img:
img.load()
red, green, blue = img.split()
pustyye_pikseli = red.point(lambda _: 0)
krasnoye_sliyaniye = Image.merge("RGB", (red, pustyye_pikseli,
pustyye_pikseli))
krasnoye_sliyaniye.save(fp='test.jpg')