| fakelag28 |
16.06.2025 20:13 |
DepsPy Асинхронная библиотека для работы с Deps API на Python.
Библиотека доступна на PyPI, исходный код на GitHub.
Установка
Код:
Использование
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_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
|