Мониторинг категорий
Отслеживание цен конкурентов в категориях.
Хендлеры
@fp.router.on_lot_category()
Следит за обычными лотами. Срабатывает когда меняется цена или топ-1 в отслеживаемых категориях. Твои собственные лоты игнорируются.
@fp.router.on_lot_category()
async def lot_changed(lot: CategoryLastLot):
print(f'Конкурент {lot.owner_username} перебил цену до {lot.price}')
@fp.router.on_chip_category()
То же самое для чипсов (игровая валюта).
@fp.router.on_chip_category()
async def chip_changed(lot: CategoryLastLot):
print(f'Чипсы: {lot.offer_id} = {lot.price}')
Запуск мониторинга
Чтобы хендлеры срабатывали, нужно передать watch_lots и/или watch_chips в start_polling:
await fp.runner.start_polling(
3,
is_background=True,
watch_lots=[1316, 99], # ID категорий лотов
watch_chips=[55] # ID категорий чипсов
)
Объект CategoryLastLot
| Поле | Тип | Описание |
|---|---|---|
category_id |
str |
ID категории |
filtration |
str |
Название фильтра |
price |
float |
Цена лота |
offer_id |
str |
ID лота |
owner_username |
str |
Ник продавца |
CategoryManager (через account.category)
await fp.account.category.get_lot_category_last_lot(category_id)
Возвращает самый дешёвый лот по каждому фильтру в категории.
lots = await fp.account.category.get_lot_category_last_lot(1316)
for lot in lots:
print(f'{lot.filtration}: {lot.price} у {lot.owner_username}')
Возвращает list[CategoryLastLot].
await fp.account.category.get_chip_category_last_lot(category_id)
То же самое для чипсов.