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

Uploaded Python 3

File details

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

File metadata

  • Download URL: depspy-1.2.3.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.3.tar.gz
Algorithm Hash digest
SHA256 448547b1104d0153a3d53ce990b4fed0b12e63d163320e88c967854328c7a1cb
MD5 712113fb466378d26e2712c02b93eac0
BLAKE2b-256 126a67f7409a618fcb6f14e1515789bda62bd1e998cefd9c360a3754ff08688c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: depspy-1.2.3-py3-none-any.whl
  • Upload date:
  • Size: 10.2 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3f27bbf16f13ce1b8cba0ee91079f2fb5e5df5e7c483ba7d28de253cad3f03df
MD5 2ca22d5c629c04ccb24638a59c0eceed
BLAKE2b-256 4a6f84c60c921fcf5ec215c34258aa2af95f120ba95745f77413b0d831235c87

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