init
This commit is contained in:
48
routers/char_router.py
Normal file
48
routers/char_router.py
Normal file
@@ -0,0 +1,48 @@
|
||||
from aiogram.filters import Command
|
||||
from aiogram.fsm.context import FSMContext
|
||||
from aiogram.fsm.state import State, StatesGroup
|
||||
from aiogram.types import *
|
||||
from aiogram import Router, F
|
||||
|
||||
from models.Character import Character
|
||||
from repos.dao import DAO
|
||||
|
||||
router = Router()
|
||||
|
||||
|
||||
class States(StatesGroup):
|
||||
char_wait_name = State()
|
||||
char_wait_bio = State()
|
||||
|
||||
|
||||
@router.message(F.document, Command("add_char"))
|
||||
async def add_char(message: Message, state: FSMContext, dao: DAO):
|
||||
await state.set_data({"photo": bot.download(file=message.document.file_id)})
|
||||
await state.set_state(States.char_wait_name)
|
||||
await message.answer("Кайф, теперь напиши ее имя")
|
||||
|
||||
|
||||
@router.callback_query(States.char_wait_name)
|
||||
async def new_char_name(message: Message, state: FSMContext, dao: DAO):
|
||||
await state.set_data({"name": message.text})
|
||||
await state.set_state(States.char_wait_bio)
|
||||
await message.answer("А теперь напиши био. Хоть чуть чуть.")
|
||||
|
||||
|
||||
@router.callback_query(States.char_wait_bio)
|
||||
async def new_char_bio(message: Message, state: FSMContext, dao: DAO):
|
||||
data = await state.get_data()
|
||||
photo = data["photo"]
|
||||
name = data["name"]
|
||||
char = Character(id=None, name=name, character_image=photo, character_bio=message.text)
|
||||
await dao.chars.add_character(char)
|
||||
await message.answer_photo(photo=BufferedInputFile(char.character_image, "img.png"), caption="Персонаж создан!\n"
|
||||
f"Имя:{char.name}\n"
|
||||
f"Био: {char.character_bio}\n"
|
||||
)
|
||||
|
||||
|
||||
@router.message(Command("add_char"))
|
||||
async def add_char_cmd(message: Message):
|
||||
await message.answer(
|
||||
"Добавление персонажа производится через отправку документа-фото исходного изображения персонажа.")
|
||||
Reference in New Issue
Block a user