Асинхронная библиотека для работы с 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)
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 верификация
Методы 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.3.0.tar.gz
(11.3 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.3.0-py3-none-any.whl
(10.4 kB
view details)
File details
Details for the file depspy-1.3.0.tar.gz.
File metadata
- Download URL: depspy-1.3.0.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a046e2585d16d66a95a9ebf933702d96c911367ecc2323661b035ecbd9695cb
|
|
| MD5 |
d3cd3ee03ec89a5eb2474ae8dfde7e0e
|
|
| BLAKE2b-256 |
ac7a839cafccf6d48eade50d46af4fffc71296a13a7813d533c796b9aff25052
|
File details
Details for the file depspy-1.3.0-py3-none-any.whl.
File metadata
- Download URL: depspy-1.3.0-py3-none-any.whl
- Upload date:
- Size: 10.4 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 |
0ab62866f7bb460ba9f5c700929179e0fd6c93edaa2ff2286e7ec15912add5d5
|
|
| MD5 |
8c3104da24a386b23fc97aa92ad34878
|
|
| BLAKE2b-256 |
192778860fd7766679b3622c713f7b7eb131edc7b2d293783178bd662c615547
|