/
ksilisk
/
spbtechrun_hack
Обзор
Документация
Войти
/
ksilisk
/
spbtechrun_hack
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
python/mcp/afisha_client.py
41 строка
1 KB
Shaliko Salimov
fixed api clients
05 дек 2025, 21:03
05 дек 2025, 21:03
f536349
Код
Авторство
О чём код?
from __future__ import annotations from datetime import datetime from typing import Any from base_client import YazzhBaseClient from mappers import map_afisha_events from yazzh import AfishaEvent class AfishaClient(YazzhBaseClient): """Клиент Афиши (/afisha/*).""" async def list_events( self, *, start_date: datetime | str | None, end_date: datetime | str | None, free: bool | None = None, kids: bool | None = None, format: str | None = "list", categoria: str | None = None, page: int | None = 1, count: int | None = 3, ) -> list[AfishaEvent]: params: dict[str, Any] = { "start_date": start_date if isinstance(start_date, str) or start_date is None else start_date.isoformat(), "end_date": end_date if isinstance(end_date, str) or end_date is None else end_date.isoformat(), "page": page, "count": count, } if free is not None: params["free"] = free if kids is not None: params["kids"] = kids if format is not None and format != "list": params["format"] = format if categoria is not None and categoria != "": params["categoria"] = categoria payload = await self._get("/afisha/all/", params=params) return map_afisha_events(payload)