50 lines
2.6 KiB
Python
50 lines
2.6 KiB
Python
# bot/handlers/commands/create_cmd.py
|
||
from aiogram import Router, F
|
||
from aiogram.filters import Command
|
||
from aiogram.types import Message, CallbackQuery, InlineKeyboardButton
|
||
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
||
|
||
from aiogram.fsm.context import FSMContext
|
||
|
||
from bot.core import BotInfo
|
||
from bot.states.anketa_states import StartForm
|
||
from bot.templates import msg_photo
|
||
from middleware import log
|
||
|
||
# Настройка экспорта и роутера
|
||
__all__ = ("router",)
|
||
router: Router = Router(name="create_cmd_router")
|
||
|
||
|
||
|
||
@router.callback_query(F.data == "create")
|
||
@router.message(Command('create','скуфеу', 'анкета', prefix=BotInfo.prefix, ignore_case=True))
|
||
@log(level='INFO', log_type='Start', text="использовал(а) команду /create")
|
||
async def create_cmd(message: Message|CallbackQuery, state: FSMContext) -> None:
|
||
"""
|
||
Обработчик команды /create.
|
||
"""
|
||
# Сбросим все состояния (отменим создание поста, если оно было)
|
||
await state.clear()
|
||
|
||
# Создание инлайн-клавиатуры
|
||
ikb: InlineKeyboardBuilder = InlineKeyboardBuilder()
|
||
ikb.row(InlineKeyboardButton(text="Правила❗️", url='https://teletype.in/@velli_arsaan/XxUiHcB4Puj'))
|
||
ikb.row(InlineKeyboardButton(text="Назад↪️", callback_data='start'))
|
||
|
||
# Создание базовых переменных сообщения
|
||
caption: str = f"""
|
||
Если вы хотели бы вступить в наш проект, то напоминаю, что вам сначала нужно ознакомиться с <b>инфо-каналом</b>! При продолжении диалога вы автоматически подтверждаете то, что прочитали все правила и в курсе, что мы ролевой проект, не флуд.
|
||
<blockquote>Чтобы вступить к вам мы просим вас заполнить небольшую анкету:
|
||
1. <i>Желаемая роль</i>;
|
||
2. <i>Кого бы вы хотели в соролы?</i>;
|
||
3. <i>Кодовая фраза из наших правил</i>;</blockquote>
|
||
[‼️] Оно состоит всего из 4 слов, которые разбросаны в верном порядке по статьям о правилах.
|
||
"""
|
||
# Установим состояние ожидания анкеты
|
||
await state.set_state(StartForm.waiting_for_application)
|
||
|
||
# Обработчик ответа на сообщение
|
||
await msg_photo(message=message, text=caption, file='assets/help.png', markup=ikb)
|
||
|