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.2.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.2-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: depspy-1.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 256cc754d7dc27ba60f3fd21957105f3bc35af479858f3eb54ea36951fae9c1d
MD5 fbebf2f77946beaa0ef789238e6a2fee
BLAKE2b-256 2e3af1987953d101afe4628312f593f506921a91644d623c530fb4016992e709

See more details on using hashes here.

File details

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

File metadata

  • Download URL: depspy-1.1.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.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f370b21ccd52ed636aed7dc0b16ed6850b8241badcc39b4b06d0747eba49ced6
MD5 13209992f30098f14c17ee5e1573cc87
BLAKE2b-256 e5f937fd1afb3a100f8d460eebdfb01102a62eaa1696107fd21e228c79f0700b

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