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.2.2.tar.gz (11.5 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.2.2-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for depspy-1.2.2.tar.gz
Algorithm Hash digest
SHA256 c65955bb0ed214f925c8b0563638f94c7ca0e5bf49c717cce16592ee56a81a50
MD5 9b526ac62fd8489627c466be70912312
BLAKE2b-256 60a529ce327a143cf7664c0900cd304270afaa2c9e1e16cea7a06ed1cd784077

See more details on using hashes here.

File details

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

File metadata

  • Download URL: depspy-1.2.2-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.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2974cfe036492d5480fbbd71de5e300bc1947a1155375673ef288a9c9aa034a0
MD5 d98e09a14fd8cd65682ee8852f3c9172
BLAKE2b-256 72c1b0d2049bfc2e83b60f2a961531313ba434fd750b094f2e7e70a0e3daf9c5

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