This commit is contained in:
2025-06-08 20:55:08 +09:00
parent f7e0d17829
commit 7a75f79413
139 changed files with 10619 additions and 2340 deletions

View File

@@ -0,0 +1,58 @@
import logging
from aiogram.types import Message, CallbackQuery
from keyboards.inline.categories import categories_markup, category_cb
from keyboards.inline.products_from_catalog import product_markup, product_cb
from aiogram.utils.callback_data import CallbackData
from aiogram.types.chat import ChatActions
from loader import dp, db, bot
from .menu import catalog
from filters import IsUser
@dp.message_handler(IsUser(), text=catalog)
async def process_catalog(message: Message):
await message.answer('Выберите раздел, чтобы вывести список товаров:',
reply_markup=categories_markup())
@dp.callback_query_handler(IsUser(), category_cb.filter(action='view'))
async def category_callback_handler(query: CallbackQuery, callback_data: dict):
products = db.fetchall('''SELECT * FROM products product
WHERE product.tag = (SELECT title FROM categories WHERE idx=?)
AND product.idx NOT IN (SELECT idx FROM cart WHERE cid = ?)''',
(callback_data['id'], query.message.chat.id))
await query.answer('Все доступные товары.')
await show_products(query.message, products)
@dp.callback_query_handler(IsUser(), product_cb.filter(action='add'))
async def add_product_callback_handler(query: CallbackQuery, callback_data: dict):
db.query('INSERT INTO cart VALUES (?, ?, 1)',
(query.message.chat.id, callback_data['id']))
await query.answer('Товар добавлен в корзину!')
await query.message.delete()
async def show_products(m, products):
if len(products) == 0:
await m.answer('Здесь ничего нет 😢')
else:
await bot.send_chat_action(m.chat.id, ChatActions.TYPING)
for idx, title, body, image, price, _ in products:
markup = product_markup(idx, price)
text = f'<b>{title}</b>\n\n{body}'
await m.answer_photo(photo=image,
caption=text,
reply_markup=markup)