Metadata-Version: 2.4
Name: asyncmaxbot
Version: 1.4.2
Summary: Асинхронная библиотека для создания ботов в MaxAPI
Author-email: SDK Infotech <info@sdkinfotech.com>
Maintainer-email: SDK Infotech <info@sdkinfotech.com>
License: MIT
Project-URL: Homepage, https://github.com/sdkinfotech/asyncmaxbot
Project-URL: Documentation, https://sdkinfotech.github.io/asyncmaxbot/
Project-URL: Repository, https://github.com/sdkinfotech/asyncmaxbot
Project-URL: Bug Tracker, https://github.com/sdkinfotech/asyncmaxbot/issues
Project-URL: Release Notes, https://github.com/sdkinfotech/asyncmaxbot/blob/main/CHANGELOG.md
Keywords: bot,api,async,maxapi,messaging
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Communications :: Chat
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohttp>=3.8.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: typing-extensions>=4.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=22.0.0; extra == "dev"
Requires-Dist: isort>=5.0.0; extra == "dev"
Requires-Dist: flake8>=5.0.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.4.0; extra == "docs"
Requires-Dist: mkdocs-material>=8.0.0; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.20.0; extra == "docs"
Dynamic: license-file

# AsyncMaxBot SDK

[![PyPI version](https://badge.fury.io/py/asyncmaxbot.svg)](https://badge.fury.io/py/asyncmaxbot)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Docs](https://img.shields.io/badge/docs-passing-brightgreen)](https://sdkinfotech.github.io/asyncmaxbot/)

**AsyncMaxBot SDK** — это современная асинхронная Python библиотека для создания ботов в Max Messenger API. Библиотека предоставляет удобный и мощный API для разработки ботов с поддержкой всех современных возможностей.

---

## ✨ Ключевые возможности

- **Полная асинхронность**: Построена на `asyncio` и `aiohttp` для максимальной производительности.
- **Мощные фильтры (`F`)**: Создавайте сложные правила для обработки сообщений с помощью Magic-фильтров.
- **Router-система**: Организуйте код в виде модулей для лучшей читаемости и поддержки.
- **Middleware**: Добавляйте собственную логику в процесс обработки обновлений.
- **Интерактивные клавиатуры**: Легко создавайте inline-кнопки и обрабатывайте callback-запросы.
- **Строгая типизация**: Все объекты API валидируются с помощью Pydantic для надежности вашего кода.
- **Обработка событий**: Реагируйте на системные события, такие как добавление пользователя в чат.

---

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

Вот пример простого эхо-бота, который также приветствует пользователя по команде `/start`.

**1. Установите библиотеку:**
```bash
pip install asyncmaxbot
```

**2. Напишите код вашего бота:**
```python
# bot.py
import asyncio
from maxbot import Bot, Dispatcher, Context, F

# Рекомендуется хранить токен в переменной окружения
TOKEN = "YOUR_TOKEN_HERE"

async def main():
    # Используем 'async with' для корректного управления сессией
    async with Bot(token=TOKEN) as bot:
        dp = Dispatcher(bot)

        # 1. Обработчик команды /start
        @dp.message_handler(F.command == "start")
        async def handle_start(ctx: Context):
            await ctx.reply(f"👋 Привет, {ctx.user.name}!")

        # 2. Обработчик для всех остальных текстовых сообщений
        @dp.message_handler(F.text)
        async def handle_echo(ctx: Context):
            await ctx.reply(f"Вы написали: {ctx.text}")

        # Запускаем получение обновлений
        print("Бот запущен...")
        await bot.polling(dispatcher=dp)

if __name__ == "__main__":
    try:
        asyncio.run(main())
    except KeyboardInterrupt:
        print("Бот остановлен.")

```

**3. Запустите бота:**
```bash
python bot.py
```

---

## 📚 Документация

Полное руководство по всем компонентам, классам и методам SDK доступно на нашем сайте документации:

### ➡️ **[Перейти к документации](https://sdkinfotech.github.io/asyncmaxbot/)**

На сайте вы найдете:
- Подробное **Руководство по API**.
- Коллекцию **рабочих примеров**, от простых до продвинутых.
- Лучшие практики по **структуре проекта**.

---

## 🔗 Официальные ресурсы Max Messenger

- **[Портал для разработчиков](https://dev.max.ru/docs)** — общая документация по платформе.
- **[Справочник по Bot API](https://dev.max.ru/docs-api)** — детальное описание всех методов API.
- **[Центр помощи](https://dev.max.ru/help)** — ответы на часто задаваемые вопросы.

---

## 🤝 Вклад в проект (Contributing)

Мы всегда рады помощи в развитии библиотеки! Если вы хотите внести свой вклад, пожалуйста, следуйте этим шагам.

### Для разработчиков
1.  **Форкните** репозиторий.
2.  Создайте новую ветку для вашей функциональности (`git checkout -b feature/AmazingFeature`).
3.  Внесите свои изменения и закоммитьте их (`git commit -m 'Add some AmazingFeature'`).
4.  Отправьте изменения в свой форк (`git push origin feature/AmazingFeature`).
5.  Создайте **Pull Request**.

### Для AI-ассистентов
Для автоматизации рутинных задач и соблюдения стандартов кодирования, пожалуйста, ознакомьтесь с руководством в файле **[AI_GUIDE.md](AI_GUIDE.md)**.
