Асинхронная библиотека для работы с 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)- Получение информации об игроке по 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
Project details
Release history Release notifications | RSS feed
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.1.tar.gz
(11.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
depspy-1.1-py3-none-any.whl
(10.0 kB
view details)
File details
Details for the file depspy-1.1.tar.gz.
File metadata
- Download URL: depspy-1.1.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
801a3e4b0e2696354fa38d268bc14012a9ed3142d9d43f165bf5a5ecf6450832
|
|
| MD5 |
2e400a5b0993dab5c3aace4e41fe62a7
|
|
| BLAKE2b-256 |
85d9db284526e9285a6998d9feb04eae4cff4d10b29fe779e7b844b4d8d84d97
|
File details
Details for the file depspy-1.1-py3-none-any.whl.
File metadata
- Download URL: depspy-1.1-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aabd3bfdaf824b321318810ca279f5b9c9738e54d6dfc76d32f53fa1c36907a0
|
|
| MD5 |
c408e012fbd79e281b845b0d9a1c259f
|
|
| BLAKE2b-256 |
bea41c75625fc99707415f2d88be406b25868d0de58121fa9d19a93dc60a7421
|