- 41
- 57
DepsPy
Асинхронная библиотека для работы с Deps API на Python.Библиотека доступна на PyPI, исходный код на GitHub.
Установка
Код:
pip install depspy
Использование
Python:
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)
# Пробив каждой доступной фракции
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)
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)
Обработка ошибок
Основные ошибки:- UnauthorizedError - Ошибка авторизации
- RateLimitError - Превышен лимит запросов
- PlayerNotFoundError - Игрок не найден
- ServerNotFoundError - Сервер не найден
- APIError - Общая ошибка API
Дополнительные ошибки:
- InvalidAPIKeyError
- ExpiredAPIKeyError
- InsufficientPermissionsError
- InvalidServerIDError
- InvalidNicknameError
- InvalidFractionIDError
- ValidationError
- MaintenanceError
- TimeoutError
- ConnectionError
- ProxyError
- SSLError
- DNSResolutionError
Настройка клиента
Python:
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