Client API¶
kwork_api.client.KworkClient ¶
KworkClient(
token=None, cookies=None, timeout=30.0, base_url=None
)
Асинхронный клиент для Kwork.ru API.
Предоставляет доступ ко всем основным эндпоинтам Kwork API: - Каталог кворков и поиск - Биржа проектов (фриланс заказы) - Пользовательские данные и отзывы - Уведомления и сообщения - Справочные данные (города, страны, категории)
Аутентификация
Клиент использует двухэтапную аутентификацию Kwork: 1. POST /signIn — получение session cookies 2. POST /getWebAuthToken — получение web_auth_token
Примеры использования
Вход по логину/паролю¶
async with await KworkClient.login("username", "password") as client: catalog = await client.catalog.get_list(page=1)
Восстановление сессии по токену¶
client = KworkClient(token="saved_web_auth_token") user_info = await client.user.get_info()
Работа с проектами¶
projects = await client.projects.get_list(page=1) my_orders = await client.projects.get_payer_orders()
Attributes:
| Name | Type | Description |
|---|---|---|
catalog |
CatalogAPI
|
Доступ к каталогу кворков |
projects |
ProjectsAPI
|
Доступ к бирже проектов |
user |
UserAPI
|
Пользовательские эндпоинты |
reference |
ReferenceAPI
|
Справочные данные |
notifications |
NotificationsAPI
|
Уведомления и сообщения |
other |
OtherAPI
|
Прочие эндпоинты |
Note
Клиент поддерживает context manager для автоматического закрытия соединения.
Рекомендуется использовать async with для корректного освобождения ресурсов.
Инициализация клиента.
Создаёт неаутентифицированный клиент или восстанавливает сессию по ранее полученному токену.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
token
|
Optional[str]
|
Web auth token, полученный через |
None
|
cookies
|
Optional[dict[str, str]]
|
Session cookies из предыдущей аутентификации. Обычно не требуется — устанавливаются автоматически из token. |
None
|
timeout
|
float
|
Таймаут HTTP запросов в секундах. По умолчанию 30 секунд. |
30.0
|
base_url
|
Optional[str]
|
Кастомный базовый URL. Используется только для тестирования. |
None
|
Example
Новый клиент без аутентификации¶
client = KworkClient()
Восстановление сессии¶
client = KworkClient(token="eyJ0eXAiOiJKV1QiLCJhbGc...")
Клиент с кастомным таймаутом¶
client = KworkClient(timeout=60.0)
Note
Для полноценной работы API требуется аутентификация.
Используйте login() или передайте сохранённый token.
Source code in src/kwork_api/client.py
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | |
Attributes¶
cookies
property
¶
cookies
credentials
property
¶
credentials
Учётные данные для восстановления сессии.
Returns:
| Type | Description |
|---|---|
dict[str, Optional[str]]
|
Словарь с token и cookies для передачи в KworkClient(). |
token
property
¶
token
Web auth token для аутентификации.
Returns:
| Type | Description |
|---|---|
Optional[str]
|
Токен или None если клиент не аутентифицирован. |
Classes¶
CatalogAPI ¶
CatalogAPI(client)
API каталога кворков.
Предоставляет доступ к каталогу услуг Kwork: - Поиск и фильтрация кворков - Получение детальной информации - Категории и сортировка
Example
Получить первую страницу каталога¶
catalog = await client.catalog.get_list(page=1)
Фильтрация по категории¶
catalog = await client.catalog.get_list(category_id=5)
Детали конкретного кворка¶
details = await client.catalog.get_details(kwork_id=12345)
Source code in src/kwork_api/client.py
419 420 | |
Functions¶
get_details
async
¶
get_details(kwork_id)
Получить полную информацию о кворке.
Возвращает расширенную информацию о кворке включая: - Полное описание и требования - Сроки выполнения и количество правок - Дополнительные опции (features) - FAQ от продавца
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
kwork_id
|
int
|
Уникальный идентификатор кворка. |
required |
Returns:
| Type | Description |
|---|---|
KworkDetails
|
KworkDetails с полной информацией о кворке. |
Raises:
| Type | Description |
|---|---|
KworkNotFoundError
|
Если кворк с таким ID не найден. |
Example
details = await client.catalog.get_details(12345) print(f"Название: {details.title}") print(f"Цена: {details.price} {details.currency}") print(f"Срок: {details.delivery_time} дней") print(f"Правки: {details.revisions}")
Source code in src/kwork_api/client.py
478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 | |
get_details_extra
async
¶
get_details_extra(kwork_id)
Получить дополнительные детали кворка.
Возвращает расширенную информацию, которая не включена в основной ответ get_details(). Может содержать: - Дополнительные изображения - Видео обзоры - Детали пакетов услуг - Статистику продаж
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
kwork_id
|
int
|
Уникальный идентификатор кворка. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Словарь с дополнительными данными. Структура зависит |
dict[str, Any]
|
от конкретного кворка и не гарантируется стабильной. |
Note
Этот эндпоинт возвращает "сырые" данные без валидации. Структура ответа может измениться без предупреждения.
Source code in src/kwork_api/client.py
511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 | |
get_list
async
¶
get_list(page=1, category_id=None, sort='recommend')
Получить список кворков из каталога.
Основной эндпоинт для поиска и просмотра кворков. Возвращает пагинированный список с возможностью фильтрации.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
page
|
int
|
Номер страницы для пагинации (начиная с 1). |
1
|
category_id
|
Optional[int]
|
ID категории для фильтрации. Если None — все категории. |
None
|
sort
|
str
|
Опция сортировки. Варианты: - "recommend" — по рекомендации (по умолчанию) - "price_asc" — по возрастанию цены - "price_desc" — по убыванию цены - "rating" — по рейтингу - "reviews" — по количеству отзывов - "newest" — по дате создания |
'recommend'
|
Returns:
| Type | Description |
|---|---|
CatalogResponse
|
CatalogResponse содержащий: |
CatalogResponse
|
|
CatalogResponse
|
|
CatalogResponse
|
|
CatalogResponse
|
|
Example
Первая страница, сортировка по цене¶
response = await client.catalog.get_list( page=1, sort="price_asc" )
for kwork in response.kworks: print(f"{kwork.title}: {kwork.price} RUB")
Пагинация¶
if response.pagination and response.pagination.has_next: next_page = await client.catalog.get_list(page=2)
Source code in src/kwork_api/client.py
422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 | |
NotificationsAPI ¶
NotificationsAPI(client)
API уведомлений и сообщений.
Предоставляет доступ к системе уведомлений Kwork: - Список уведомлений - Получение новых уведомлений - Диалоги с пользователями - Заблокированные диалоги
Example
Все уведомления¶
notifications = await client.notifications.get_list()
Новые уведомления¶
new = await client.notifications.fetch()
Диалоги¶
dialogs = await client.notifications.get_dialogs()
Source code in src/kwork_api/client.py
892 893 | |
Functions¶
fetch
async
¶
fetch()
Получить новые уведомления.
Отличается от get_list() тем, что возвращает только уведомления, появившиеся с момента последнего запроса. Также может обновлять счётчик непрочитанных.
Returns:
| Type | Description |
|---|---|
NotificationsResponse
|
NotificationsResponse с новыми уведомлениями. |
Example
new_notifs = await client.notifications.fetch() if new_notifs.unread_count > 0: print(f"У вас {new_notifs.unread_count} новых уведомлений!")
Source code in src/kwork_api/client.py
918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 | |
get_blocked_dialogs
async
¶
get_blocked_dialogs()
Получить список заблокированных диалогов.
Возвращает диалоги с пользователями, которые были заблокированы текущим пользователем.
Returns:
| Type | Description |
|---|---|
list[Dialog]
|
Список заблокированных диалогов. |
Example
blocked = await client.notifications.get_blocked_dialogs() print(f"Заблокировано: {len(blocked)} пользователей")
Source code in src/kwork_api/client.py
955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 | |
get_dialogs
async
¶
get_dialogs()
Получить список диалогов (чатов).
Возвращает все активные диалоги пользователя с другими пользователями Kwork.
Returns:
| Type | Description |
|---|---|
list[Dialog]
|
Список диалогов с последней перепиской. |
Example
dialogs = await client.notifications.get_dialogs() for d in dialogs: print(f"С {d.participant.username}: {d.last_message}")
Source code in src/kwork_api/client.py
937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 | |
get_list
async
¶
get_list()
Получить список всех уведомлений.
Возвращает все уведомления пользователя с информацией о прочтении.
Returns:
| Type | Description |
|---|---|
NotificationsResponse
|
NotificationsResponse содержащий: |
NotificationsResponse
|
|
NotificationsResponse
|
|
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}")
Source code in src/kwork_api/client.py
895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 | |
OtherAPI ¶
OtherAPI(client)
Прочее API.
Вспомогательные эндпоинты которые не вошли в другие категории: - Пользовательские настройки и предпочтения (wants) - Статусы кворков и заказов - Персональные предложения (offers) - Настройки профиля - Статус онлайн/оффлайн
Example
Пользовательские предпочтения¶
wants = await client.other.get_wants()
Статус кворков¶
status = await client.other.get_kworks_status()
Установить статус оффлайн¶
await client.other.go_offline()
Source code in src/kwork_api/client.py
996 997 | |
Functions¶
get_actor
async
¶
get_actor()
Получить информацию об актёре (текущем пользователе).
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Данные актёра/пользователя. |
Source code in src/kwork_api/client.py
1173 1174 1175 1176 1177 1178 1179 1180 | |
get_channel
async
¶
get_channel()
Получить информацию о канале пользователя.
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Данные канала (если есть). |
Source code in src/kwork_api/client.py
1060 1061 1062 1063 1064 1065 1066 1067 | |
get_exchange_info
async
¶
get_exchange_info()
Получить информацию об обмене валюты.
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Информация о курсах валют и обмене. |
Source code in src/kwork_api/client.py
1051 1052 1053 1054 1055 1056 1057 1058 | |
get_favorite_categories
async
¶
get_favorite_categories()
Получить ID избранных категорий.
Returns:
| Type | Description |
|---|---|
list[int]
|
Список ID категорий, добавленных в избранное. |
Example
cats = await client.other.get_favorite_categories() print(f"Избранные категории: {cats}")
Source code in src/kwork_api/client.py
1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 | |
get_in_app_notification
async
¶
get_in_app_notification()
Получить внутриприложенное уведомление.
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Данные in-app уведомления. |
Source code in src/kwork_api/client.py
1069 1070 1071 1072 1073 1074 1075 1076 | |
get_kworks_status
async
¶
get_kworks_status()
Получить статусы кворков пользователя.
Возвращает информацию о статусах всех кворков текущего пользователя (активен, на модерации, и т.д.).
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Словарь со статусами кворков. |
Example
status = await client.other.get_kworks_status() print(status)
Source code in src/kwork_api/client.py
1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 | |
get_offers
async
¶
get_offers()
Получить персональные предложения.
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Список персональных предложений от Kwork. |
Source code in src/kwork_api/client.py
1042 1043 1044 1045 1046 1047 1048 1049 | |
get_security_user_data
async
¶
get_security_user_data()
Получить данные безопасности пользователя.
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Информация о безопасности аккаунта. |
Source code in src/kwork_api/client.py
1078 1079 1080 1081 1082 1083 1084 1085 | |
get_viewed_kworks
async
¶
get_viewed_kworks()
Получить просмотренные кворки.
Возвращает список кворков, которые пользователь просматривал ранее.
Returns:
| Type | Description |
|---|---|
list[Kwork]
|
Список просмотренных кворков. |
Example
viewed = await client.other.get_viewed_kworks() print(f"Просмотрено: {len(viewed)} кворков")
Source code in src/kwork_api/client.py
1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 | |
get_wants
async
¶
get_wants()
Получить пользовательские предпочтения (wants).
Wants — это настройки интересов пользователя: - Предпочитаемые категории - Ключевые слова для мониторинга - Фильтры для поиска
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Словарь с настройками предпочтений. |
Example
wants = await client.other.get_wants() print(wants)
Source code in src/kwork_api/client.py
999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 | |
get_wants_status
async
¶
get_wants_status()
Получить статус предпочтений.
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Статус wants с метаданными. |
Source code in src/kwork_api/client.py
1017 1018 1019 1020 1021 1022 1023 1024 | |
go_offline
async
¶
go_offline()
Установить статус пользователя "оффлайн".
Скрывает онлайн-статус от других пользователей.
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Подтверждение изменения статуса. |
Example
await client.other.go_offline()
Source code in src/kwork_api/client.py
1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 | |
is_dialog_allow
async
¶
is_dialog_allow(user_id)
Проверить возможность начала диалога с пользователем.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
int
|
ID пользователя для проверки. |
required |
Returns:
| Type | Description |
|---|---|
bool
|
True если диалог разрешён, False иначе. |
Example
allowed = await client.other.is_dialog_allow(12345) if allowed: print("Можно написать сообщение")
Source code in src/kwork_api/client.py
1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 | |
update_settings
async
¶
update_settings(settings)
Обновить настройки пользователя.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
settings
|
dict[str, Any]
|
Словарь с настройками для обновления. Структура зависит от конкретных настроек. |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Ответ API с подтверждением обновления. |
Example
await client.other.update_settings({ "email_notifications": True, "language": "ru" })
Source code in src/kwork_api/client.py
1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 | |
validate_text
async
¶
validate_text(text, context=None)
Проверить текст на соответствие требованиям Kwork.
Эндпоинт валидации текста используется для проверки: - Описаний кворков - Текстов проектов - Сообщений и отзывов
Находит потенциальные проблемы: - Запрещённые слова и контакты - Нарушения правил площадки - Проблемы с форматированием
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
text
|
str
|
Текст для проверки. |
required |
context
|
Optional[str]
|
Контекст использования (опционально). Например: "kwork_description", "project_text", "message". |
None
|
Returns:
| Type | Description |
|---|---|
ValidationResponse
|
ValidationResponse с результатами валидации. |
Example
result = await client.other.validate_text( "Отличный сервис, звоните +7-999-000-00-00" ) if not result.is_valid: print("Текст не прошёл валидацию:") for issue in result.issues: print(f" - {issue.message}")
Source code in src/kwork_api/client.py
1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 | |
ProjectsAPI ¶
ProjectsAPI(client)
API биржи проектов (фриланс заказы).
Предоставляет доступ к заказам на фриланс: - Просмотр открытых проектов - Заказы где вы заказчик (payer) - Заказы где вы исполнитель (worker)
Example
Новые проекты¶
projects = await client.projects.get_list(page=1)
Мои заказы как заказчика¶
my_orders = await client.projects.get_payer_orders()
Мои заказы как исполнителя¶
my_work = await client.projects.get_worker_orders()
Source code in src/kwork_api/client.py
561 562 | |
Functions¶
get_list
async
¶
get_list(page=1, category_id=None)
Получить список проектов с биржи.
Основной эндпоинт для просмотра доступных заказов. Возвращает пагинированный список проектов.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
page
|
int
|
Номер страницы (начиная с 1). |
1
|
category_id
|
Optional[int]
|
ID категории для фильтрации. Если None — все категории. |
None
|
Returns:
| Type | Description |
|---|---|
ProjectsResponse
|
ProjectsResponse содержащий: |
ProjectsResponse
|
|
ProjectsResponse
|
|
Example
Все новые проекты¶
response = await client.projects.get_list(page=1)
for project in response.projects: print(f"{project.title}: {project.budget} {project.budget_type}")
Только категория "Разработка"¶
dev_projects = await client.projects.get_list( page=1, category_id=5 )
Source code in src/kwork_api/client.py
564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 | |
get_payer_orders
async
¶
get_payer_orders()
Получить заказы где вы являетесь заказчиком.
Возвращает все проекты, созданные текущим пользователем, независимо от их статуса (открыт, в работе, завершён).
Returns:
| Type | Description |
|---|---|
list[Project]
|
Список проектов где текущий пользователь — заказчик. |
Example
orders = await client.projects.get_payer_orders() for order in orders: print(f"Заказ #{order.id}: {order.status}")
Source code in src/kwork_api/client.py
608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 | |
get_worker_orders
async
¶
get_worker_orders()
Получить заказы где вы являетесь исполнителем.
Возвращает все проекты, где текущий пользователь назначен исполнителем.
Returns:
| Type | Description |
|---|---|
list[Project]
|
Список проектов где текущий пользователь — исполнитель. |
Example
work = await client.projects.get_worker_orders() active = [p for p in work if p.status == "in_progress"] print(f"Активных заказов: {len(active)}")
Source code in src/kwork_api/client.py
626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 | |
ReferenceAPI ¶
ReferenceAPI(client)
Справочное API.
Предоставляет доступ к справочным данным Kwork: - Города, страны, часовые пояса - Доступные функции и дополнения - Значки пользователей
Эти данные редко меняются и могут быть закэшированы.
Example
Все страны¶
countries = await client.reference.get_countries()
Все города¶
cities = await client.reference.get_cities()
Доступные фичи¶
features = await client.reference.get_features()
Source code in src/kwork_api/client.py
769 770 | |
Functions¶
get_badges_info
async
¶
get_badges_info()
Получить информацию о значках пользователей.
Значки (badges) отображают достижения и статусы: - "Профессионал" - "Быстрый ответ" - "Надёжный продавец" - и т.д.
Returns:
| Type | Description |
|---|---|
list[Badge]
|
Список значков с описаниями и иконками. |
Example
badges = await client.reference.get_badges_info() for badge in badges: print(f"{badge.name}: {badge.description}")
Source code in src/kwork_api/client.py
848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 | |
get_cities
async
¶
get_cities()
Получить список всех городов.
Returns:
| Type | Description |
|---|---|
list[City]
|
Список всех городов из справочника Kwork. |
Example
cities = await client.reference.get_cities() moscow = next(c for c in cities if c.name == "Москва")
Source code in src/kwork_api/client.py
772 773 774 775 776 777 778 779 780 781 782 783 784 | |
get_countries
async
¶
get_countries()
Получить список всех стран.
Returns:
| Type | Description |
|---|---|
list[Country]
|
Список всех стран с кодами и городами. |
Example
countries = await client.reference.get_countries() russia = next(c for c in countries if c.code == "RU")
Source code in src/kwork_api/client.py
786 787 788 789 790 791 792 793 794 795 796 797 798 | |
get_features
async
¶
get_features()
Получить доступные дополнительные функции (features).
Features — это платные дополнения к кворкам: - Увеличенные сроки - Дополнительные правки - Приоритетная поддержка - и т.д.
Returns:
| Type | Description |
|---|---|
list[Feature]
|
Список доступных features с названиями и ценами. |
Example
features = await client.reference.get_features() for f in features: print(f"{f.name}: {f.price} RUB")
Source code in src/kwork_api/client.py
814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 | |
get_public_features
async
¶
get_public_features()
Получить публичные функции.
Аналогично get_features(), но возвращает только публично доступные опции.
Returns:
| Type | Description |
|---|---|
list[Feature]
|
Список публичных features. |
Source code in src/kwork_api/client.py
835 836 837 838 839 840 841 842 843 844 845 846 | |
get_timezones
async
¶
get_timezones()
Получить список всех часовых поясов.
Returns:
| Type | Description |
|---|---|
list[TimeZone]
|
Список часовых поясов с названиями и смещениями. |
Example
timezones = await client.reference.get_timezones() msks = next(tz for tz in timezones if "Moscow" in tz.name)
Source code in src/kwork_api/client.py
800 801 802 803 804 805 806 807 808 809 810 811 812 | |
UserAPI ¶
UserAPI(client)
Пользовательское API.
Предоставляет доступ к данным текущего пользователя: - Профиль и информация об аккаунте - Отзывы (полученные и оставленные) - Избранные кворки
Example
Информация о пользователе¶
info = await client.user.get_info()
Мои отзывы¶
reviews = await client.user.get_reviews()
Избранные кворки¶
favorites = await client.user.get_favorite_kworks()
Source code in src/kwork_api/client.py
666 667 | |
Functions¶
get_favorite_kworks
async
¶
get_favorite_kworks()
Получить список избранных кворков.
Возвращает все кворки, добавленные пользователем в избранное.
Returns:
| Type | Description |
|---|---|
list[Kwork]
|
Список избранных кворков. |
Example
favorites = await client.user.get_favorite_kworks() for kwork in favorites: print(f"{kwork.title}: {kwork.price} RUB")
Source code in src/kwork_api/client.py
728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 | |
get_info
async
¶
get_info()
Получить информацию о текущем пользователе.
Возвращает основные данные аккаунта: - ID, username, email - Баланс, рейтинг - Статус верификации - Настройки профиля
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Словарь с информацией о пользователе. |
dict[str, Any]
|
Структура зависит от ответа API. |
Example
info = await client.user.get_info() print(f"User: {info.get('username')}") print(f"Balance: {info.get('balance')} RUB")
Source code in src/kwork_api/client.py
669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 | |
get_reviews
async
¶
get_reviews(user_id=None, page=1)
Получить отзывы пользователя.
Если user_id не указан — возвращает отзывы текущего пользователя. Если указан — отзывы другого пользователя по ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
user_id
|
Optional[int]
|
ID пользователя. Если None — текущий пользователь. |
None
|
page
|
int
|
Номер страницы для пагинации (начиная с 1). |
1
|
Returns:
| Type | Description |
|---|---|
ReviewsResponse
|
ReviewsResponse содержащий: |
ReviewsResponse
|
|
ReviewsResponse
|
|
ReviewsResponse
|
|
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)
Source code in src/kwork_api/client.py
690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 | |
Functions¶
close
async
¶
close()
Close HTTP client.
Source code in src/kwork_api/client.py
315 316 317 318 | |
login
async
classmethod
¶
login(username, password, timeout=30.0)
Аутентификация по логину и паролю.
Выполняет двухэтапный процесс аутентификации Kwork: 1. POST /signIn — проверка учётных данных, получение session cookies 2. POST /getWebAuthToken — обмен cookies на web_auth_token
Полученный токен и cookies сохраняются в клиенте для последующих запросов.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
username
|
str
|
Логин или email аккаунта Kwork. |
required |
password
|
str
|
Пароль аккаунта Kwork. |
required |
timeout
|
float
|
Таймаут запросов в секундах. Применяется к каждому этапу. |
30.0
|
Returns:
| Type | Description |
|---|---|
KworkClient
|
Полностью аутентифицированный экземпляр KworkClient, |
KworkClient
|
готовый к работе с API. |
Raises:
| Type | Description |
|---|---|
KworkAuthError
|
Если логин/пароль неверны или токен не получен. |
KworkNetworkError
|
Если произошла ошибка сети. |
Example
Базовое использование¶
client = await KworkClient.login("myuser", "mypassword")
С кастомным таймаутом¶
client = await KworkClient.login("user", "pass", timeout=60.0)
Сохранение токена для повторного использования¶
token = client._token
Позже: client = KworkClient(token=token)¶
Security
Пароль не сохраняется в клиенте. Только token и cookies. Рекомендуется сохранять token для повторного использования вместо хранения пароля.
Note
Токен имеет ограниченное время жизни. При получении 401 ошибки необходимо выполнить повторный login().
Source code in src/kwork_api/client.py
196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 | |