Documentation Index
Fetch the complete documentation index at: https://docs.depscian.tech/llms.txt
Use this file to discover all available pages before exploring further.
Официальная библиотека depspy предоставляет удобный асинхронный интерфейс для работы с Deps API, инкапсулируя всю логику HTTP-запросов, обработки ошибок и кэширования.
Библиотека разработана и поддерживается контрибьютором @fakelag28.
Установка
Для установки последней версии библиотеки выполните команду в терминале:
Быстрый старт
Использование контекстного менеджера async with гарантирует корректное управление сессией и ресурсами.
import asyncio
from depspy import DepsClient
async def main():
# Обязательно используйте ваш API ключ
async with DepsClient("YOUR_API_KEY") as client:
player = await client.get_player(nickname="Nicolas_Reed", server_id=5)
print(player)
if __name__ == "__main__":
asyncio.run(main())
Ключевые особенности
Библиотека depspy разработана для максимальной эффективности и удобства разработчика.
Асинхронность
Полная поддержка asyncio для высокопроизводительных неблокирующих операций.
Надежность
Автоматические повторные попытки при сбоях и встроенная обработка ошибок API.
Типизация
Строгие модели данных Pydantic для валидации и удобной работы с ответами API.
Гибкость
Широкие возможности настройки клиента, включая прокси, таймауты и кэширование.
Примеры использования
import asyncio
from depspy import DepsClient
from depspy.errors import PlayerNotFoundError
async def main():
async with DepsClient("YOUR_API_KEY") as client:
try:
player = await client.get_player("Nicolas_Reed", server_id=5)
print(f"Найден игрок: {player.nickname}, уровень: {player.level}")
is_online = await client.is_player_online("Nicolas_Reed", server_id=5)
print(f"Игрок онлайн: {is_online}")
except PlayerNotFoundError:
print("Игрок с таким никнеймом не найден.")
except Exception as e:
print(f"Произошла ошибка: {e}")
if __name__ == "__main__":
asyncio.run(main())
import asyncio
from depspy import DepsClient
async def main():
async with DepsClient("YOUR_API_KEY") as client:
online_players = await client.get_online_players(server_id=5)
print(f"Всего онлайн на сервере: {len(online_players.data)}")
admins = await client.get_admins(server_id=5)
print(f"Администраторов онлайн: {len(admins.data)}")
interviews = await client.get_interviews(server_id=5)
if interviews.data:
print("Идут собеседования:")
for interview in interviews.data:
print(f"- {interview.name} (Лидер: {interview.leader})")
else:
print("Собеседования в данный момент не проводятся.")
if __name__ == "__main__":
asyncio.run(main())
import asyncio
from depspy import DepsClient
async def main():
async with DepsClient("YOUR_API_KEY") as client:
fractions = await client.get_fractions(server_id=5)
print(f"Доступные фракции для отслеживания: {fractions.data}")
if fractions.data:
fraction_id = fractions.data[0]
fraction_online = await client.get_fraction_online(server_id=5, fraction_id=fraction_id)
print(f"Онлайн во фракции '{fraction_id}': {len(fraction_online.data)}")
if __name__ == "__main__":
asyncio.run(main())
Обработка исключений
Библиотека автоматически преобразует коды ошибок API в типизированные исключения для удобной обработки.
import asyncio
from depspy import DepsClient
from depspy.errors import RateLimitError, UnauthorizedError
async def main():
async with DepsClient("INVALID_API_KEY") as client:
try:
await client.get_player("some_player", 1)
except UnauthorizedError:
print("Ошибка: Неверный или просроченный API ключ.")
except RateLimitError as e:
print(f"Превышен лимит запросов. Попробуйте через {e.retry_after} секунд.")
except Exception as e:
print(f"Произошла неизвестная ошибка: {e}")
if __name__ == "__main__":
asyncio.run(main())
Основные исключения: UnauthorizedError, RateLimitError, PlayerNotFoundError, ServerNotFoundError, APIError.
Расширенная настройка клиента
Вы можете тонко настроить клиент DepsClient при его инициализации, передав нужные параметры.
import logging
from depspy import DepsClient
client = DepsClient(
api_key="YOUR_API_KEY",
corporate_key=False,
timeout=30,
max_retries=3,
cache_ttl=300,
proxy="http://user:pass@host:port",
verify_ssl=True,
log_level=logging.INFO
)
| Параметр | Тип | По умолчанию | Описание |
|---|
api_key | str | - | Ваш API-ключ. |
corporate_key | bool | False | Использовать корпоративный ключ. |
base_url | str | https://api.depscian.tech/v2 | Базовый URL API. |
timeout | int | 30 | Таймаут запросов в секундах. |
max_retries | int | 3 | Макс. количество попыток при сбоях. |
cache_ttl | int | 300 | Время жизни кэша для запросов (в сек). |
proxy | str | None | URL прокси-сервера. |
verify_ssl | bool | True | Проверять ли SSL-сертификат. |
log_level | int | logging.WARNING | Уровень логирования. |