42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
from aiogram import Router, F
|
|
from aiogram.types import CallbackQuery
|
|
from aiogram.fsm.context import FSMContext
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from config import VERIFIED_ACCOUNTS
|
|
from misc.kb.client import (
|
|
render_catalogue,
|
|
)
|
|
from services.catalogue import CatalogueService
|
|
|
|
router = Router()
|
|
|
|
|
|
@router.callback_query(F.data.startswith("cat:"))
|
|
async def subcatalogue(
|
|
cb: CallbackQuery,
|
|
state: FSMContext,
|
|
session: AsyncSession,
|
|
catalogue_service: CatalogueService,
|
|
):
|
|
await state.clear()
|
|
|
|
cat_id = cb.data.split(":")[1]
|
|
is_admin = cb.from_user.id in VERIFIED_ACCOUNTS
|
|
|
|
view = await catalogue_service.build_category_view(session, cat_id)
|
|
kb = render_catalogue(view, is_admin=is_admin)
|
|
path = await catalogue_service.get_path(session, cat_id)
|
|
|
|
if cb.message.photo:
|
|
await cb.message.delete()
|
|
await cb.message.answer(
|
|
f"{path}",
|
|
reply_markup=kb,
|
|
)
|
|
return
|
|
await cb.message.edit_text(
|
|
f"{path}",
|
|
reply_markup=kb,
|
|
)
|