Хочу создать телеграм бота который делает демотиваторы.
При создании столкнулся с проблемой.
File "C:\Users\a\Desktop\test\main.py", line 36, in text
dem = Demotivator(f'{message.text}')
TypeError: Demotivator() takes no arguments
Вот весь код:
from simpledemotivators import Demotivator
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.utils import executor
TOKEN = '5244362136:AAHcrhC42maCAHiRft_YFuzOikIVYsODObc'
storage=MemoryStorage()
bot = Bot(token=TOKEN)
dp = Dispatcher(bot, storage=storage)
class Demotivator(StatesGroup):
photo = State()
dem = State()
@dp.message_handler(commands=['start'], state=None)
async def start(message: types.Message):
await Demotivator.photo.set()
await message.reply('Отправь фото для демотиватора')
@dp.message_handler(content_types=['photo'], state=Demotivator.photo)
async def photo(message: types.Message, state: FSMContext):
await message.photo[-1].download('123.png')
await message.reply('Отправь текст для демотиватора')
await Demotivator.next()
@dp.message_handler(content_types=['text'], state=Demotivator.dem)
async def text(message: types.Message, state: FSMContext):
dem = Demotivator(f'{message.text}')
dem.create('123.png', result_filename=f'{message.from_user.id}.png')
photo = open(f'{message.from_user.id}.png', 'rb')
await bot.send_photo(message.chat.id, photo)
await state.finish()
if __name__ == "__main__":
executor.start_polling(dp, skip_updates=True)
Если просто запустить такой код:
from simpledemotivators import Demotivator
dem = Demotivator('Эй', 'что?')
dem.create('123.png', result_filename=f'1.png')
То все работает