PDA

Просмотр полной версии : DepsPy | библиотека для взаимодействия с Deps API на Python


fakelag28
16.06.2025, 20:13
DepsPy​Асинхронная библиотека для работы с Deps API на Python.

Библиотека доступна на PyPI, исходный код на GitHub (https://github.com/fakelag28/DepsPy).

Установка​

Код:






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

fakelag28
01.07.2025, 23:38
Добавил новые методы:

Python:






get_map
(
server_id
:
int
)
-
>
MapResponse
get_ghetto
(
server_id
:
int
)
-
>
GhettoResponse




Новые данные в объект игрока:


status: str
timestamp: int


Два примера для работы с новыми методами - ghetto_example.py (https://github.com/fakelag28/DepsPy/blob/main/examples/ghetto_example.py) и map_example.py (https://github.com/fakelag28/DepsPy/blob/main/examples/map_example.py)

Обновление до новой версии:

Bash:






pip
install
depspy --upgrade

fakelag28
11.07.2025, 19:44
Обновил модели под новую структуру ответов.

Bash:






pip
install
depspy --upgrade