Асинхронная библиотека для работы с 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)
if player:
print(player)
online = await client.get_online_players(5)
if online and online.data:
print(f"Онлайн игроков: {len(online.data)}")
fractions = await client.get_fractions(5)
if fractions and fractions.data:
print(f"Доступно {len(fractions.data)} фракций: {fractions.data}")
if fractions and fractions.data:
for fraction_id in fractions.data:
try:
fraction_online = await client.get_fraction_online(5, fraction_id)
if fraction_online and fraction_online.data:
print(f"Онлайн во фракции '{fraction_id}': {len(fraction_online.data)}")
except Exception as e:
print(f"Не удалось получить онлайн для фракции '{fraction_id}': {e}")
if __name__ == "__main__":
asyncio.run(main())
- Полностью асинхронный API
- Автоматическая обработка ошибок
- Поддержка корпоративных ключей
- Автоматические повторные попытки при ошибках
- Типизация данных с помощью Pydantic
- Поддержка контекстного менеджера
- Встроенное кэширование запросов
- Валидация входных данных
- Подробное логирование
- Поддержка прокси
- Настраиваемые таймауты
- SSL верификация
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)
- Получение информации об игроке по IDget_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
- Ошибка SSLDNSResolutionError
- Ошибка разрешения 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