Асинхронная Python библиотека для MAX API
Project description
MaxBridge
Асинхронная Python библиотека для взаимодействия с API мессенджера MAX через WebSocket соединение.
Описание
MaxBridge предоставляет удобный интерфейс для работы с мессенджером MAX, позволяя отправлять и получать сообщения, управлять чатами, пользователями и файлами в асинхронном режиме.
🚀 Быстрый старт
import asyncio
from maxbridge import MaxClient
async def main():
async with MaxClient() as client:
# Авторизация по токену
await client.login_by_token("ваш_токен")
# Получение списка чатов
chats = client.get_cached_chats()
print(f"Найдено чатов: {len(chats)}")
asyncio.run(main())
📦 Установка
# Установка из PyPI (предполагается, что пакет опубликован)
pip install maxbridge
# Или из исходников
git clone https://github.com/Sereuser/max-bridge.git
cd max-bridge
pip install -e .
🔐 Авторизация
По токену
Важно: Для авторизации необходимо получить токен доступа из веб-версии MAX.
Как получить токен:
- Откройте https://web.max.ru в браузере
- Авторизуйтесь в вашем аккаунте
- Откройте DevTools (F12) → Application → Local Storage → https://web.max.ru
- Найдите ключ
tokenи скопируйте его значение
async with MaxClient() as client:
await client.login_by_token("ваш_длинный_токен")
Примечание: Токен является конфиденциальной информацией. Храните его securely.
💬 Работа с чатами
Получение списка чатов
chats = client.get_cached_chats()
for chat_id, chat_info in chats.items():
print(f"ID: {chat_id}, Тип: {chat_info['type']}, Название: {chat_info.get('title', 'Диалог')}")
Получение сообщений чата
messages = await client.get_chat_messages(chat_id=123456, count=50, offset=0)
if "payload" in messages and "messages" in messages["payload"]:
for msg_id, msg in messages["payload"]["messages"].items():
print(f"{msg['sender']}: {msg['text']}")
📨 Отправка сообщений
from maxbridge.functions import messages
# Текстовое сообщение
await messages.send_message(client, chat_id=123456, text="Привет!")
# С фото
await messages.send_photo(client, chat_id=123456, image_path="photo.jpg", caption="Фото")
# Реплай
await messages.reply_message(client, chat_id=123456, text="Ответ", reply_to_message_id="msg_id")
👥 Управление пользователями
from maxbridge.functions import users
# Информация о пользователях
user_info = await users.resolve_users(client, user_ids=[12345, 67890])
# Добавить в контакты
await users.add_to_contacts(client, user_id=12345)
📁 Работа с файлами
from maxbridge.functions import messages, uploads
# Отправка файла
await messages.send_file(client, chat_id=123456, file_path="document.pdf", caption="Документ")
# Скачивание файла
download_url = await uploads.download_file(
client, chat_id=123456, message_id="msg_id", file_id=789
)
📺 Работа с медиа
# Скачивание видео
video_url = await uploads.download_video(
client, chat_id=123456, message_id="msg_id", video_id=101112
)
👥 Группы и каналы
from maxbridge.functions import groups, channels
# Создание группы
await groups.create_group(client, "Название группы", participant_ids=[123, 456])
# Присоединение к каналу
await channels.join_channel(client, "username_канала")
# Информация о канале
channel_info = await channels.resolve_channel_username(client, "username")
🛠️ Обработка ошибок
from maxbridge.exceptions import APIError, ConnectionError
try:
await client.login_by_token("токен")
except APIError as e:
print(f"Ошибка API {e.error_code}: {e.message}")
except ConnectionError:
print("Ошибка подключения")
📊 Модели данных
from maxbridge.models import User, Chat, Message
# Примеры
user = User(id=123, name="Имя", username="username")
chat = Chat(id=456, title="Название", type="DIALOG")
message = Message(id="msg_id", chat_id=456, user_id=123, text="Текст")
🔧 Продвинутые возможности
Обработка событий в реальном времени
def event_handler(client, packet):
if packet.get("opcode") == 64: # Новое сообщение
print("Новое сообщение!")
client.set_packet_callback(event_handler)
Кастомные настройки
# Профиль
profile = client.profile
# Кэшированные пользователи
users = client.get_cached_users()
📚 Документация
🏗️ Структура проекта
maxbridge/
├── __init__.py
├── client.py # WebSocket клиент
├── models.py # Модели данных
├── exceptions.py # Исключения
├── packet.py # Обработка пакетов
└── functions/ # API функции
├── __init__.py
├── messages.py # Сообщения
├── users.py # Пользователи
├── groups.py # Группы
├── channels.py # Каналы
├── profile.py # Профиль
└── uploads.py # Загрузки
docs/ # Документация
examples/ # Примеры
⚠️ Важные замечания
- Все методы асинхронные — используйте
await - Рекомендуется
async with MaxClient() as client: - Токены имеют срок действия
- Соблюдайте лимиты API
🐛 Отладка
import logging
logging.basicConfig(level=logging.INFO)
📄 Лицензия
MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file maxbridge_client-0.2.2.tar.gz.
File metadata
- Download URL: maxbridge_client-0.2.2.tar.gz
- Upload date:
- Size: 21.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33a3326802820e362a633a1d71bd3c10cd0b6720cc205603ae79e5a3577bd997
|
|
| MD5 |
beb0d370d51eb1636c24f7a4233360f3
|
|
| BLAKE2b-256 |
20cfaed75dc3244a0478fc13342113a1e1f6cbf7a685a0932319b49fa0be1972
|
File details
Details for the file maxbridge_client-0.2.2-py3-none-any.whl.
File metadata
- Download URL: maxbridge_client-0.2.2-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e25818c5d82a2ff14c3f74a191a520d7bd606803caac910e5860c3dc24d292bf
|
|
| MD5 |
05b694e2809e23b0f9de1ce8b5d80253
|
|
| BLAKE2b-256 |
b082068c075d70d5201121502999e84e459d54fec38450908af15e807ec16652
|