itd-api 0.0.11 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -4
- package/dist/{chunk-TB7HW3VX.js → chunk-6FB4HTKH.js} +660 -174
- package/dist/chunk-6FB4HTKH.js.map +1 -0
- package/dist/{chunk-QD4UHJFF.cjs → chunk-73CISRBG.cjs} +660 -174
- package/dist/chunk-73CISRBG.cjs.map +1 -0
- package/dist/{index-CrlTO7sR.d.cts → index-BZF4K90s.d.cts} +125 -22
- package/dist/{index-CrlTO7sR.d.ts → index-BZF4K90s.d.ts} +125 -22
- package/dist/index.cjs +109 -109
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/node.cjs +112 -112
- package/dist/node.d.cts +2 -2
- package/dist/node.d.ts +2 -2
- package/dist/node.js +2 -2
- package/guides/README.md +2 -0
- package/guides/multi-accounts/README.md +2 -1
- package/guides/plugins/README.md +93 -2
- package/guides/reference/README.md +67 -0
- package/guides/reference/accounts.md +101 -0
- package/guides/reference/auth.md +141 -0
- package/guides/reference/builders.md +135 -0
- package/guides/reference/client.md +184 -0
- package/guides/reference/comments.md +58 -0
- package/guides/reference/discovery.md +81 -0
- package/guides/reference/enums.md +103 -0
- package/guides/reference/errors.md +107 -0
- package/guides/reference/files.md +73 -0
- package/guides/reference/models.md +448 -0
- package/guides/reference/notifications.md +77 -0
- package/guides/reference/pagination.md +82 -0
- package/guides/reference/platform.md +47 -0
- package/guides/reference/posts.md +157 -0
- package/guides/reference/realtime.md +78 -0
- package/guides/reference/reports.md +28 -0
- package/guides/reference/subscription.md +41 -0
- package/guides/reference/users.md +146 -0
- package/guides/reference/verification.md +24 -0
- package/package.json +1 -1
- package/dist/chunk-QD4UHJFF.cjs.map +0 -1
- package/dist/chunk-TB7HW3VX.js.map +0 -1
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Посты — `itd.posts`
|
|
2
|
+
|
|
3
|
+
Лента, публикация, реакции, репосты, опросы и комментарии к постам. Публикующие методы
|
|
4
|
+
принимают объект, [билдер](./builders.md) или функцию-настройщик.
|
|
5
|
+
|
|
6
|
+
## Лента
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
list(params?: FeedParams): Promise<Page<Post>>
|
|
10
|
+
iterate(params?: FeedParams): Paginator<Post>
|
|
11
|
+
```
|
|
12
|
+
Страница ленты / перебор ленты. Курсорная пагинация. См. [`Post`](./models.md#post),
|
|
13
|
+
[`FeedTab`](./enums.md#feedtab).
|
|
14
|
+
|
|
15
|
+
## Публикация
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
create(input: PostInput): Promise<Post>
|
|
19
|
+
```
|
|
20
|
+
Публикует пост. Файлы из поля `files` загружаются автоматически, порядок вложений сохраняется.
|
|
21
|
+
|
|
22
|
+
```ts
|
|
23
|
+
get(postId: string): Promise<Post>
|
|
24
|
+
```
|
|
25
|
+
Один пост вместе с топовыми комментариями (заполнено поле `comments`).
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
update(postId: string, input: PostUpdateInput): Promise<Post>
|
|
29
|
+
```
|
|
30
|
+
Редактирует текст и разметку. Поля создания (вложения, опрос, стена) отвергаются до запроса.
|
|
31
|
+
`content` обязателен.
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
remove(postId: string): Promise<void>
|
|
35
|
+
restore(postId: string): Promise<Post>
|
|
36
|
+
```
|
|
37
|
+
Удаляет / восстанавливает пост.
|
|
38
|
+
|
|
39
|
+
## Реакции, репосты, закрепление
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
like(postId: string): Promise<LikeResult>
|
|
43
|
+
unlike(postId: string): Promise<LikeResult>
|
|
44
|
+
```
|
|
45
|
+
Ставит / убирает реакцию. См. [`LikeResult`](./models.md#likeresult).
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
repost(postId: string, content?: string): Promise<Post>
|
|
49
|
+
unrepost(postId: string): Promise<void>
|
|
50
|
+
```
|
|
51
|
+
Репост с необязательным комментарием / отмена репоста. Вложения к репосту не поддерживаются.
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
pin(postId: string): Promise<PinPostResult>
|
|
55
|
+
unpin(postId: string): Promise<PinPostResult>
|
|
56
|
+
```
|
|
57
|
+
Закрепляет / открепляет пост в профиле. См. [`PinPostResult`](./models.md#pinpostresult).
|
|
58
|
+
|
|
59
|
+
## Опросы
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
vote(postId: string, optionIds: string[]): Promise<Poll>
|
|
63
|
+
```
|
|
64
|
+
Голосует в опросе. Несколько вариантов допустимы только при `multipleChoice`. См.
|
|
65
|
+
[`Poll`](./models.md#poll).
|
|
66
|
+
|
|
67
|
+
## Счётчики
|
|
68
|
+
|
|
69
|
+
```ts
|
|
70
|
+
stats(ids: string[]): Promise<PostStats[]>
|
|
71
|
+
```
|
|
72
|
+
Счётчики сразу для нескольких постов. См. [`PostStats`](./models.md#poststats).
|
|
73
|
+
|
|
74
|
+
## Стена и лайки пользователя
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
byUser(user: UserRef, params?: UserPostsParams): Promise<Page<Post>>
|
|
78
|
+
iterateByUser(user: UserRef, params?: UserPostsParams): Paginator<Post>
|
|
79
|
+
```
|
|
80
|
+
Стена пользователя.
|
|
81
|
+
|
|
82
|
+
> ⚠️ Это **не только его собственные посты**: сюда попадают и записи, которые другие оставили
|
|
83
|
+
> на его стене (у них `author` чужой, `wallRecipient` — владелец стены). Поэтому записей обычно
|
|
84
|
+
> больше, чем `postsCount` в профиле. Нужны только авторские — отфильтруйте по `post.author.id`.
|
|
85
|
+
|
|
86
|
+
```ts
|
|
87
|
+
likedByUser(user: UserRef, params?: UserPostsParams): Promise<Page<Post>>
|
|
88
|
+
iterateLikedByUser(user: UserRef, params?: UserPostsParams): Paginator<Post>
|
|
89
|
+
```
|
|
90
|
+
Посты, которые пользователь отметил реакцией.
|
|
91
|
+
|
|
92
|
+
## Комментарии к посту
|
|
93
|
+
|
|
94
|
+
Комментарии **к посту** живут здесь; ответы на комментарии — в [`itd.comments`](./comments.md).
|
|
95
|
+
|
|
96
|
+
```ts
|
|
97
|
+
comments(postId: string, params?: CommentsParams): Promise<Page<Comment>>
|
|
98
|
+
iterateComments(postId: string, params?: CommentsParams): Paginator<Comment>
|
|
99
|
+
```
|
|
100
|
+
Комментарии к посту. Курсорная пагинация. См. [`Comment`](./models.md#comment),
|
|
101
|
+
[`CommentSort`](./enums.md#commentsort).
|
|
102
|
+
|
|
103
|
+
```ts
|
|
104
|
+
comment(postId: string, input: CommentInput | string): Promise<Comment>
|
|
105
|
+
```
|
|
106
|
+
Комментирует пост. Строка — это просто текст.
|
|
107
|
+
|
|
108
|
+
```ts
|
|
109
|
+
voiceComment(postId: string, audio: FileInput): Promise<Comment>
|
|
110
|
+
```
|
|
111
|
+
Голосовой комментарий: без текста, одно аудиовложение `audio/ogg`.
|
|
112
|
+
|
|
113
|
+
## Типы
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
type PostInput = CreatePostInput | PostBuilder | ((b: PostBuilder) => PostBuilder | CreatePostInput);
|
|
117
|
+
type PostUpdateInput = UpdatePostInput | PostBuilder | ((b: PostBuilder) => PostBuilder | UpdatePostInput);
|
|
118
|
+
type CommentInput = CreateCommentInput | CommentBuilder | ((b: CommentBuilder) => CommentBuilder | CreateCommentInput);
|
|
119
|
+
|
|
120
|
+
interface CreatePostInput {
|
|
121
|
+
content?: string;
|
|
122
|
+
spans?: Span[]; // проверяются относительно content
|
|
123
|
+
wallRecipientId?: UserId | null; // строго UUID
|
|
124
|
+
attachmentIds?: string[]; // заранее загруженные вложения
|
|
125
|
+
files?: FileInput[]; // загрузятся перед публикацией, порядок сохраняется
|
|
126
|
+
poll?: PollInput;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
interface UpdatePostInput {
|
|
130
|
+
content: string; // обязателен
|
|
131
|
+
spans?: Span[];
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
interface FeedParams extends RequestOptions {
|
|
135
|
+
tab?: FeedTab; // по умолчанию популярное
|
|
136
|
+
limit?: number;
|
|
137
|
+
cursor?: string; // непрозрачный, из nextCursor
|
|
138
|
+
maxPages?: number;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
interface UserPostsParams extends RequestOptions {
|
|
142
|
+
limit?: number;
|
|
143
|
+
cursor?: string;
|
|
144
|
+
sort?: string;
|
|
145
|
+
pinnedPostId?: string; // поднять закреплённый пост наверх
|
|
146
|
+
maxPages?: number;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
interface CommentsParams extends RequestOptions {
|
|
150
|
+
limit?: number;
|
|
151
|
+
cursor?: string; // id последнего полученного комментария
|
|
152
|
+
sort?: CommentSort;
|
|
153
|
+
maxPages?: number;
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
См. также [Билдеры](./builders.md) (`post()`, `comment()`, `poll()`, разметка текста).
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Realtime — `itd.realtime()`
|
|
2
|
+
|
|
3
|
+
Поток уведомлений в реальном времени. Создаётся `itd.realtime(options?)`, соединение
|
|
4
|
+
поднимается `connect()` и держится само: обрывы, обновление токена, keep-alive и повторные
|
|
5
|
+
попытки — внутри. Транспорт выбирается автоматически: SSE, а если среда не умеет читать тело
|
|
6
|
+
по частям — опрос REST. Полное руководство — [Realtime](../realtime/README.md).
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
const stream = itd.realtime(options?: RealtimeOptions): ItdRealtime
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Методы `ItdRealtime`
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
connect(): Promise<void>
|
|
16
|
+
```
|
|
17
|
+
Поднимает соединение. Повторный вызов при живом соединении ничего не делает. Возвращает
|
|
18
|
+
управление сразу — соединение живёт в фоне.
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
disconnect(): void
|
|
22
|
+
```
|
|
23
|
+
Закрывает соединение и отменяет запланированные попытки.
|
|
24
|
+
|
|
25
|
+
```ts
|
|
26
|
+
on<K>(event: K, listener): Unsubscribe
|
|
27
|
+
once<K>(event: K, listener): Unsubscribe
|
|
28
|
+
removeAllListeners(): void
|
|
29
|
+
```
|
|
30
|
+
Подписка на события / однократная подписка / снятие всех подписок (соединение при этом
|
|
31
|
+
не закрывается).
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
get status: RealtimeStatus // 'connecting' | 'connected' | 'error' | 'disconnected'
|
|
35
|
+
get transport: string // 'sse' | 'poll'
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## События (`RealtimeEvents`)
|
|
39
|
+
|
|
40
|
+
| Событие | Данные | Когда |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| `notification` | `NotificationEvent` | пришло новое уведомление |
|
|
43
|
+
| `ready` | `{ userId?: string }` | сервер подтвердил подключение (первый кадр) |
|
|
44
|
+
| `unreadCount` | `number` | сервер сообщил число непрочитанных (на практике редко — держите счётчик сами) |
|
|
45
|
+
| `status` | `RealtimeStatus` | изменилось состояние соединения |
|
|
46
|
+
| `error` | `{ error, willReconnect }` | соединение оборвалось |
|
|
47
|
+
| `reconnect` | `{ attempt, delay }` | запланировано переподключение |
|
|
48
|
+
| `giveup` | — | попытки исчерпаны; нужен ручной `connect()` |
|
|
49
|
+
| `parseError` | `{ error, raw }` | сообщение не удалось разобрать (соединение живо) |
|
|
50
|
+
| `message` | `{ name, data }` | любое событие потока в необработанном виде |
|
|
51
|
+
|
|
52
|
+
`NotificationEvent` содержит `{ notification: Notification; unreadCount?: number }`; уведомление
|
|
53
|
+
в той же форме, что и в [`itd.notifications`](./notifications.md).
|
|
54
|
+
|
|
55
|
+
## Опции (`RealtimeOptions`)
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
interface RealtimeOptions {
|
|
59
|
+
transport?: 'auto' | 'sse' | 'poll' | RealtimeTransport; // по умолчанию 'auto'
|
|
60
|
+
idleTimeout?: number; // молчание сервера = мёртвое соединение; 90000
|
|
61
|
+
pollInterval?: number; // период опроса для запасного транспорта
|
|
62
|
+
syncCount?: boolean; // запросить число непрочитанных при connect; true
|
|
63
|
+
reconnectOnVisible?: boolean; // переподключаться при возврате вкладки; true (браузер)
|
|
64
|
+
reconnectOnOnline?: boolean; // переподключаться при восстановлении сети; true (браузер)
|
|
65
|
+
// из ReconnectOptions:
|
|
66
|
+
maxAttempts?: number;
|
|
67
|
+
backoff?: number[]; // лестница пауз переподключения
|
|
68
|
+
jitter?: number; // 0…1
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const RealtimeTransportKind = { Auto: 'auto', Sse: 'sse', Poll: 'poll' } as const;
|
|
72
|
+
const RealtimeStatus = {
|
|
73
|
+
Connecting: 'connecting', Connected: 'connected', Error: 'error', Disconnected: 'disconnected',
|
|
74
|
+
} as const;
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Можно передать и свою реализацию `RealtimeTransport` — например для WebSocket. Смена
|
|
78
|
+
авторизации на другого пользователя завершает все потоки клиента; смена только сессии — нет.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Жалобы — `itd.reports`
|
|
2
|
+
|
|
3
|
+
Жалобы на контент и пользователей. Принимает объект или [билдер](./builders.md)
|
|
4
|
+
`report`, у которого тип объекта и его идентификатор задаются одновременно.
|
|
5
|
+
|
|
6
|
+
## Метод
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
create(input: ReportInput): Promise<Report>
|
|
10
|
+
```
|
|
11
|
+
Отправляет жалобу. Повторная жалоба на тот же объект отклоняется сервером. См.
|
|
12
|
+
[`Report`](./models.md#report).
|
|
13
|
+
|
|
14
|
+
## Типы
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
type ReportInput = CreateReportInput | ReportBuilder | ((b: ReportBuilder) => ReportBuilder | CreateReportInput);
|
|
18
|
+
|
|
19
|
+
interface CreateReportInput {
|
|
20
|
+
targetType: ReportTargetType; // 'post' | 'comment' | 'user'
|
|
21
|
+
targetId: string;
|
|
22
|
+
reason: ReportReason; // 'spam' | 'violence' | 'hate' | 'adult' | 'fraud' | 'other'
|
|
23
|
+
description?: string; // пояснение в свободной форме
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
См. [`ReportTargetType`](./enums.md#reporttargettype), [`ReportReason`](./enums.md#reportreason)
|
|
28
|
+
и билдер [`report`](./builders.md).
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Подписка — `itd.subscription`
|
|
2
|
+
|
|
3
|
+
Состояние платной подписки (премиум NUKSTA), автопродление и способы оплаты. Форма ответа
|
|
4
|
+
у платёжных методов в документации API не описана, поэтому часть возвращает `unknown`.
|
|
5
|
+
|
|
6
|
+
## Методы
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
status(): Promise<Subscription>
|
|
10
|
+
```
|
|
11
|
+
Состояние подписки и её цена. См. [`Subscription`](./models.md#subscription).
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
pay(): Promise<unknown>
|
|
15
|
+
```
|
|
16
|
+
Запускает оплату подписки.
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
setAutoRenewal(enabled: boolean): Promise<unknown>
|
|
20
|
+
```
|
|
21
|
+
Включает / отключает автопродление.
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
bindCard(): Promise<unknown>
|
|
25
|
+
```
|
|
26
|
+
Запускает привязку карты.
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
methods(): Promise<PaymentMethod[]>
|
|
30
|
+
```
|
|
31
|
+
Список способов оплаты. Пустой массив, если карт нет. См. [`PaymentMethod`](./models.md#paymentmethod).
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
setDefaultMethod(methodId: string): Promise<unknown>
|
|
35
|
+
```
|
|
36
|
+
Делает способ оплаты основным.
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
removeMethod(methodId: string): Promise<void>
|
|
40
|
+
```
|
|
41
|
+
Удаляет способ оплаты.
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# Пользователи — `itd.users`
|
|
2
|
+
|
|
3
|
+
Профили, подписки, блокировки, приватность и значки. Методы принимают
|
|
4
|
+
[`UserRef`](./README.md#общие-соглашения) — UUID **или** имя пользователя, если не
|
|
5
|
+
указано иное.
|
|
6
|
+
|
|
7
|
+
## Свой профиль
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
me(): Promise<MyProfile>
|
|
11
|
+
```
|
|
12
|
+
Свой профиль — с подпиской и признаком подтверждённого телефона. См. [`MyProfile`](./models.md#myprofile).
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
updateMe(input: UpdateProfileInput): Promise<MyProfile>
|
|
16
|
+
```
|
|
17
|
+
Обновляет свой профиль. Передавайте только изменяемые поля.
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
createProfile(input: { username: string; displayName: string; avatar?: string }): Promise<MyProfile>
|
|
21
|
+
```
|
|
22
|
+
Создаёт профиль после регистрации.
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
deactivate(): Promise<void>
|
|
26
|
+
restore(): Promise<void>
|
|
27
|
+
```
|
|
28
|
+
Деактивирует / восстанавливает аккаунт.
|
|
29
|
+
|
|
30
|
+
## Чужие профили
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
get(user: UserRef): Promise<PublicProfile>
|
|
34
|
+
```
|
|
35
|
+
Профиль пользователя по UUID или имени. См. [`PublicProfile`](./models.md#publicprofile).
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
checkUsername(username: string): Promise<boolean>
|
|
39
|
+
```
|
|
40
|
+
Свободно ли имя пользователя.
|
|
41
|
+
|
|
42
|
+
## Подписки
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
follow(user: UserRef): Promise<FollowResult>
|
|
46
|
+
```
|
|
47
|
+
Подписывается. У закрытого профиля отправляется заявка — видно по полю `status`. См.
|
|
48
|
+
[`FollowResult`](./models.md#followresult).
|
|
49
|
+
|
|
50
|
+
```ts
|
|
51
|
+
unfollow(user: UserRef): Promise<void>
|
|
52
|
+
```
|
|
53
|
+
Отписывается.
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
followStatus(userIds: UserId[]): Promise<Record<string, boolean>>
|
|
57
|
+
```
|
|
58
|
+
Проверяет подписку сразу для нескольких пользователей. Возвращает «идентификатор → подписаны ли вы».
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
followers(user: UserRef, params?: UserListParams): Promise<Page<UserSummary>>
|
|
62
|
+
iterateFollowers(user: UserRef, params?: UserListParams): Paginator<UserSummary>
|
|
63
|
+
following(user: UserRef, params?: UserListParams): Promise<Page<UserSummary>>
|
|
64
|
+
iterateFollowing(user: UserRef, params?: UserListParams): Paginator<UserSummary>
|
|
65
|
+
```
|
|
66
|
+
Подписчики и подписки. См. [`UserSummary`](./models.md#usersummary).
|
|
67
|
+
|
|
68
|
+
> ⚠️ **Сервер эти списки не листает.** Возвращаются первые 20 записей: `page` игнорируется,
|
|
69
|
+
> `limit` больше 20 молча уменьшается, `hasMore` всегда `false`. Полю `total` доверять тоже
|
|
70
|
+
> нельзя — оно расходится с `followersCount` из профиля. Методы-итераторы закончатся после
|
|
71
|
+
> первых 20 записей и оставлены на случай, если пагинацию починят.
|
|
72
|
+
|
|
73
|
+
## Блокировки
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
block(user: UserRef): Promise<void>
|
|
77
|
+
unblock(user: UserRef): Promise<void>
|
|
78
|
+
```
|
|
79
|
+
Блокирует / снимает блокировку.
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
blocked(params?: UserListParams): Promise<Page<UserSummary>>
|
|
83
|
+
iterateBlocked(params?: UserListParams): Paginator<UserSummary>
|
|
84
|
+
```
|
|
85
|
+
Заблокированные пользователи. Ограничения листания те же, что у `followers`.
|
|
86
|
+
|
|
87
|
+
## Приватность
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
getPrivacy(): Promise<PrivacySettings>
|
|
91
|
+
updatePrivacy(input: UpdatePrivacyInput): Promise<PrivacySettings>
|
|
92
|
+
```
|
|
93
|
+
Читает / обновляет настройки приватности. См. [`PrivacySettings`](./models.md#privacysettings).
|
|
94
|
+
|
|
95
|
+
## Значки профиля («пины»)
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
pins(): Promise<PinsResult>
|
|
99
|
+
```
|
|
100
|
+
Значки профиля и выбранный из них. `activePin` — строка-идентификатор, а не объект. См.
|
|
101
|
+
[`PinsResult`](./models.md#pinsresult).
|
|
102
|
+
|
|
103
|
+
```ts
|
|
104
|
+
setPin(slug: string): Promise<void>
|
|
105
|
+
removePin(): Promise<void>
|
|
106
|
+
```
|
|
107
|
+
Выбирает / снимает активный значок.
|
|
108
|
+
|
|
109
|
+
## Поиск и рекомендации
|
|
110
|
+
|
|
111
|
+
Также описаны в разделе [Поиск и обнаружение](./discovery.md).
|
|
112
|
+
|
|
113
|
+
```ts
|
|
114
|
+
search(query: string, params?: { limit?: number }): Promise<UserSummary[]>
|
|
115
|
+
```
|
|
116
|
+
Ищет пользователей по строке запроса.
|
|
117
|
+
|
|
118
|
+
```ts
|
|
119
|
+
whoToFollow(): Promise<UserSummary[]>
|
|
120
|
+
```
|
|
121
|
+
Рекомендации, на кого подписаться.
|
|
122
|
+
|
|
123
|
+
```ts
|
|
124
|
+
topClans(): Promise<Clan[]>
|
|
125
|
+
```
|
|
126
|
+
Рейтинг кланов. См. [`Clan`](./models.md#clan).
|
|
127
|
+
|
|
128
|
+
## Типы
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
interface UpdateProfileInput {
|
|
132
|
+
displayName?: string;
|
|
133
|
+
username?: string;
|
|
134
|
+
avatar?: string; // эмодзи-символ клана, а не URL картинки
|
|
135
|
+
bio?: string;
|
|
136
|
+
banner?: string; // URL изображения-шапки
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
type UpdatePrivacyInput = Partial<PrivacySettings>;
|
|
140
|
+
|
|
141
|
+
interface UserListParams extends RequestOptions {
|
|
142
|
+
limit?: number; // > 20 сервер зажимает до 20
|
|
143
|
+
page?: number; // сервер игнорирует
|
|
144
|
+
maxPages?: number;
|
|
145
|
+
}
|
|
146
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Верификация — `itd.verification`
|
|
2
|
+
|
|
3
|
+
Статус заявки на верификацию профиля и её подача.
|
|
4
|
+
|
|
5
|
+
## Методы
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
status(): Promise<VerificationStatus>
|
|
9
|
+
```
|
|
10
|
+
Статус заявки. Значение `'none'` означает, что заявка не подавалась. См.
|
|
11
|
+
[`VerificationStatus`](./models.md#verificationstatus).
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
submit(videoUrl: string): Promise<unknown>
|
|
15
|
+
```
|
|
16
|
+
Подаёт заявку на верификацию с видео.
|
|
17
|
+
|
|
18
|
+
## Типы
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
interface VerificationStatus {
|
|
22
|
+
status: 'none' | 'pending' | 'approved' | 'rejected' | (string & {});
|
|
23
|
+
}
|
|
24
|
+
```
|