cc98-cli 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/LICENSE +21 -0
- package/README.md +246 -0
- package/dist/api/client.d.ts +47 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +188 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/endpoints.d.ts +48 -0
- package/dist/api/endpoints.d.ts.map +1 -0
- package/dist/api/endpoints.js +53 -0
- package/dist/api/endpoints.js.map +1 -0
- package/dist/api/types.d.ts +14 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +2 -0
- package/dist/api/types.js.map +1 -0
- package/dist/cli/commands/account.d.ts +2 -0
- package/dist/cli/commands/account.d.ts.map +1 -0
- package/dist/cli/commands/account.js +81 -0
- package/dist/cli/commands/account.js.map +1 -0
- package/dist/cli/commands/board.d.ts +2 -0
- package/dist/cli/commands/board.d.ts.map +1 -0
- package/dist/cli/commands/board.js +61 -0
- package/dist/cli/commands/board.js.map +1 -0
- package/dist/cli/commands/forum.d.ts +2 -0
- package/dist/cli/commands/forum.d.ts.map +1 -0
- package/dist/cli/commands/forum.js +38 -0
- package/dist/cli/commands/forum.js.map +1 -0
- package/dist/cli/commands/login.d.ts +2 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/login.js +98 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/logout.d.ts +2 -0
- package/dist/cli/commands/logout.d.ts.map +1 -0
- package/dist/cli/commands/logout.js +20 -0
- package/dist/cli/commands/logout.js.map +1 -0
- package/dist/cli/commands/me.d.ts +2 -0
- package/dist/cli/commands/me.d.ts.map +1 -0
- package/dist/cli/commands/me.js +9 -0
- package/dist/cli/commands/me.js.map +1 -0
- package/dist/cli/commands/message.d.ts +2 -0
- package/dist/cli/commands/message.d.ts.map +1 -0
- package/dist/cli/commands/message.js +42 -0
- package/dist/cli/commands/message.js.map +1 -0
- package/dist/cli/commands/notice.d.ts +2 -0
- package/dist/cli/commands/notice.d.ts.map +1 -0
- package/dist/cli/commands/notice.js +30 -0
- package/dist/cli/commands/notice.js.map +1 -0
- package/dist/cli/commands/post.d.ts +2 -0
- package/dist/cli/commands/post.d.ts.map +1 -0
- package/dist/cli/commands/post.js +37 -0
- package/dist/cli/commands/post.js.map +1 -0
- package/dist/cli/commands/search.d.ts +2 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +13 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/topic.d.ts +2 -0
- package/dist/cli/commands/topic.d.ts.map +1 -0
- package/dist/cli/commands/topic.js +196 -0
- package/dist/cli/commands/topic.js.map +1 -0
- package/dist/cli/commands/user.d.ts +2 -0
- package/dist/cli/commands/user.d.ts.map +1 -0
- package/dist/cli/commands/user.js +90 -0
- package/dist/cli/commands/user.js.map +1 -0
- package/dist/cli/context.d.ts +9 -0
- package/dist/cli/context.d.ts.map +1 -0
- package/dist/cli/context.js +8 -0
- package/dist/cli/context.js.map +1 -0
- package/dist/cli/options.d.ts +6 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +22 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/cli/parse.d.ts +15 -0
- package/dist/cli/parse.d.ts.map +1 -0
- package/dist/cli/parse.js +55 -0
- package/dist/cli/parse.js.map +1 -0
- package/dist/cli/prompt.d.ts +4 -0
- package/dist/cli/prompt.d.ts.map +1 -0
- package/dist/cli/prompt.js +53 -0
- package/dist/cli/prompt.js.map +1 -0
- package/dist/cli/router.d.ts +2 -0
- package/dist/cli/router.d.ts.map +1 -0
- package/dist/cli/router.js +77 -0
- package/dist/cli/router.js.map +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +17 -0
- package/dist/main.js.map +1 -0
- package/dist/storage/cache-store.d.ts +19 -0
- package/dist/storage/cache-store.d.ts.map +1 -0
- package/dist/storage/cache-store.js +82 -0
- package/dist/storage/cache-store.js.map +1 -0
- package/dist/storage/paths.d.ts +4 -0
- package/dist/storage/paths.d.ts.map +1 -0
- package/dist/storage/paths.js +14 -0
- package/dist/storage/paths.js.map +1 -0
- package/dist/storage/token-store.d.ts +39 -0
- package/dist/storage/token-store.d.ts.map +1 -0
- package/dist/storage/token-store.js +177 -0
- package/dist/storage/token-store.js.map +1 -0
- package/dist/tui/ansi.d.ts +16 -0
- package/dist/tui/ansi.d.ts.map +1 -0
- package/dist/tui/ansi.js +24 -0
- package/dist/tui/ansi.js.map +1 -0
- package/dist/tui/app.d.ts +2 -0
- package/dist/tui/app.d.ts.map +1 -0
- package/dist/tui/app.js +1096 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/cached-client.d.ts +22 -0
- package/dist/tui/cached-client.d.ts.map +1 -0
- package/dist/tui/cached-client.js +60 -0
- package/dist/tui/cached-client.js.map +1 -0
- package/dist/tui/terminal.d.ts +21 -0
- package/dist/tui/terminal.d.ts.map +1 -0
- package/dist/tui/terminal.js +67 -0
- package/dist/tui/terminal.js.map +1 -0
- package/dist/tui/ubb-renderer.d.ts +7 -0
- package/dist/tui/ubb-renderer.d.ts.map +1 -0
- package/dist/tui/ubb-renderer.js +102 -0
- package/dist/tui/ubb-renderer.js.map +1 -0
- package/package.json +39 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Lucent-Snow
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
# CC98 CLI
|
|
2
|
+
|
|
3
|
+
一个原生 TypeScript 编写的 CC98 命令行客户端,包含 JSON-first 的 CLI 和终端 TUI。
|
|
4
|
+
|
|
5
|
+
默认运行 `cc98` 会进入 TUI;带参数运行时走普通 CLI,并默认输出 JSON,方便管道、脚本和自动化读取。
|
|
6
|
+
|
|
7
|
+
## 功能状态
|
|
8
|
+
|
|
9
|
+
- CLI:覆盖主要读取接口,默认 JSON 输出。
|
|
10
|
+
- TUI:支持十大、收藏版面帖子流、最新、版面、关注动态、消息、我的信息。
|
|
11
|
+
- 读帖:只按需加载第一页,`n` / `Space` 手动加载下一页。
|
|
12
|
+
- 图片:默认只渲染链接占位,不自动下载图片。
|
|
13
|
+
- 缓存:对首页、版面、帖子、私信、用户信息做本地 TTL 缓存,减少对服务器压力。
|
|
14
|
+
- 账号:支持多账号本地 token 存储和切换。
|
|
15
|
+
|
|
16
|
+
目前项目以读取为主,不包含发帖、回帖、点赞等写操作。
|
|
17
|
+
|
|
18
|
+
## 安装
|
|
19
|
+
|
|
20
|
+
要求 Node.js 20 或更高版本。
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install -g cc98-cli
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
如果还没有发布到 npm,可以从源码安装:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
git clone https://github.com/Lucent-Snow/CC98-CLI.git
|
|
30
|
+
cd CC98-CLI
|
|
31
|
+
npm install
|
|
32
|
+
npm run build
|
|
33
|
+
npm link
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## 登录
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
cc98 login
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
登录后 token 会保存在本机用户目录下:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
~/.cc98-cli/tokens.json
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
多账号相关命令:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
cc98 account list
|
|
52
|
+
cc98 account current
|
|
53
|
+
cc98 account use <name>
|
|
54
|
+
cc98 account remove <name>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
也可以在支持的命令中指定账号:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
cc98 --account <name> topic <topic-id>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## TUI 使用
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
cc98
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
快捷键:
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
q 退出
|
|
73
|
+
h / 左方向键 返回左栏
|
|
74
|
+
l / Enter / 右方向键 进入内容或打开选中项
|
|
75
|
+
j / 下方向键 向下
|
|
76
|
+
k / 上方向键 向上
|
|
77
|
+
r 刷新当前视图
|
|
78
|
+
n / Space 读取下一页帖子或更早私信
|
|
79
|
+
Esc / Backspace 返回上一级列表
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
TUI 当前栏目:
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
十大 热门话题
|
|
86
|
+
收藏 收藏版面的帖子流
|
|
87
|
+
最新 全站新帖
|
|
88
|
+
版面 全部版面,并可进入具体版面主题列表
|
|
89
|
+
关注 关注用户动态
|
|
90
|
+
消息 私信联系人和历史
|
|
91
|
+
我的 当前账号信息
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## CLI 用法
|
|
95
|
+
|
|
96
|
+
所有读取命令默认输出 JSON。
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
cc98 --help
|
|
100
|
+
cc98 topic <topic-id>
|
|
101
|
+
cc98 board <board-id>
|
|
102
|
+
cc98 search <keyword>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 论坛与版面
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
cc98 forum index
|
|
109
|
+
cc98 forum boards
|
|
110
|
+
cc98 forum card-stat
|
|
111
|
+
|
|
112
|
+
cc98 board list
|
|
113
|
+
cc98 board info <board-id>
|
|
114
|
+
cc98 board topics <board-id> [--from n] [--size n] [--best]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
说明:`forum card-stat` 对接的是 `card.cc98.org` 的接口,该站点使用独立 Web OIDC cookie session,普通 CC98 API token 可能会收到 `401`。
|
|
118
|
+
|
|
119
|
+
### 帖子
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
cc98 topic <topic-id> [--from n] [--size n]
|
|
123
|
+
cc98 topic <topic-id> --meta
|
|
124
|
+
cc98 topic <topic-id> --posts
|
|
125
|
+
cc98 topic new [--from n] [--size n]
|
|
126
|
+
cc98 topic random [--size n]
|
|
127
|
+
cc98 topic recent [--me | --user id] [--from n] [--size n]
|
|
128
|
+
cc98 topic favorite [--group id] [--order n] [--from n] [--size n]
|
|
129
|
+
cc98 topic is-favorite <topic-id>
|
|
130
|
+
cc98 topic vote <topic-id>
|
|
131
|
+
cc98 topic basic <ids...>
|
|
132
|
+
cc98 topic search <keyword> [--from n] [--size n]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 用户
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
cc98 me
|
|
139
|
+
cc98 user me
|
|
140
|
+
cc98 user profile <user-id>
|
|
141
|
+
cc98 user basic <ids...>
|
|
142
|
+
cc98 user list <ids...>
|
|
143
|
+
cc98 user followers [--from n] [--size n]
|
|
144
|
+
cc98 user followees [--from n] [--size n]
|
|
145
|
+
cc98 user moment [--from n] [--size n]
|
|
146
|
+
cc98 user favorite-updates [--from n] [--size n]
|
|
147
|
+
cc98 user favorite-groups
|
|
148
|
+
cc98 user search <name>
|
|
149
|
+
cc98 user unread
|
|
150
|
+
cc98 user browse-history [--from n] [--size n]
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 消息
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
cc98 message unread
|
|
157
|
+
cc98 message recent [--from n] [--size n]
|
|
158
|
+
cc98 message history <user-id> [--from n] [--size n]
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 通知
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
cc98 notice system [--from n] [--size n]
|
|
165
|
+
cc98 notice at [--from n] [--size n]
|
|
166
|
+
cc98 notice reply [--from n] [--size n]
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 帖子相关状态
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
cc98 post reaction-state <post-id>
|
|
173
|
+
cc98 post rate-reasons <type>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## 缓存策略
|
|
177
|
+
|
|
178
|
+
缓存目录:
|
|
179
|
+
|
|
180
|
+
```text
|
|
181
|
+
~/.cc98-cli/cache
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
TUI 会尽量避免不必要请求:
|
|
185
|
+
|
|
186
|
+
- 首页和十大:短 TTL。
|
|
187
|
+
- 全部版面:长 TTL。
|
|
188
|
+
- 版面帖子、新帖、关注动态、私信:短 TTL。
|
|
189
|
+
- 帖子正文:第一页短 TTL,后续页更长 TTL。
|
|
190
|
+
- 图片:默认不下载,只显示链接占位。
|
|
191
|
+
|
|
192
|
+
## 开发
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
npm install
|
|
196
|
+
npm run check
|
|
197
|
+
npm run build
|
|
198
|
+
node dist/main.js
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
本地调试 CLI:
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
node dist/main.js --help
|
|
205
|
+
node dist/main.js topic <topic-id>
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## 发布 npm 包
|
|
209
|
+
|
|
210
|
+
首次发布需要:
|
|
211
|
+
|
|
212
|
+
1. 一个 npm 账号。
|
|
213
|
+
2. 本机登录 npm:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
npm login
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
3. 确认包名没有被占用:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
npm view cc98-cli
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
如果返回 `404 Not Found`,通常表示包名还没有被占用。
|
|
226
|
+
|
|
227
|
+
4. 构建并发布:
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
npm run check
|
|
231
|
+
npm run build
|
|
232
|
+
npm publish --access public
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
如果 npm 账号开启了 2FA,发布时会要求输入 OTP。
|
|
236
|
+
|
|
237
|
+
后续版本发布需要先修改 `package.json` 的 `version`,推荐用:
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
npm version patch
|
|
241
|
+
npm publish --access public
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## 许可
|
|
245
|
+
|
|
246
|
+
MIT
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { ClientOptions, JsonObject } from "./types.js";
|
|
2
|
+
interface RequestOptions {
|
|
3
|
+
signal?: AbortSignal;
|
|
4
|
+
}
|
|
5
|
+
export declare class Cc98Client {
|
|
6
|
+
private readonly tokenStore;
|
|
7
|
+
constructor(options: ClientOptions);
|
|
8
|
+
loginWithPassword(username: string, password: string): Promise<{
|
|
9
|
+
accessToken: string;
|
|
10
|
+
refreshToken?: string;
|
|
11
|
+
}>;
|
|
12
|
+
getMe(options?: RequestOptions): Promise<JsonObject>;
|
|
13
|
+
getMeWithAccessToken(accessToken: string): Promise<JsonObject>;
|
|
14
|
+
getForumIndex(options?: RequestOptions): Promise<unknown>;
|
|
15
|
+
getAllBoards(options?: RequestOptions): Promise<unknown>;
|
|
16
|
+
getCardStat(): Promise<unknown>;
|
|
17
|
+
getUserProfile(userId: number): Promise<unknown>;
|
|
18
|
+
getBasicUsers(ids: number[], options?: RequestOptions): Promise<unknown>;
|
|
19
|
+
getUsers(ids: number[]): Promise<unknown>;
|
|
20
|
+
getFriendIds(type: "follower" | "followee", from?: number, size?: number, options?: RequestOptions): Promise<unknown>;
|
|
21
|
+
getMoment(from?: number, size?: number, options?: RequestOptions): Promise<unknown>;
|
|
22
|
+
getFavoriteUpdates(from?: number, size?: number, options?: RequestOptions): Promise<unknown>;
|
|
23
|
+
getFavoriteGroups(): Promise<unknown>;
|
|
24
|
+
getRecentChats(from?: number, size?: number, options?: RequestOptions): Promise<unknown>;
|
|
25
|
+
getChatHistory(userId: number, from?: number, size?: number, options?: RequestOptions): Promise<unknown>;
|
|
26
|
+
searchUsers(name: string): Promise<unknown>;
|
|
27
|
+
getUnreadCount(options?: RequestOptions): Promise<unknown>;
|
|
28
|
+
getNotices(type: "system" | "at" | "reply", from?: number, size?: number): Promise<unknown>;
|
|
29
|
+
getBrowseHistory(from?: number, size?: number): Promise<unknown>;
|
|
30
|
+
getTopic(topicId: number, options?: RequestOptions): Promise<JsonObject>;
|
|
31
|
+
getTopicPosts(topicId: number, from?: number, size?: number, options?: RequestOptions): Promise<JsonObject[]>;
|
|
32
|
+
isTopicFavorite(topicId: number): Promise<unknown>;
|
|
33
|
+
getNewTopics(from?: number, size?: number, options?: RequestOptions): Promise<unknown>;
|
|
34
|
+
getRandomTopics(size?: number): Promise<unknown>;
|
|
35
|
+
getFavoriteTopics(from?: number, size?: number, order?: number, groupId?: number): Promise<unknown>;
|
|
36
|
+
getTopicVote(topicId: number): Promise<unknown>;
|
|
37
|
+
getBasicTopics(ids: number[]): Promise<unknown>;
|
|
38
|
+
getRecentTopics(userId: number | undefined, from?: number, size?: number): Promise<unknown>;
|
|
39
|
+
getBoardInfo(boardId: number, options?: RequestOptions): Promise<unknown>;
|
|
40
|
+
getBoardTopics(boardId: number, from?: number, size?: number, best?: boolean, options?: RequestOptions): Promise<unknown>;
|
|
41
|
+
searchTopics(keyword: string, from?: number, size?: number): Promise<unknown>;
|
|
42
|
+
getPostReactionState(postId: number): Promise<unknown>;
|
|
43
|
+
getPostRateReasons(type: number): Promise<unknown>;
|
|
44
|
+
private request;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { endpoints } from "./endpoints.js";
|
|
2
|
+
const passwordClientId = "9a1fd200-8687-44b1-4c20-08d50a96e5cd";
|
|
3
|
+
const passwordClientSecret = "8b53f727-08e2-4509-8857-e34bf92b27f2";
|
|
4
|
+
export class Cc98Client {
|
|
5
|
+
tokenStore;
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.tokenStore = options.tokenStore;
|
|
8
|
+
}
|
|
9
|
+
async loginWithPassword(username, password) {
|
|
10
|
+
const body = new URLSearchParams({
|
|
11
|
+
username,
|
|
12
|
+
password,
|
|
13
|
+
client_id: passwordClientId,
|
|
14
|
+
client_secret: passwordClientSecret,
|
|
15
|
+
grant_type: "password",
|
|
16
|
+
scope: "cc98-api openid offline_access"
|
|
17
|
+
});
|
|
18
|
+
const token = await this.request(endpoints.auth.token, {
|
|
19
|
+
method: "POST",
|
|
20
|
+
headers: {
|
|
21
|
+
"content-type": "application/x-www-form-urlencoded"
|
|
22
|
+
},
|
|
23
|
+
body
|
|
24
|
+
}, false);
|
|
25
|
+
if (!token.access_token) {
|
|
26
|
+
const reason = token.error_description ?? token.error ?? "login failed";
|
|
27
|
+
throw new Error(reason);
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
accessToken: token.access_token,
|
|
31
|
+
refreshToken: token.refresh_token
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async getMe(options = {}) {
|
|
35
|
+
return this.request(endpoints.user.me, { signal: options.signal });
|
|
36
|
+
}
|
|
37
|
+
async getMeWithAccessToken(accessToken) {
|
|
38
|
+
return this.request(endpoints.user.me, {
|
|
39
|
+
headers: {
|
|
40
|
+
authorization: `Bearer ${accessToken}`
|
|
41
|
+
}
|
|
42
|
+
}, false);
|
|
43
|
+
}
|
|
44
|
+
async getForumIndex(options = {}) {
|
|
45
|
+
return this.request(endpoints.forum.index, { signal: options.signal });
|
|
46
|
+
}
|
|
47
|
+
async getAllBoards(options = {}) {
|
|
48
|
+
return this.request(endpoints.forum.allBoards, { signal: options.signal });
|
|
49
|
+
}
|
|
50
|
+
async getCardStat() {
|
|
51
|
+
return this.request(endpoints.forum.cardStat);
|
|
52
|
+
}
|
|
53
|
+
async getUserProfile(userId) {
|
|
54
|
+
return this.request(endpoints.user.profile(userId));
|
|
55
|
+
}
|
|
56
|
+
async getBasicUsers(ids, options = {}) {
|
|
57
|
+
return this.request(endpoints.user.basic(ids), { signal: options.signal });
|
|
58
|
+
}
|
|
59
|
+
async getUsers(ids) {
|
|
60
|
+
return this.request(endpoints.user.list(ids));
|
|
61
|
+
}
|
|
62
|
+
async getFriendIds(type, from = 0, size = 10, options = {}) {
|
|
63
|
+
return this.request(endpoints.user.friendIds(type, from, size), { signal: options.signal });
|
|
64
|
+
}
|
|
65
|
+
async getMoment(from = 0, size = 20, options = {}) {
|
|
66
|
+
return this.request(endpoints.user.moment(from, size), { signal: options.signal });
|
|
67
|
+
}
|
|
68
|
+
async getFavoriteUpdates(from = 0, size = 20, options = {}) {
|
|
69
|
+
return this.request(endpoints.user.favoriteUpdates(from, size), { signal: options.signal });
|
|
70
|
+
}
|
|
71
|
+
async getFavoriteGroups() {
|
|
72
|
+
return this.request(endpoints.user.favoriteGroups);
|
|
73
|
+
}
|
|
74
|
+
async getRecentChats(from = 0, size = 10, options = {}) {
|
|
75
|
+
return this.request(endpoints.user.recentChats(from, size), { signal: options.signal });
|
|
76
|
+
}
|
|
77
|
+
async getChatHistory(userId, from = 0, size = 10, options = {}) {
|
|
78
|
+
return this.request(endpoints.user.chatHistory(userId, from, size), { signal: options.signal });
|
|
79
|
+
}
|
|
80
|
+
async searchUsers(name) {
|
|
81
|
+
return this.request(endpoints.user.search(name));
|
|
82
|
+
}
|
|
83
|
+
async getUnreadCount(options = {}) {
|
|
84
|
+
return this.request(endpoints.user.unread, { signal: options.signal });
|
|
85
|
+
}
|
|
86
|
+
async getNotices(type, from = 0, size = 10) {
|
|
87
|
+
return this.request(endpoints.user.notices(type, from, size));
|
|
88
|
+
}
|
|
89
|
+
async getBrowseHistory(from = 0, size = 11) {
|
|
90
|
+
return this.request(endpoints.user.browseHistory(from, size));
|
|
91
|
+
}
|
|
92
|
+
async getTopic(topicId, options = {}) {
|
|
93
|
+
return this.request(endpoints.topic.info(topicId), { signal: options.signal });
|
|
94
|
+
}
|
|
95
|
+
async getTopicPosts(topicId, from = 0, size = 10, options = {}) {
|
|
96
|
+
return this.request(endpoints.topic.posts(topicId, from, size), { signal: options.signal });
|
|
97
|
+
}
|
|
98
|
+
async isTopicFavorite(topicId) {
|
|
99
|
+
return this.request(endpoints.topic.isFavorite(topicId));
|
|
100
|
+
}
|
|
101
|
+
async getNewTopics(from = 0, size = 20, options = {}) {
|
|
102
|
+
return this.request(endpoints.topic.newTopics(from, size), { signal: options.signal });
|
|
103
|
+
}
|
|
104
|
+
async getRandomTopics(size = 10) {
|
|
105
|
+
return this.request(endpoints.topic.randomTopics(size));
|
|
106
|
+
}
|
|
107
|
+
async getFavoriteTopics(from = 0, size = 11, order = 1, groupId = 0) {
|
|
108
|
+
return this.request(endpoints.topic.favoriteTopics(from, size, order, groupId));
|
|
109
|
+
}
|
|
110
|
+
async getTopicVote(topicId) {
|
|
111
|
+
return this.request(endpoints.topic.vote(topicId));
|
|
112
|
+
}
|
|
113
|
+
async getBasicTopics(ids) {
|
|
114
|
+
return this.request(endpoints.topic.basic(ids));
|
|
115
|
+
}
|
|
116
|
+
async getRecentTopics(userId, from = 0, size = 11) {
|
|
117
|
+
return this.request(endpoints.topic.recent(userId, from, size));
|
|
118
|
+
}
|
|
119
|
+
async getBoardInfo(boardId, options = {}) {
|
|
120
|
+
return this.request(endpoints.board.info(boardId), { signal: options.signal });
|
|
121
|
+
}
|
|
122
|
+
async getBoardTopics(boardId, from = 0, size = 20, best = false, options = {}) {
|
|
123
|
+
const endpoint = best
|
|
124
|
+
? endpoints.board.bestTopics(boardId, from, size)
|
|
125
|
+
: endpoints.board.topics(boardId, from, size);
|
|
126
|
+
return this.request(endpoint, { signal: options.signal });
|
|
127
|
+
}
|
|
128
|
+
async searchTopics(keyword, from = 0, size = 20) {
|
|
129
|
+
return this.request(endpoints.topic.search(keyword, from, size));
|
|
130
|
+
}
|
|
131
|
+
async getPostReactionState(postId) {
|
|
132
|
+
return this.request(endpoints.post.reactionState(postId));
|
|
133
|
+
}
|
|
134
|
+
async getPostRateReasons(type) {
|
|
135
|
+
return this.request(endpoints.post.rateReasons(type));
|
|
136
|
+
}
|
|
137
|
+
async request(url, init = {}, authorize = true) {
|
|
138
|
+
const headers = new Headers(init.headers);
|
|
139
|
+
if (authorize) {
|
|
140
|
+
const token = await this.tokenStore.getAccessToken();
|
|
141
|
+
if (!token) {
|
|
142
|
+
throw new Error("not logged in. Run \"cc98 login\" first.");
|
|
143
|
+
}
|
|
144
|
+
headers.set("authorization", `Bearer ${token}`);
|
|
145
|
+
}
|
|
146
|
+
const response = await fetch(url, {
|
|
147
|
+
...init,
|
|
148
|
+
headers
|
|
149
|
+
});
|
|
150
|
+
const text = await response.text();
|
|
151
|
+
const data = parseJson(text);
|
|
152
|
+
if (!response.ok) {
|
|
153
|
+
if (response.status === 401) {
|
|
154
|
+
throw new Error("not logged in or token expired. Run \"cc98 login\".");
|
|
155
|
+
}
|
|
156
|
+
const detail = getErrorDetail(data) ?? text;
|
|
157
|
+
throw new Error(`request failed: ${response.status} ${response.statusText}${detail ? `: ${detail}` : ""}`);
|
|
158
|
+
}
|
|
159
|
+
return data;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
function parseJson(text) {
|
|
163
|
+
if (!text) {
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
try {
|
|
167
|
+
return JSON.parse(text);
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
return text;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function getErrorDetail(data) {
|
|
174
|
+
if (typeof data !== "object" || data === null) {
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
177
|
+
if ("error_description" in data && typeof data.error_description === "string") {
|
|
178
|
+
return data.error_description;
|
|
179
|
+
}
|
|
180
|
+
if ("message" in data && typeof data.message === "string") {
|
|
181
|
+
return data.message;
|
|
182
|
+
}
|
|
183
|
+
if ("error" in data && typeof data.error === "string") {
|
|
184
|
+
return data.error;
|
|
185
|
+
}
|
|
186
|
+
return JSON.stringify(data);
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,MAAM,gBAAgB,GAAG,sCAAsC,CAAC;AAChE,MAAM,oBAAoB,GAAG,sCAAsC,CAAC;AAMpE,MAAM,OAAO,UAAU;IACJ,UAAU,CAA8B;IAEzD,YAAY,OAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAAgB,EAAE,QAAgB;QACxD,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;YAC/B,QAAQ;YACR,QAAQ;YACR,SAAS,EAAE,gBAAgB;YAC3B,aAAa,EAAE,oBAAoB;YACnC,UAAU,EAAE,UAAU;YACtB,KAAK,EAAE,gCAAgC;SACxC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAY,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;YACD,IAAI;SACL,EAAE,KAAK,CAAC,CAAC;QAEV,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,KAAK,IAAI,cAAc,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO;YACL,WAAW,EAAE,KAAK,CAAC,YAAY;YAC/B,YAAY,EAAE,KAAK,CAAC,aAAa;SAClC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAA0B,EAAE;QACtC,OAAO,IAAI,CAAC,OAAO,CAAa,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAa,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE;YACjD,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAW,EAAE;aACvC;SACF,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAA0B,EAAE;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAA0B,EAAE;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAa,EAAE,UAA0B,EAAE;QAC7D,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAa;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAA6B,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,UAA0B,EAAE;QACjG,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,UAA0B,EAAE;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,UAA0B,EAAE;QACxE,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,UAA0B,EAAE;QACpE,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,UAA0B,EAAE;QACpF,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,UAA0B,EAAE;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAA+B,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE;QACnE,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE;QACxC,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE,UAA0B,EAAE;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAa,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,UAA0B,EAAE;QACpF,OAAO,IAAI,CAAC,OAAO,CAAe,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,UAA0B,EAAE;QAClE,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAI,GAAG,EAAE;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC;QACjE,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAa;QAChC,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA0B,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE;QACnE,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,UAA0B,EAAE;QAC9D,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAe,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,KAAK,EAAE,UAA0B,EAAE;QACnG,MAAM,QAAQ,GAAG,IAAI;YACnB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;YACjD,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAU,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE;QACrD,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAc;QACvC,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY;QACnC,OAAO,IAAI,CAAC,OAAO,CAAU,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,GAAW,EAAE,OAAoB,EAAE,EAAE,SAAS,GAAG,IAAI;QAC5E,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;YACrD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,GAAG,IAAI;YACP,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;YACD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7G,CAAC;QAED,OAAO,IAAS,CAAC;IACnB,CAAC;CACF;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAa;IACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,mBAAmB,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,SAAS,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export declare const endpoints: {
|
|
2
|
+
readonly auth: {
|
|
3
|
+
readonly token: "https://openid.cc98.org/connect/token";
|
|
4
|
+
};
|
|
5
|
+
readonly forum: {
|
|
6
|
+
readonly allBoards: "https://api.cc98.org/Board/all";
|
|
7
|
+
readonly index: "https://api.cc98.org/config/index";
|
|
8
|
+
readonly cardStat: "https://card.cc98.org/api/collection/stat";
|
|
9
|
+
};
|
|
10
|
+
readonly user: {
|
|
11
|
+
readonly me: "https://api.cc98.org/me";
|
|
12
|
+
readonly profile: (userId: number) => string;
|
|
13
|
+
readonly basic: (ids: number[]) => string;
|
|
14
|
+
readonly list: (ids: number[]) => string;
|
|
15
|
+
readonly friendIds: (type: "follower" | "followee", from?: number, size?: number) => string;
|
|
16
|
+
readonly moment: (from?: number, size?: number) => string;
|
|
17
|
+
readonly favoriteUpdates: (from?: number, size?: number) => string;
|
|
18
|
+
readonly favoriteGroups: "https://api.cc98.org/me/favorite-topic-group";
|
|
19
|
+
readonly recentChats: (from?: number, size?: number) => string;
|
|
20
|
+
readonly chatHistory: (userId: number, from?: number, size?: number) => string;
|
|
21
|
+
readonly search: (name: string) => string;
|
|
22
|
+
readonly unread: "https://api.cc98.org/me/unread-count";
|
|
23
|
+
readonly notices: (type: "system" | "at" | "reply", from?: number, size?: number) => string;
|
|
24
|
+
readonly browseHistory: (from?: number, size?: number) => string;
|
|
25
|
+
};
|
|
26
|
+
readonly board: {
|
|
27
|
+
readonly info: (boardId: number) => string;
|
|
28
|
+
readonly topics: (boardId: number, from?: number, size?: number) => string;
|
|
29
|
+
readonly bestTopics: (boardId: number, from?: number, size?: number) => string;
|
|
30
|
+
};
|
|
31
|
+
readonly topic: {
|
|
32
|
+
readonly info: (topicId: number) => string;
|
|
33
|
+
readonly isFavorite: (topicId: number) => string;
|
|
34
|
+
readonly posts: (topicId: number, from?: number, size?: number) => string;
|
|
35
|
+
readonly newTopics: (from?: number, size?: number) => string;
|
|
36
|
+
readonly randomTopics: (size?: number) => string;
|
|
37
|
+
readonly search: (keyword: string, from?: number, size?: number) => string;
|
|
38
|
+
readonly favoriteTopics: (from?: number, size?: number, order?: number, groupId?: number) => string;
|
|
39
|
+
readonly vote: (topicId: number) => string;
|
|
40
|
+
readonly basic: (ids: number[]) => string;
|
|
41
|
+
readonly recent: (userId: number | undefined, from?: number, size?: number) => string;
|
|
42
|
+
};
|
|
43
|
+
readonly post: {
|
|
44
|
+
readonly reactionState: (postId: number) => string;
|
|
45
|
+
readonly rateReasons: (type: number) => string;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=endpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/api/endpoints.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS;;;;;;;;;;;mCAWA,MAAM;8BACX,MAAM,EAAE;6BACT,MAAM,EAAE;mCACF,UAAU,GAAG,UAAU;;;;;uCAMnB,MAAM;gCAEb,MAAM;;iCAEL,QAAQ,GAAG,IAAI,GAAG,OAAO;;;;iCAKzB,MAAM;mCACJ,MAAM;uCAEF,MAAM;;;iCAIZ,MAAM;uCACA,MAAM;kCACX,MAAM;;;mCAIL,MAAM;;iCAIR,MAAM;8BACT,MAAM,EAAE;kCACJ,MAAM,GAAG,SAAS;;;yCAMX,MAAM;qCACV,MAAM;;CAEpB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const base = "https://api.cc98.org";
|
|
2
|
+
const oidc = "https://openid.cc98.org";
|
|
3
|
+
const card = "https://card.cc98.org";
|
|
4
|
+
export const endpoints = {
|
|
5
|
+
auth: {
|
|
6
|
+
token: `${oidc}/connect/token`
|
|
7
|
+
},
|
|
8
|
+
forum: {
|
|
9
|
+
allBoards: `${base}/Board/all`,
|
|
10
|
+
index: `${base}/config/index`,
|
|
11
|
+
cardStat: `${card}/api/collection/stat`
|
|
12
|
+
},
|
|
13
|
+
user: {
|
|
14
|
+
me: `${base}/me`,
|
|
15
|
+
profile: (userId) => `${base}/user/${userId}`,
|
|
16
|
+
basic: (ids) => `${base}/user/basic?${ids.map((id) => `id=${id}`).join("&")}`,
|
|
17
|
+
list: (ids) => `${base}/user?${ids.map((id) => `id=${id}`).join("&")}`,
|
|
18
|
+
friendIds: (type, from = 0, size = 10) => `${base}/me/${type}?from=${from}&size=${size}`,
|
|
19
|
+
moment: (from = 0, size = 20) => `${base}/me/followee/topic?from=${from}&size=${size}&order=0`,
|
|
20
|
+
favoriteUpdates: (from = 0, size = 20) => `${base}/topic/me/favorite?from=${from}&size=${size}&order=1`,
|
|
21
|
+
favoriteGroups: `${base}/me/favorite-topic-group`,
|
|
22
|
+
recentChats: (from = 0, size = 10) => `${base}/message/recent-contact-users?from=${from}&size=${size}`,
|
|
23
|
+
chatHistory: (userId, from = 0, size = 10) => `${base}/message/user/${userId}?from=${from}&size=${size}`,
|
|
24
|
+
search: (name) => `${base}/user/name/${encodeURIComponent(name)}`,
|
|
25
|
+
unread: `${base}/me/unread-count`,
|
|
26
|
+
notices: (type, from = 0, size = 10) => `${base}/notification/${type}?from=${from}&size=${size}`,
|
|
27
|
+
browseHistory: (from = 0, size = 11) => `${base}/me/browsing-record?from=${from}&size=${size}`
|
|
28
|
+
},
|
|
29
|
+
board: {
|
|
30
|
+
info: (boardId) => `${base}/board/${boardId}`,
|
|
31
|
+
topics: (boardId, from = 0, size = 20) => `${base}/board/${boardId}/topic?from=${from}&size=${size}`,
|
|
32
|
+
bestTopics: (boardId, from = 0, size = 20) => `${base}/topic/best/board/${boardId}?from=${from}&size=${size}`
|
|
33
|
+
},
|
|
34
|
+
topic: {
|
|
35
|
+
info: (topicId) => `${base}/topic/${topicId}`,
|
|
36
|
+
isFavorite: (topicId) => `${base}/topic/${topicId}/isfavorite`,
|
|
37
|
+
posts: (topicId, from = 0, size = 10) => `${base}/Topic/${topicId}/post?from=${from}&size=${size}`,
|
|
38
|
+
newTopics: (from = 0, size = 20) => `${base}/topic/new?from=${from}&size=${size}`,
|
|
39
|
+
randomTopics: (size = 10) => `${base}/topic/random-recent?size=${size}`,
|
|
40
|
+
search: (keyword, from = 0, size = 20) => `${base}/topic/search?keyword=${encodeURIComponent(keyword)}&from=${from}&size=${size}`,
|
|
41
|
+
favoriteTopics: (from = 0, size = 11, order = 1, groupId = 0) => `${base}/topic/me/favorite?from=${from}&size=${size}&order=${order}&groupid=${groupId}`,
|
|
42
|
+
vote: (topicId) => `${base}/topic/${topicId}/vote`,
|
|
43
|
+
basic: (ids) => `${base}/topic/basic?${ids.map((id) => `id=${id}`).join("&")}`,
|
|
44
|
+
recent: (userId, from = 0, size = 11) => userId === undefined
|
|
45
|
+
? `${base}/me/recent-topic?from=${from}&size=${size}`
|
|
46
|
+
: `${base}/user/${userId}/recent-topic?userid=${userId}&from=${from}&size=${size}`
|
|
47
|
+
},
|
|
48
|
+
post: {
|
|
49
|
+
reactionState: (postId) => `${base}/post/${postId}/like`,
|
|
50
|
+
rateReasons: (type) => `${base}/post/rating-reason?type=${type}`
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=endpoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/api/endpoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface AuthToken {
|
|
2
|
+
access_token?: string;
|
|
3
|
+
refresh_token?: string;
|
|
4
|
+
error?: string;
|
|
5
|
+
error_description?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ClientOptions {
|
|
8
|
+
tokenStore: {
|
|
9
|
+
getAccessToken(): Promise<string | undefined>;
|
|
10
|
+
getRefreshToken(): Promise<string | undefined>;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export type JsonObject = Record<string, unknown>;
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE;QACV,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;QAC9C,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;KAChD,CAAC;CACH;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":""}
|