Skip to main content

Асинхронная библиотека для работы с Deps API

Project description

DepsPy

Асинхронная библиотека для работы с Deps API на Python.

Установка

pip install depspy

Использование

import asyncio
from depspy import DepsClient

async def main():
    async with DepsClient("YOUR_API_KEY") as client:
        # Получение информации об игроке
        player = await client.get_player("Nicolas_Reed", 5)
        print(player)
        await asyncio.sleep(3)
        
        # Получение списка онлайн игроков
        online = await client.get_online_players(5)
        print(f"Онлайн игроков: {len(online.data)}")
        await asyncio.sleep(3)
        
        # Получение списка фракций
        fractions = await client.get_fractions(5)
        print(f"Доступно {len(fractions.data)} фракций: {fractions.data}")
        await asyncio.sleep(3)

        # Пробив каждой доступной фракции
        # Используем asyncio.sleep дабы не достигать минутный лимит
        for fraction_id in fractions.data:
            try:
                fraction_online = await client.get_fraction_online(5, fraction_id)
                print(f"Онлайн во фракции '{fraction_id}': {len(fraction_online.data)}")
                await asyncio.sleep(5)
            except Exception as e:
                print(f"Не удалось получить онлайн для фракции '{fraction_id}': {e}")
                await asyncio.sleep(5)

if __name__ == "__main__":
    asyncio.run(main())

Особенности

  • Полностью асинхронный API
  • Автоматическая обработка ошибок
  • Поддержка корпоративных ключей
  • Автоматические повторные попытки при ошибках
  • Типизация данных с помощью Pydantic
  • Поддержка контекстного менеджера
  • Встроенное кэширование запросов
  • Валидация входных данных
  • Подробное логирование
  • Поддержка прокси
  • Настраиваемые таймауты
  • SSL верификация

Методы API

Основные методы

  • get_player(nickname: str, server_id: int) - Получение информации об игроке
  • get_interviews(server_id: int) - Получение информации о собеседованиях
  • get_online_players(server_id: int) - Получение списка онлайн игроков
  • get_fractions(server_id: int) - Получение списка фракций
  • get_fraction_online(server_id: int, fraction_id: str) - Получение онлайн игроков фракции
  • get_admins(server_id: int) - Получение списка администраторов
  • get_status() - Получение статуса серверов

Дополнительные методы

  • get_player_by_id(player_id: int, server_id: int) - Получение информации об игроке по ID
  • get_server_info(server_id: int) - Получение информации о сервере
  • get_online_count(server_id: int) - Получение количества онлайн игроков
  • get_fraction_members_count(server_id: int, fraction_id: str) - Получение количества игроков во фракции
  • is_player_online(nickname: str, server_id: int) - Проверка онлайн статуса игрока
  • get_player_level(nickname: str, server_id: int) - Получение уровня игрока
  • get_player_money(nickname: str, server_id: int) - Получение информации о деньгах игрока
  • get_player_organization(nickname: str, server_id: int) - Получение информации об организации игрока
  • get_player_property(nickname: str, server_id: int) - Получение информации о собственности игрока
  • get_player_vip_info(nickname: str, server_id: int) - Получение VIP информации игрока

Обработка ошибок

Библиотека предоставляет следующие исключения:

Основные ошибки

  • UnauthorizedError - Ошибка авторизации
  • RateLimitError - Превышен лимит запросов
  • PlayerNotFoundError - Игрок не найден
  • ServerNotFoundError - Сервер не найден
  • APIError - Общая ошибка API

Дополнительные ошибки

  • InvalidAPIKeyError - Недействительный API ключ
  • ExpiredAPIKeyError - Истекший API ключ
  • InsufficientPermissionsError - Недостаточно прав
  • InvalidServerIDError - Недействительный ID сервера
  • InvalidNicknameError - Недействительный никнейм
  • InvalidFractionIDError - Недействительный ID фракции
  • ValidationError - Ошибка валидации данных
  • MaintenanceError - API на обслуживании
  • TimeoutError - Таймаут запроса
  • ConnectionError - Ошибка соединения
  • ProxyError - Ошибка прокси
  • SSLError - Ошибка SSL
  • DNSResolutionError - Ошибка разрешения DNS

Настройка клиента

client = DepsClient(
    api_key="YOUR_API_KEY",
    corporate_key=False,  # Использовать корпоративный ключ
    base_url="https://api.depscian.tech/v2",  # Базовый URL API
    timeout=30,  # Таймаут запросов в секундах
    max_retries=3,  # Максимальное количество попыток
    cache_ttl=300,  # Время жизни кэша в секундах
    proxy="http://proxy.example.com:8080",  # Прокси сервер
    verify_ssl=True,  # Проверка SSL сертификата
    log_level=logging.INFO  # Уровень логирования
)

Требования

  • Python 3.8+
  • aiohttp>=3.8.0
  • pydantic>=2.0.0

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

depspy-1.1.1.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

depspy-1.1.1-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file depspy-1.1.1.tar.gz.

File metadata

  • Download URL: depspy-1.1.1.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for depspy-1.1.1.tar.gz
Algorithm Hash digest
SHA256 b761df3a11b3e0ead5d8a18efe517bd6d24bf6a14acc1f8100c53fc24be2c196
MD5 16cd60e7905b7879e0ad20b3e4dfde33
BLAKE2b-256 551483b404e08da0d5f7d7f1114279bd53966e474b64915ad921054fdc5e8464

See more details on using hashes here.

File details

Details for the file depspy-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: depspy-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for depspy-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 67b0b1344c4db0c68ff5d7421a13faeb628578d5496081fccf7520cd3dbdc97c
MD5 c0c275ddf22218ba442ce6db5a972315
BLAKE2b-256 01c056b9970717ea25c3c65ed1a602d7672572905a427825f33c31951c613ca2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page