Add [verification]: add dialog without checking verification

This commit is contained in:
Kirill Samoylenkov 2025-11-07 15:45:15 +05:00
parent 00d87119d2
commit 0fb8c2ba6a
3 changed files with 96 additions and 12 deletions

View file

@ -1,21 +1,62 @@
from aiogram.types import CallbackQuery, Message
from sqlalchemy.ext.asyncio import AsyncSession
from bot.handlers import unverified_registry
from bot.utils.keyboards import get_menu_markup
from bot.services import VerificationStatus, verify_student
from bot.utils.keyboards import (
get_start_verification_markup,
get_verification_info_markup,
)
from bot.utils.types import ChatType
from database import TelegramUser
@unverified_registry.register(
triggers="menu",
triggers="verification_start",
chat_types=ChatType.PRIVATE,
description="Menu Callback Unverified Description",
description="Callback For Start Verification Description",
is_callback=True,
)
async def cmd_menu(call: CallbackQuery) -> None:
async def call_start_verification(call: CallbackQuery) -> None:
if not isinstance(call.message, Message):
return
await call.message.edit_text(
"Menu Callback Unverified Text",
reply_markup=get_menu_markup(),
"Message Info Verification Text",
reply_markup=get_verification_info_markup(),
)
@unverified_registry.register(
triggers="verification_attempt",
chat_types=ChatType.PRIVATE,
description="Callback For Attempt Verification Description",
is_callback=True,
)
async def call_attempt_verification(
call: CallbackQuery,
session: AsyncSession,
telegram_user: TelegramUser,
) -> None:
if not isinstance(call.message, Message):
return
status = await verify_student(
tg_user=telegram_user,
name="DON'T FORGET TO REPLACE THIS STUPID BULLSHIT TEMPLATE",
student_id=12302,
group_id="abc",
session=session,
)
if status == VerificationStatus.SUCCESSFULLY_BOUND:
await call.message.edit_text(
"Sucessfully!",
reply_markup=None,
)
return
await call.message.edit_text(
f"Error: {status}",
reply_markup=get_start_verification_markup(),
)

View file

@ -1,16 +1,16 @@
from aiogram.types import Message
from bot.handlers import unverified_registry
from bot.utils.keyboards import get_menu_markup
from bot.utils.keyboards import get_start_verification_markup
from bot.utils.types import ChatType
@unverified_registry.register(
chat_types=ChatType.PRIVATE,
description="Menu Message Unverified Description",
description="Message For Start Verification Description",
)
async def cmd_menu(message: Message) -> None:
async def msg_start_verification(message: Message) -> None:
await message.answer(
"Menu Message Unverified Text",
reply_markup=get_menu_markup(),
"Message For Start Verification Text",
reply_markup=get_start_verification_markup(),
)

View file

@ -1,4 +1,8 @@
__all__ = ["get_menu_markup"]
__all__ = [
"get_start_verification_markup",
"get_verification_info_markup",
"get_menu_markup",
]
from aiogram.utils.keyboard import (
@ -8,6 +12,45 @@ from aiogram.utils.keyboard import (
)
def get_start_verification_markup() -> InlineKeyboardMarkup:
"""
Reply markup for the bot verification start menu.
"""
builder = InlineKeyboardBuilder()
builder.add(
InlineKeyboardButton(
text="Start Verification",
callback_data="verification_start",
)
)
return builder.as_markup()
def get_verification_info_markup() -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.add(
InlineKeyboardButton(
text="Full name",
callback_data="verification_change_full_name",
),
InlineKeyboardButton(
text="Student ID",
callback_data="verification_change_student_id",
),
InlineKeyboardButton(
text="Group ID",
callback_data="verification_change_group_id",
),
InlineKeyboardButton(
text="Verify attempt",
callback_data="verification_attempt",
),
)
builder.adjust(1)
return builder.as_markup()
def get_menu_markup() -> InlineKeyboardMarkup:
"""
Reply markup for the bot callback menu & message menu.