Metadata-Version: 2.5
Name: yuchatlib
Version: 0.1.0
Summary: Библиотека для Public API YuChat
Project-URL: Documentation, https://docs.yuchat.ru/api-docs/category/api-documentation
Project-URL: Source, https://github.com/codegenIrlX/yuchatlib
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: aiohttp==3.14.3
Requires-Dist: pydantic==2.13.4
Provides-Extra: dev
Requires-Dist: mypy==1.20.2; extra == 'dev'
Requires-Dist: pytest==9.1.1; extra == 'dev'
Requires-Dist: ruff==0.16.3; extra == 'dev'
Provides-Extra: release
Requires-Dist: build==1.5.0; extra == 'release'
Requires-Dist: twine==7.0.0; extra == 'release'
Description-Content-Type: text/markdown

# yuchatlib

Асинхронная Python-библиотека для создания ботов YuChat.

Поддерживает long polling, команды, декораторы обработчиков, FSM, отправку и
редактирование сообщений. Данные API валидируются через Pydantic.

## Установка

```powershell
pip install yuchatlib==0.1.0
```

Требуется Python 3.12 или новее.

## Быстрый старт

```python
import asyncio

from yuchatlib import HandlerContext, UpdateListItemResponseDto, YuChatBot

bot = YuChatBot(
    token="your-token",
    workspace_id="your-workspace-id",
    base_url="https://your-yuchat-api.example",
    polling_interval=2,
    storage=None,
)


@bot.command(name="start", description="Начать работу")
async def start_command(
    update: UpdateListItemResponseDto,
    context: HandlerContext,
) -> None:
    del update
    await context.answer("👋 Привет!")


if __name__ == "__main__":
    asyncio.run(bot.run_polling())
```

## Отправка в указанный чат

```python
await bot.send_message(
    chat_id="target-chat-id",
    text="Сообщение в выбранный чат",
)
```

## Возможности

- long polling через `getUpdates`;
- команды вида `/start`;
- FSM и state-handler;
- отправка и редактирование сообщений;
- явная отправка по `chat_id`;
- асинхронная обработка разных чатов;
- Pydantic-валидация API.

При `storage=None` FSM и polling offset хранятся в памяти процесса и
сбрасываются после перезапуска.

[Документация Public API YuChat](https://docs.yuchat.ru/api-docs/category/api-documentation)
