docs: полная документация всех API классов
Добавлены подробные docstrings для: UserAPI: - get_info(), get_reviews(), get_favorite_kworks() ReferenceAPI: - get_cities(), get_countries(), get_timezones() - get_features(), get_public_features(), get_badges_info() NotificationsAPI: - get_list(), fetch(), get_dialogs(), get_blocked_dialogs() OtherAPI: - get_wants(), get_wants_status(), get_kworks_status() - get_offers(), get_exchange_info(), get_channel() - get_in_app_notification(), get_security_user_data() - is_dialog_allow(), get_viewed_kworks() - get_favorite_categories(), update_settings() - go_offline(), get_actor() API property accessor'ы: - catalog, projects, user, reference, notifications, other Все методы задокументированы на русском с примерами.
This commit is contained in:
parent
25372e5182
commit
bc951cc763
@ -826,11 +826,21 @@ async def get_list(page: int = 1,
|
|||||||
async def get_payer_orders() -> list[Project]
|
async def get_payer_orders() -> list[Project]
|
||||||
```
|
```
|
||||||
|
|
||||||
Get orders where user is customer.
|
Получить заказы где вы являетесь заказчиком.
|
||||||
|
|
||||||
|
Возвращает все проекты, созданные текущим пользователем,
|
||||||
|
независимо от их статуса (открыт, в работе, завершён).
|
||||||
|
|
||||||
**Returns**:
|
**Returns**:
|
||||||
|
|
||||||
List of projects
|
Список проектов где текущий пользователь — заказчик.
|
||||||
|
|
||||||
|
|
||||||
|
**Example**:
|
||||||
|
|
||||||
|
orders = await client.projects.get_payer_orders()
|
||||||
|
for order in orders:
|
||||||
|
print(f"Заказ #{order.id}: {order.status}")
|
||||||
|
|
||||||
<a id="kwork_api.client.KworkClient.ProjectsAPI.get_worker_orders"></a>
|
<a id="kwork_api.client.KworkClient.ProjectsAPI.get_worker_orders"></a>
|
||||||
|
|
||||||
@ -840,11 +850,21 @@ Get orders where user is customer.
|
|||||||
async def get_worker_orders() -> list[Project]
|
async def get_worker_orders() -> list[Project]
|
||||||
```
|
```
|
||||||
|
|
||||||
Get orders where user is performer.
|
Получить заказы где вы являетесь исполнителем.
|
||||||
|
|
||||||
|
Возвращает все проекты, где текущий пользователь
|
||||||
|
назначен исполнителем.
|
||||||
|
|
||||||
**Returns**:
|
**Returns**:
|
||||||
|
|
||||||
List of projects
|
Список проектов где текущий пользователь — исполнитель.
|
||||||
|
|
||||||
|
|
||||||
|
**Example**:
|
||||||
|
|
||||||
|
work = await client.projects.get_worker_orders()
|
||||||
|
active = [p for p in work if p.status == "in_progress"]
|
||||||
|
print(f"Активных заказов: {len(active)}")
|
||||||
|
|
||||||
<a id="kwork_api.client.KworkClient.UserAPI"></a>
|
<a id="kwork_api.client.KworkClient.UserAPI"></a>
|
||||||
|
|
||||||
|
|||||||
@ -582,17 +582,46 @@ class KworkClient:
|
|||||||
# ========== User Endpoints ==========
|
# ========== User Endpoints ==========
|
||||||
|
|
||||||
class UserAPI:
|
class UserAPI:
|
||||||
"""User API endpoints."""
|
"""
|
||||||
|
Пользовательское API.
|
||||||
|
|
||||||
|
Предоставляет доступ к данным текущего пользователя:
|
||||||
|
- Профиль и информация об аккаунте
|
||||||
|
- Отзывы (полученные и оставленные)
|
||||||
|
- Избранные кворки
|
||||||
|
|
||||||
|
Example:
|
||||||
|
# Информация о пользователе
|
||||||
|
info = await client.user.get_info()
|
||||||
|
|
||||||
|
# Мои отзывы
|
||||||
|
reviews = await client.user.get_reviews()
|
||||||
|
|
||||||
|
# Избранные кворки
|
||||||
|
favorites = await client.user.get_favorite_kworks()
|
||||||
|
"""
|
||||||
|
|
||||||
def __init__(self, client: "KworkClient"):
|
def __init__(self, client: "KworkClient"):
|
||||||
self.client = client
|
self.client = client
|
||||||
|
|
||||||
async def get_info(self) -> dict[str, Any]:
|
async def get_info(self) -> dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Get current user info.
|
Получить информацию о текущем пользователе.
|
||||||
|
|
||||||
|
Возвращает основные данные аккаунта:
|
||||||
|
- ID, username, email
|
||||||
|
- Баланс, рейтинг
|
||||||
|
- Статус верификации
|
||||||
|
- Настройки профиля
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
User info dict
|
Словарь с информацией о пользователе.
|
||||||
|
Структура зависит от ответа API.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
info = await client.user.get_info()
|
||||||
|
print(f"User: {info.get('username')}")
|
||||||
|
print(f"Balance: {info.get('balance')} RUB")
|
||||||
"""
|
"""
|
||||||
return await self.client._request("POST", "/user")
|
return await self.client._request("POST", "/user")
|
||||||
|
|
||||||
@ -602,14 +631,30 @@ class KworkClient:
|
|||||||
page: int = 1,
|
page: int = 1,
|
||||||
) -> ReviewsResponse:
|
) -> ReviewsResponse:
|
||||||
"""
|
"""
|
||||||
Get user reviews.
|
Получить отзывы пользователя.
|
||||||
|
|
||||||
|
Если user_id не указан — возвращает отзывы текущего пользователя.
|
||||||
|
Если указан — отзывы другого пользователя по ID.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
user_id: User ID (None for current user)
|
user_id: ID пользователя. Если None — текущий пользователь.
|
||||||
page: Page number
|
page: Номер страницы для пагинации (начиная с 1).
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
ReviewsResponse
|
ReviewsResponse содержащий:
|
||||||
|
- reviews: список отзывов на странице
|
||||||
|
- pagination: информация о пагинации
|
||||||
|
- average_rating: средний рейтинг
|
||||||
|
|
||||||
|
Example:
|
||||||
|
# Мои отзывы
|
||||||
|
my_reviews = await client.user.get_reviews()
|
||||||
|
|
||||||
|
# Отзывы другого пользователя
|
||||||
|
user_reviews = await client.user.get_reviews(user_id=12345)
|
||||||
|
|
||||||
|
# С пагинацией
|
||||||
|
page2 = await client.user.get_reviews(page=2)
|
||||||
"""
|
"""
|
||||||
data = await self.client._request(
|
data = await self.client._request(
|
||||||
"POST",
|
"POST",
|
||||||
@ -620,10 +665,17 @@ class KworkClient:
|
|||||||
|
|
||||||
async def get_favorite_kworks(self) -> list[Kwork]:
|
async def get_favorite_kworks(self) -> list[Kwork]:
|
||||||
"""
|
"""
|
||||||
Get favorite kworks.
|
Получить список избранных кворков.
|
||||||
|
|
||||||
|
Возвращает все кворки, добавленные пользователем в избранное.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
List of kworks
|
Список избранных кворков.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
favorites = await client.user.get_favorite_kworks()
|
||||||
|
for kwork in favorites:
|
||||||
|
print(f"{kwork.title}: {kwork.price} RUB")
|
||||||
"""
|
"""
|
||||||
data = await self.client._request("POST", "/favoriteKworks")
|
data = await self.client._request("POST", "/favoriteKworks")
|
||||||
return [Kwork.model_validate(k) for k in data.get("kworks", [])]
|
return [Kwork.model_validate(k) for k in data.get("kworks", [])]
|
||||||
@ -631,111 +683,360 @@ class KworkClient:
|
|||||||
# ========== Reference Data Endpoints ==========
|
# ========== Reference Data Endpoints ==========
|
||||||
|
|
||||||
class ReferenceAPI:
|
class ReferenceAPI:
|
||||||
"""Reference data (cities, countries, etc.) endpoints."""
|
"""
|
||||||
|
Справочное API.
|
||||||
|
|
||||||
|
Предоставляет доступ к справочным данным Kwork:
|
||||||
|
- Города, страны, часовые пояса
|
||||||
|
- Доступные функции и дополнения
|
||||||
|
- Значки пользователей
|
||||||
|
|
||||||
|
Эти данные редко меняются и могут быть закэшированы.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
# Все страны
|
||||||
|
countries = await client.reference.get_countries()
|
||||||
|
|
||||||
|
# Все города
|
||||||
|
cities = await client.reference.get_cities()
|
||||||
|
|
||||||
|
# Доступные фичи
|
||||||
|
features = await client.reference.get_features()
|
||||||
|
"""
|
||||||
|
|
||||||
def __init__(self, client: "KworkClient"):
|
def __init__(self, client: "KworkClient"):
|
||||||
self.client = client
|
self.client = client
|
||||||
|
|
||||||
async def get_cities(self) -> list[City]:
|
async def get_cities(self) -> list[City]:
|
||||||
"""Get all cities."""
|
"""
|
||||||
|
Получить список всех городов.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Список всех городов из справочника Kwork.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
cities = await client.reference.get_cities()
|
||||||
|
moscow = next(c for c in cities if c.name == "Москва")
|
||||||
|
"""
|
||||||
data = await self.client._request("POST", "/cities")
|
data = await self.client._request("POST", "/cities")
|
||||||
return [City.model_validate(c) for c in data.get("cities", [])]
|
return [City.model_validate(c) for c in data.get("cities", [])]
|
||||||
|
|
||||||
async def get_countries(self) -> list[Country]:
|
async def get_countries(self) -> list[Country]:
|
||||||
"""Get all countries."""
|
"""
|
||||||
|
Получить список всех стран.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Список всех стран с кодами и городами.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
countries = await client.reference.get_countries()
|
||||||
|
russia = next(c for c in countries if c.code == "RU")
|
||||||
|
"""
|
||||||
data = await self.client._request("POST", "/countries")
|
data = await self.client._request("POST", "/countries")
|
||||||
return [Country.model_validate(c) for c in data.get("countries", [])]
|
return [Country.model_validate(c) for c in data.get("countries", [])]
|
||||||
|
|
||||||
async def get_timezones(self) -> list[TimeZone]:
|
async def get_timezones(self) -> list[TimeZone]:
|
||||||
"""Get all timezones."""
|
"""
|
||||||
|
Получить список всех часовых поясов.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Список часовых поясов с названиями и смещениями.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
timezones = await client.reference.get_timezones()
|
||||||
|
msks = next(tz for tz in timezones if "Moscow" in tz.name)
|
||||||
|
"""
|
||||||
data = await self.client._request("POST", "/timezones")
|
data = await self.client._request("POST", "/timezones")
|
||||||
return [TimeZone.model_validate(t) for t in data.get("timezones", [])]
|
return [TimeZone.model_validate(t) for t in data.get("timezones", [])]
|
||||||
|
|
||||||
async def get_features(self) -> list[Feature]:
|
async def get_features(self) -> list[Feature]:
|
||||||
"""Get available features."""
|
"""
|
||||||
|
Получить доступные дополнительные функции (features).
|
||||||
|
|
||||||
|
Features — это платные дополнения к кворкам:
|
||||||
|
- Увеличенные сроки
|
||||||
|
- Дополнительные правки
|
||||||
|
- Приоритетная поддержка
|
||||||
|
- и т.д.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Список доступных features с названиями и ценами.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
features = await client.reference.get_features()
|
||||||
|
for f in features:
|
||||||
|
print(f"{f.name}: {f.price} RUB")
|
||||||
|
"""
|
||||||
data = await self.client._request("POST", "/getAvailableFeatures")
|
data = await self.client._request("POST", "/getAvailableFeatures")
|
||||||
return [Feature.model_validate(f) for f in data.get("features", [])]
|
return [Feature.model_validate(f) for f in data.get("features", [])]
|
||||||
|
|
||||||
async def get_public_features(self) -> list[Feature]:
|
async def get_public_features(self) -> list[Feature]:
|
||||||
"""Get public features."""
|
"""
|
||||||
|
Получить публичные функции.
|
||||||
|
|
||||||
|
Аналогично get_features(), но возвращает только
|
||||||
|
публично доступные опции.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Список публичных features.
|
||||||
|
"""
|
||||||
data = await self.client._request("POST", "/getPublicFeatures")
|
data = await self.client._request("POST", "/getPublicFeatures")
|
||||||
return [Feature.model_validate(f) for f in data.get("features", [])]
|
return [Feature.model_validate(f) for f in data.get("features", [])]
|
||||||
|
|
||||||
async def get_badges_info(self) -> list[Badge]:
|
async def get_badges_info(self) -> list[Badge]:
|
||||||
"""Get badges info."""
|
"""
|
||||||
|
Получить информацию о значках пользователей.
|
||||||
|
|
||||||
|
Значки (badges) отображают достижения и статусы:
|
||||||
|
- "Профессионал"
|
||||||
|
- "Быстрый ответ"
|
||||||
|
- "Надёжный продавец"
|
||||||
|
- и т.д.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Список значков с описаниями и иконками.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
badges = await client.reference.get_badges_info()
|
||||||
|
for badge in badges:
|
||||||
|
print(f"{badge.name}: {badge.description}")
|
||||||
|
"""
|
||||||
data = await self.client._request("POST", "/getBadgesInfo")
|
data = await self.client._request("POST", "/getBadgesInfo")
|
||||||
return [Badge.model_validate(b) for b in data.get("badges", [])]
|
return [Badge.model_validate(b) for b in data.get("badges", [])]
|
||||||
|
|
||||||
# ========== Notifications & Messages ==========
|
# ========== Notifications & Messages ==========
|
||||||
|
|
||||||
class NotificationsAPI:
|
class NotificationsAPI:
|
||||||
"""Notifications and messages endpoints."""
|
"""
|
||||||
|
API уведомлений и сообщений.
|
||||||
|
|
||||||
|
Предоставляет доступ к системе уведомлений Kwork:
|
||||||
|
- Список уведомлений
|
||||||
|
- Получение новых уведомлений
|
||||||
|
- Диалоги с пользователями
|
||||||
|
- Заблокированные диалоги
|
||||||
|
|
||||||
|
Example:
|
||||||
|
# Все уведомления
|
||||||
|
notifications = await client.notifications.get_list()
|
||||||
|
|
||||||
|
# Новые уведомления
|
||||||
|
new = await client.notifications.fetch()
|
||||||
|
|
||||||
|
# Диалоги
|
||||||
|
dialogs = await client.notifications.get_dialogs()
|
||||||
|
"""
|
||||||
|
|
||||||
def __init__(self, client: "KworkClient"):
|
def __init__(self, client: "KworkClient"):
|
||||||
self.client = client
|
self.client = client
|
||||||
|
|
||||||
async def get_list(self) -> NotificationsResponse:
|
async def get_list(self) -> NotificationsResponse:
|
||||||
"""Get notifications list."""
|
"""
|
||||||
|
Получить список всех уведомлений.
|
||||||
|
|
||||||
|
Возвращает все уведомления пользователя с информацией
|
||||||
|
о прочтении.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
NotificationsResponse содержащий:
|
||||||
|
- notifications: список уведомлений
|
||||||
|
- unread_count: количество непрочитанных
|
||||||
|
|
||||||
|
Example:
|
||||||
|
notifs = await client.notifications.get_list()
|
||||||
|
print(f"Непрочитанных: {notifs.unread_count}")
|
||||||
|
|
||||||
|
for n in notifs.notifications:
|
||||||
|
if not n.is_read:
|
||||||
|
print(f"Новое: {n.title}")
|
||||||
|
"""
|
||||||
data = await self.client._request("POST", "/notifications")
|
data = await self.client._request("POST", "/notifications")
|
||||||
return NotificationsResponse.model_validate(data)
|
return NotificationsResponse.model_validate(data)
|
||||||
|
|
||||||
async def fetch(self) -> NotificationsResponse:
|
async def fetch(self) -> NotificationsResponse:
|
||||||
"""Fetch new notifications."""
|
"""
|
||||||
|
Получить новые уведомления.
|
||||||
|
|
||||||
|
Отличается от get_list() тем, что возвращает только
|
||||||
|
уведомления, появившиеся с момента последнего запроса.
|
||||||
|
Также может обновлять счётчик непрочитанных.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
NotificationsResponse с новыми уведомлениями.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
new_notifs = await client.notifications.fetch()
|
||||||
|
if new_notifs.unread_count > 0:
|
||||||
|
print(f"У вас {new_notifs.unread_count} новых уведомлений!")
|
||||||
|
"""
|
||||||
data = await self.client._request("POST", "/notificationsFetch")
|
data = await self.client._request("POST", "/notificationsFetch")
|
||||||
return NotificationsResponse.model_validate(data)
|
return NotificationsResponse.model_validate(data)
|
||||||
|
|
||||||
async def get_dialogs(self) -> list[Dialog]:
|
async def get_dialogs(self) -> list[Dialog]:
|
||||||
"""Get dialogs list."""
|
"""
|
||||||
|
Получить список диалогов (чатов).
|
||||||
|
|
||||||
|
Возвращает все активные диалоги пользователя с другими
|
||||||
|
пользователями Kwork.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Список диалогов с последней перепиской.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
dialogs = await client.notifications.get_dialogs()
|
||||||
|
for d in dialogs:
|
||||||
|
print(f"С {d.participant.username}: {d.last_message}")
|
||||||
|
"""
|
||||||
data = await self.client._request("POST", "/dialogs")
|
data = await self.client._request("POST", "/dialogs")
|
||||||
return [Dialog.model_validate(d) for d in data.get("dialogs", [])]
|
return [Dialog.model_validate(d) for d in data.get("dialogs", [])]
|
||||||
|
|
||||||
async def get_blocked_dialogs(self) -> list[Dialog]:
|
async def get_blocked_dialogs(self) -> list[Dialog]:
|
||||||
"""Get blocked dialogs."""
|
"""
|
||||||
|
Получить список заблокированных диалогов.
|
||||||
|
|
||||||
|
Возвращает диалоги с пользователями, которые были
|
||||||
|
заблокированы текущим пользователем.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Список заблокированных диалогов.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
blocked = await client.notifications.get_blocked_dialogs()
|
||||||
|
print(f"Заблокировано: {len(blocked)} пользователей")
|
||||||
|
"""
|
||||||
data = await self.client._request("POST", "/blockedDialogList")
|
data = await self.client._request("POST", "/blockedDialogList")
|
||||||
return [Dialog.model_validate(d) for d in data.get("dialogs", [])]
|
return [Dialog.model_validate(d) for d in data.get("dialogs", [])]
|
||||||
|
|
||||||
# ========== Other Endpoints ==========
|
# ========== Other Endpoints ==========
|
||||||
|
|
||||||
class OtherAPI:
|
class OtherAPI:
|
||||||
"""Other API endpoints."""
|
"""
|
||||||
|
Прочее API.
|
||||||
|
|
||||||
|
Вспомогательные эндпоинты которые не вошли в другие категории:
|
||||||
|
- Пользовательские настройки и предпочтения (wants)
|
||||||
|
- Статусы кворков и заказов
|
||||||
|
- Персональные предложения (offers)
|
||||||
|
- Настройки профиля
|
||||||
|
- Статус онлайн/оффлайн
|
||||||
|
|
||||||
|
Example:
|
||||||
|
# Пользовательские предпочтения
|
||||||
|
wants = await client.other.get_wants()
|
||||||
|
|
||||||
|
# Статус кворков
|
||||||
|
status = await client.other.get_kworks_status()
|
||||||
|
|
||||||
|
# Установить статус оффлайн
|
||||||
|
await client.other.go_offline()
|
||||||
|
"""
|
||||||
|
|
||||||
def __init__(self, client: "KworkClient"):
|
def __init__(self, client: "KworkClient"):
|
||||||
self.client = client
|
self.client = client
|
||||||
|
|
||||||
async def get_wants(self) -> dict[str, Any]:
|
async def get_wants(self) -> dict[str, Any]:
|
||||||
"""Get user wants."""
|
"""
|
||||||
|
Получить пользовательские предпочтения (wants).
|
||||||
|
|
||||||
|
Wants — это настройки интересов пользователя:
|
||||||
|
- Предпочитаемые категории
|
||||||
|
- Ключевые слова для мониторинга
|
||||||
|
- Фильтры для поиска
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Словарь с настройками предпочтений.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
wants = await client.other.get_wants()
|
||||||
|
print(wants)
|
||||||
|
"""
|
||||||
return await self.client._request("POST", "/myWants")
|
return await self.client._request("POST", "/myWants")
|
||||||
|
|
||||||
async def get_wants_status(self) -> dict[str, Any]:
|
async def get_wants_status(self) -> dict[str, Any]:
|
||||||
"""Get wants status."""
|
"""
|
||||||
|
Получить статус предпочтений.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Статус wants с метаданными.
|
||||||
|
"""
|
||||||
return await self.client._request("POST", "/wantsStatusList")
|
return await self.client._request("POST", "/wantsStatusList")
|
||||||
|
|
||||||
async def get_kworks_status(self) -> dict[str, Any]:
|
async def get_kworks_status(self) -> dict[str, Any]:
|
||||||
"""Get kworks status."""
|
"""
|
||||||
|
Получить статусы кворков пользователя.
|
||||||
|
|
||||||
|
Возвращает информацию о статусах всех кворков
|
||||||
|
текущего пользователя (активен, на модерации, и т.д.).
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Словарь со статусами кворков.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
status = await client.other.get_kworks_status()
|
||||||
|
print(status)
|
||||||
|
"""
|
||||||
return await self.client._request("POST", "/kworksStatusList")
|
return await self.client._request("POST", "/kworksStatusList")
|
||||||
|
|
||||||
async def get_offers(self) -> dict[str, Any]:
|
async def get_offers(self) -> dict[str, Any]:
|
||||||
"""Get offers."""
|
"""
|
||||||
|
Получить персональные предложения.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Список персональных предложений от Kwork.
|
||||||
|
"""
|
||||||
return await self.client._request("POST", "/offers")
|
return await self.client._request("POST", "/offers")
|
||||||
|
|
||||||
async def get_exchange_info(self) -> dict[str, Any]:
|
async def get_exchange_info(self) -> dict[str, Any]:
|
||||||
"""Get exchange info."""
|
"""
|
||||||
|
Получить информацию об обмене валюты.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Информация о курсах валют и обмене.
|
||||||
|
"""
|
||||||
return await self.client._request("POST", "/exchangeInfo")
|
return await self.client._request("POST", "/exchangeInfo")
|
||||||
|
|
||||||
async def get_channel(self) -> dict[str, Any]:
|
async def get_channel(self) -> dict[str, Any]:
|
||||||
"""Get channel info."""
|
"""
|
||||||
|
Получить информацию о канале пользователя.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Данные канала (если есть).
|
||||||
|
"""
|
||||||
return await self.client._request("POST", "/getChannel")
|
return await self.client._request("POST", "/getChannel")
|
||||||
|
|
||||||
async def get_in_app_notification(self) -> dict[str, Any]:
|
async def get_in_app_notification(self) -> dict[str, Any]:
|
||||||
"""Get in-app notification."""
|
"""
|
||||||
|
Получить внутриприложенное уведомление.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Данные in-app уведомления.
|
||||||
|
"""
|
||||||
return await self.client._request("POST", "/getInAppNotification")
|
return await self.client._request("POST", "/getInAppNotification")
|
||||||
|
|
||||||
async def get_security_user_data(self) -> dict[str, Any]:
|
async def get_security_user_data(self) -> dict[str, Any]:
|
||||||
"""Get security user data."""
|
"""
|
||||||
|
Получить данные безопасности пользователя.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Информация о безопасности аккаунта.
|
||||||
|
"""
|
||||||
return await self.client._request("POST", "/getSecurityUserData")
|
return await self.client._request("POST", "/getSecurityUserData")
|
||||||
|
|
||||||
async def is_dialog_allow(self, user_id: int) -> bool:
|
async def is_dialog_allow(self, user_id: int) -> bool:
|
||||||
"""Check if dialog is allowed."""
|
"""
|
||||||
|
Проверить возможность начала диалога с пользователем.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
user_id: ID пользователя для проверки.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
True если диалог разрешён, False иначе.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
allowed = await client.other.is_dialog_allow(12345)
|
||||||
|
if allowed:
|
||||||
|
print("Можно написать сообщение")
|
||||||
|
"""
|
||||||
data = await self.client._request(
|
data = await self.client._request(
|
||||||
"POST",
|
"POST",
|
||||||
"/isDialogAllow",
|
"/isDialogAllow",
|
||||||
@ -744,55 +1045,136 @@ class KworkClient:
|
|||||||
return data.get("allowed", False)
|
return data.get("allowed", False)
|
||||||
|
|
||||||
async def get_viewed_kworks(self) -> list[Kwork]:
|
async def get_viewed_kworks(self) -> list[Kwork]:
|
||||||
"""Get viewed kworks."""
|
"""
|
||||||
|
Получить просмотренные кворки.
|
||||||
|
|
||||||
|
Возвращает список кворков, которые пользователь
|
||||||
|
просматривал ранее.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Список просмотренных кворков.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
viewed = await client.other.get_viewed_kworks()
|
||||||
|
print(f"Просмотрено: {len(viewed)} кворков")
|
||||||
|
"""
|
||||||
data = await self.client._request("POST", "/viewedCatalogKworks")
|
data = await self.client._request("POST", "/viewedCatalogKworks")
|
||||||
return [Kwork.model_validate(k) for k in data.get("kworks", [])]
|
return [Kwork.model_validate(k) for k in data.get("kworks", [])]
|
||||||
|
|
||||||
async def get_favorite_categories(self) -> list[int]:
|
async def get_favorite_categories(self) -> list[int]:
|
||||||
"""Get favorite categories."""
|
"""
|
||||||
|
Получить ID избранных категорий.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Список ID категорий, добавленных в избранное.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
cats = await client.other.get_favorite_categories()
|
||||||
|
print(f"Избранные категории: {cats}")
|
||||||
|
"""
|
||||||
data = await self.client._request("POST", "/favoriteCategories")
|
data = await self.client._request("POST", "/favoriteCategories")
|
||||||
return data.get("categories", [])
|
return data.get("categories", [])
|
||||||
|
|
||||||
async def update_settings(self, settings: dict[str, Any]) -> dict[str, Any]:
|
async def update_settings(self, settings: dict[str, Any]) -> dict[str, Any]:
|
||||||
"""Update user settings."""
|
"""
|
||||||
|
Обновить настройки пользователя.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
settings: Словарь с настройками для обновления.
|
||||||
|
Структура зависит от конкретных настроек.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Ответ API с подтверждением обновления.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
await client.other.update_settings({
|
||||||
|
"email_notifications": True,
|
||||||
|
"language": "ru"
|
||||||
|
})
|
||||||
|
"""
|
||||||
return await self.client._request("POST", "/updateSettings", json=settings)
|
return await self.client._request("POST", "/updateSettings", json=settings)
|
||||||
|
|
||||||
async def go_offline(self) -> dict[str, Any]:
|
async def go_offline(self) -> dict[str, Any]:
|
||||||
"""Set user status to offline."""
|
"""
|
||||||
|
Установить статус пользователя "оффлайн".
|
||||||
|
|
||||||
|
Скрывает онлайн-статус от других пользователей.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Подтверждение изменения статуса.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
await client.other.go_offline()
|
||||||
|
"""
|
||||||
return await self.client._request("POST", "/offline")
|
return await self.client._request("POST", "/offline")
|
||||||
|
|
||||||
async def get_actor(self) -> dict[str, Any]:
|
async def get_actor(self) -> dict[str, Any]:
|
||||||
"""Get actor info."""
|
"""
|
||||||
|
Получить информацию об актёре (текущем пользователе).
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Данные актёра/пользователя.
|
||||||
|
"""
|
||||||
return await self.client._request("POST", "/actor")
|
return await self.client._request("POST", "/actor")
|
||||||
|
|
||||||
# ========== API Property Accessors ==========
|
# ========== API Property Accessors ==========
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def catalog(self) -> CatalogAPI:
|
def catalog(self) -> CatalogAPI:
|
||||||
"""Catalog API."""
|
"""
|
||||||
|
API каталога кворков.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
CatalogAPI для работы с каталогом.
|
||||||
|
"""
|
||||||
return self.CatalogAPI(self)
|
return self.CatalogAPI(self)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def projects(self) -> ProjectsAPI:
|
def projects(self) -> ProjectsAPI:
|
||||||
"""Projects API."""
|
"""
|
||||||
|
API биржи проектов.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
ProjectsAPI для работы с проектами.
|
||||||
|
"""
|
||||||
return self.ProjectsAPI(self)
|
return self.ProjectsAPI(self)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def user(self) -> UserAPI:
|
def user(self) -> UserAPI:
|
||||||
"""User API."""
|
"""
|
||||||
|
Пользовательское API.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
UserAPI для работы с профилем.
|
||||||
|
"""
|
||||||
return self.UserAPI(self)
|
return self.UserAPI(self)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def reference(self) -> ReferenceAPI:
|
def reference(self) -> ReferenceAPI:
|
||||||
"""Reference data API."""
|
"""
|
||||||
|
Справочное API.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
ReferenceAPI для справочных данных.
|
||||||
|
"""
|
||||||
return self.ReferenceAPI(self)
|
return self.ReferenceAPI(self)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def notifications(self) -> NotificationsAPI:
|
def notifications(self) -> NotificationsAPI:
|
||||||
"""Notifications API."""
|
"""
|
||||||
|
API уведомлений.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
NotificationsAPI для уведомлений и сообщений.
|
||||||
|
"""
|
||||||
return self.NotificationsAPI(self)
|
return self.NotificationsAPI(self)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def other(self) -> OtherAPI:
|
def other(self) -> OtherAPI:
|
||||||
"""Other endpoints."""
|
"""
|
||||||
|
Прочее API.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
OtherAPI для вспомогательных эндпоинтов.
|
||||||
|
"""
|
||||||
return self.OtherAPI(self)
|
return self.OtherAPI(self)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user