Асинхронная библиотека для работы с Deps API на Python.
pip install depspyimport 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