wechat-md-publisher 1.0.4 → 1.0.5
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/dist/cli/commands/draft.d.ts.map +1 -1
- package/dist/cli/commands/draft.js +32 -6
- package/dist/cli/commands/draft.js.map +1 -1
- package/dist/cli/commands/publish.d.ts.map +1 -1
- package/dist/cli/commands/publish.js +37 -7
- package/dist/cli/commands/publish.js.map +1 -1
- package/dist/cli.js +82 -30
- package/dist/cli.js.map +1 -1
- package/dist/container.d.ts +3 -2
- package/dist/container.d.ts.map +1 -1
- package/dist/container.js +5 -5
- package/dist/container.js.map +1 -1
- package/dist/services/AccountService.d.ts +3 -2
- package/dist/services/AccountService.d.ts.map +1 -1
- package/dist/services/AccountService.js +30 -7
- package/dist/services/AccountService.js.map +1 -1
- package/dist/types/account.d.ts +5 -0
- package/dist/types/account.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/draft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/draft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,kBAAkB,IAAI,OAAO,CAiI5C"}
|
|
@@ -3,6 +3,16 @@ import { container } from '../../container';
|
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import Table from 'cli-table3';
|
|
5
5
|
import ora from 'ora';
|
|
6
|
+
function parseRemoteAuth(options) {
|
|
7
|
+
const { credentialServer, userId, apiKey } = options;
|
|
8
|
+
if (credentialServer || userId || apiKey) {
|
|
9
|
+
if (!credentialServer || !userId || !apiKey) {
|
|
10
|
+
throw new Error('--credential-server, --user-id, --api-key 必须同时提供');
|
|
11
|
+
}
|
|
12
|
+
return { serverUrl: credentialServer, userId, apiKey };
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
6
16
|
export function createDraftCommand() {
|
|
7
17
|
const cmd = new Command('draft')
|
|
8
18
|
.description('草稿管理');
|
|
@@ -10,11 +20,15 @@ export function createDraftCommand() {
|
|
|
10
20
|
.description('创建草稿')
|
|
11
21
|
.requiredOption('-f, --file <file>', 'Markdown 文件路径')
|
|
12
22
|
.option('-t, --theme <theme>', '主题 ID')
|
|
23
|
+
.option('--credential-server <url>', '远程凭证服务地址')
|
|
24
|
+
.option('--user-id <userId>', '用户 ID(远程凭证)')
|
|
25
|
+
.option('--api-key <apiKey>', 'API 密钥(远程凭证)')
|
|
13
26
|
.action(async (options) => {
|
|
14
27
|
const spinner = ora('正在创建草稿...').start();
|
|
15
28
|
try {
|
|
29
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
16
30
|
await container.initialize();
|
|
17
|
-
const draftService = await container.getDraftService();
|
|
31
|
+
const draftService = await container.getDraftService(remoteAuth);
|
|
18
32
|
const result = await draftService.create({
|
|
19
33
|
file: options.file,
|
|
20
34
|
theme: options.theme,
|
|
@@ -33,11 +47,15 @@ export function createDraftCommand() {
|
|
|
33
47
|
.description('列出草稿')
|
|
34
48
|
.option('-p, --page <page>', '页码', '1')
|
|
35
49
|
.option('-s, --size <size>', '每页数量', '20')
|
|
50
|
+
.option('--credential-server <url>', '远程凭证服务地址')
|
|
51
|
+
.option('--user-id <userId>', '用户 ID(远程凭证)')
|
|
52
|
+
.option('--api-key <apiKey>', 'API 密钥(远程凭证)')
|
|
36
53
|
.action(async (options) => {
|
|
37
54
|
const spinner = ora('正在获取草稿列表...').start();
|
|
38
55
|
try {
|
|
56
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
39
57
|
await container.initialize();
|
|
40
|
-
const draftService = await container.getDraftService();
|
|
58
|
+
const draftService = await container.getDraftService(remoteAuth);
|
|
41
59
|
const page = parseInt(options.page);
|
|
42
60
|
const size = parseInt(options.size);
|
|
43
61
|
const result = await draftService.list(page, size);
|
|
@@ -70,11 +88,15 @@ export function createDraftCommand() {
|
|
|
70
88
|
});
|
|
71
89
|
cmd.command('delete <media-id>')
|
|
72
90
|
.description('删除草稿')
|
|
73
|
-
.
|
|
91
|
+
.option('--credential-server <url>', '远程凭证服务地址')
|
|
92
|
+
.option('--user-id <userId>', '用户 ID(远程凭证)')
|
|
93
|
+
.option('--api-key <apiKey>', 'API 密钥(远程凭证)')
|
|
94
|
+
.action(async (mediaId, options) => {
|
|
74
95
|
const spinner = ora('正在删除草稿...').start();
|
|
75
96
|
try {
|
|
97
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
76
98
|
await container.initialize();
|
|
77
|
-
const draftService = await container.getDraftService();
|
|
99
|
+
const draftService = await container.getDraftService(remoteAuth);
|
|
78
100
|
await draftService.delete(mediaId);
|
|
79
101
|
spinner.succeed('草稿删除成功');
|
|
80
102
|
}
|
|
@@ -86,10 +108,14 @@ export function createDraftCommand() {
|
|
|
86
108
|
});
|
|
87
109
|
cmd.command('count')
|
|
88
110
|
.description('获取草稿总数')
|
|
89
|
-
.
|
|
111
|
+
.option('--credential-server <url>', '远程凭证服务地址')
|
|
112
|
+
.option('--user-id <userId>', '用户 ID(远程凭证)')
|
|
113
|
+
.option('--api-key <apiKey>', 'API 密钥(远程凭证)')
|
|
114
|
+
.action(async (options) => {
|
|
90
115
|
try {
|
|
116
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
91
117
|
await container.initialize();
|
|
92
|
-
const draftService = await container.getDraftService();
|
|
118
|
+
const draftService = await container.getDraftService(remoteAuth);
|
|
93
119
|
const count = await draftService.count();
|
|
94
120
|
console.log(chalk.green(`草稿总数: ${count}`));
|
|
95
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../../../src/cli/commands/draft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../../../src/cli/commands/draft.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,wBAAgB,oBAAoB,IAAI,OAAO,CAqK9C"}
|
|
@@ -3,16 +3,30 @@ import { container } from '../../container';
|
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import Table from 'cli-table3';
|
|
5
5
|
import ora from 'ora';
|
|
6
|
+
function parseRemoteAuth(options) {
|
|
7
|
+
const { credentialServer, userId, apiKey } = options;
|
|
8
|
+
if (credentialServer || userId || apiKey) {
|
|
9
|
+
if (!credentialServer || !userId || !apiKey) {
|
|
10
|
+
throw new Error('--credential-server, --user-id, --api-key 必须同时提供');
|
|
11
|
+
}
|
|
12
|
+
return { serverUrl: credentialServer, userId, apiKey };
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
6
16
|
export function createPublishCommand() {
|
|
7
17
|
const cmd = new Command('publish')
|
|
8
18
|
.description('发布管理');
|
|
9
19
|
cmd.command('submit <media-id>')
|
|
10
20
|
.description('发布草稿')
|
|
11
|
-
.
|
|
21
|
+
.option('--credential-server <url>', '远程凭证服务地址')
|
|
22
|
+
.option('--user-id <userId>', '用户 ID(远程凭证)')
|
|
23
|
+
.option('--api-key <apiKey>', 'API 密钥(远程凭证)')
|
|
24
|
+
.action(async (mediaId, options) => {
|
|
12
25
|
const spinner = ora('正在发布草稿...').start();
|
|
13
26
|
try {
|
|
27
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
14
28
|
await container.initialize();
|
|
15
|
-
const publishService = await container.getPublishService();
|
|
29
|
+
const publishService = await container.getPublishService(remoteAuth);
|
|
16
30
|
const result = await publishService.submit(mediaId);
|
|
17
31
|
spinner.succeed('发布任务提交成功');
|
|
18
32
|
console.log(chalk.green(` Publish ID: ${result.publish_id}`));
|
|
@@ -28,11 +42,15 @@ export function createPublishCommand() {
|
|
|
28
42
|
.description('创建并发布文章')
|
|
29
43
|
.requiredOption('-f, --file <file>', 'Markdown 文件路径')
|
|
30
44
|
.option('-t, --theme <theme>', '主题 ID')
|
|
45
|
+
.option('--credential-server <url>', '远程凭证服务地址')
|
|
46
|
+
.option('--user-id <userId>', '用户 ID(远程凭证)')
|
|
47
|
+
.option('--api-key <apiKey>', 'API 密钥(远程凭证)')
|
|
31
48
|
.action(async (options) => {
|
|
32
49
|
const spinner = ora('正在创建并发布文章...').start();
|
|
33
50
|
try {
|
|
51
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
34
52
|
await container.initialize();
|
|
35
|
-
const publishService = await container.getPublishService();
|
|
53
|
+
const publishService = await container.getPublishService(remoteAuth);
|
|
36
54
|
const result = await publishService.createAndPublish({
|
|
37
55
|
file: options.file,
|
|
38
56
|
theme: options.theme,
|
|
@@ -50,11 +68,15 @@ export function createPublishCommand() {
|
|
|
50
68
|
.description('列出已发布文章')
|
|
51
69
|
.option('-p, --page <page>', '页码', '1')
|
|
52
70
|
.option('-s, --size <size>', '每页数量', '20')
|
|
71
|
+
.option('--credential-server <url>', '远程凭证服务地址')
|
|
72
|
+
.option('--user-id <userId>', '用户 ID(远程凭证)')
|
|
73
|
+
.option('--api-key <apiKey>', 'API 密钥(远程凭证)')
|
|
53
74
|
.action(async (options) => {
|
|
54
75
|
const spinner = ora('正在获取已发布文章列表...').start();
|
|
55
76
|
try {
|
|
77
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
56
78
|
await container.initialize();
|
|
57
|
-
const publishService = await container.getPublishService();
|
|
79
|
+
const publishService = await container.getPublishService(remoteAuth);
|
|
58
80
|
const page = parseInt(options.page);
|
|
59
81
|
const size = parseInt(options.size);
|
|
60
82
|
const result = await publishService.list(page, size);
|
|
@@ -88,11 +110,15 @@ export function createPublishCommand() {
|
|
|
88
110
|
cmd.command('delete <article-id>')
|
|
89
111
|
.description('删除已发布文章')
|
|
90
112
|
.option('-i, --index <index>', '文章索引', '0')
|
|
113
|
+
.option('--credential-server <url>', '远程凭证服务地址')
|
|
114
|
+
.option('--user-id <userId>', '用户 ID(远程凭证)')
|
|
115
|
+
.option('--api-key <apiKey>', 'API 密钥(远程凭证)')
|
|
91
116
|
.action(async (articleId, options) => {
|
|
92
117
|
const spinner = ora('正在删除已发布文章...').start();
|
|
93
118
|
try {
|
|
119
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
94
120
|
await container.initialize();
|
|
95
|
-
const publishService = await container.getPublishService();
|
|
121
|
+
const publishService = await container.getPublishService(remoteAuth);
|
|
96
122
|
const index = parseInt(options.index);
|
|
97
123
|
await publishService.delete(articleId, index);
|
|
98
124
|
spinner.succeed('已发布文章删除成功');
|
|
@@ -105,10 +131,14 @@ export function createPublishCommand() {
|
|
|
105
131
|
});
|
|
106
132
|
cmd.command('status <publish-id>')
|
|
107
133
|
.description('查询发布状态')
|
|
108
|
-
.
|
|
134
|
+
.option('--credential-server <url>', '远程凭证服务地址')
|
|
135
|
+
.option('--user-id <userId>', '用户 ID(远程凭证)')
|
|
136
|
+
.option('--api-key <apiKey>', 'API 密钥(远程凭证)')
|
|
137
|
+
.action(async (publishId, options) => {
|
|
109
138
|
try {
|
|
139
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
110
140
|
await container.initialize();
|
|
111
|
-
const publishService = await container.getPublishService();
|
|
141
|
+
const publishService = await container.getPublishService(remoteAuth);
|
|
112
142
|
const status = await publishService.getStatus(publishId);
|
|
113
143
|
console.log(chalk.green('发布状态:'));
|
|
114
144
|
console.log(` Publish ID: ${status.publish_id}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,GAAG,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/cli/commands/publish.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -465,16 +465,39 @@ class AccountService {
|
|
|
465
465
|
const accounts = await this.listAccounts();
|
|
466
466
|
return accounts.find((a) => a.id === id) || null;
|
|
467
467
|
}
|
|
468
|
-
async getCurrentAccount() {
|
|
468
|
+
async getCurrentAccount(remoteAuth) {
|
|
469
469
|
const accounts = await this.listAccounts();
|
|
470
|
-
if (accounts.length
|
|
471
|
-
|
|
470
|
+
if (accounts.length > 0) {
|
|
471
|
+
const defaultAccount = accounts.find((a) => a.isDefault);
|
|
472
|
+
return defaultAccount || accounts[0];
|
|
472
473
|
}
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
return defaultAccount;
|
|
474
|
+
if (remoteAuth) {
|
|
475
|
+
return await this.fetchRemoteCredentials(remoteAuth.serverUrl, remoteAuth.userId, remoteAuth.apiKey);
|
|
476
476
|
}
|
|
477
|
-
|
|
477
|
+
throw new Error("未配置账号,请先使用 account add 命令添加账号,或提供 --credential-server/--user-id/--api-key 参数");
|
|
478
|
+
}
|
|
479
|
+
async fetchRemoteCredentials(serverUrl, userId, apiKey) {
|
|
480
|
+
this.logger.info("从远程凭证服务获取账号", { serverUrl, userId });
|
|
481
|
+
const response = await fetch(serverUrl, {
|
|
482
|
+
method: "POST",
|
|
483
|
+
headers: { "Content-Type": "application/json" },
|
|
484
|
+
body: JSON.stringify({ userId, apiKey })
|
|
485
|
+
});
|
|
486
|
+
if (!response.ok) {
|
|
487
|
+
const msg = response.status === 401 ? "远程认证失败:userId 或 apiKey 无效" : `远程凭证服务请求失败: ${response.status}`;
|
|
488
|
+
throw new Error(msg);
|
|
489
|
+
}
|
|
490
|
+
const data = await response.json();
|
|
491
|
+
if (!data.appId || !data.appSecret) {
|
|
492
|
+
throw new Error("远程凭证服务返回数据不完整,缺少 appId 或 appSecret");
|
|
493
|
+
}
|
|
494
|
+
this.logger.info("远程凭证获取成功", { userId });
|
|
495
|
+
return {
|
|
496
|
+
id: userId,
|
|
497
|
+
name: userId,
|
|
498
|
+
appId: data.appId,
|
|
499
|
+
appSecret: data.appSecret
|
|
500
|
+
};
|
|
478
501
|
}
|
|
479
502
|
async setDefaultAccount(id) {
|
|
480
503
|
this.logger.info("设置默认账号", { id });
|
|
@@ -1017,8 +1040,8 @@ class Container {
|
|
|
1017
1040
|
getDatabaseManager() {
|
|
1018
1041
|
return this.dbManager;
|
|
1019
1042
|
}
|
|
1020
|
-
async getDraftService() {
|
|
1021
|
-
const account = await this.accountService.getCurrentAccount();
|
|
1043
|
+
async getDraftService(remoteAuth) {
|
|
1044
|
+
const account = await this.accountService.getCurrentAccount(remoteAuth);
|
|
1022
1045
|
const wechatClient = new WechatClient(
|
|
1023
1046
|
account.appId,
|
|
1024
1047
|
account.appSecret,
|
|
@@ -1039,9 +1062,9 @@ class Container {
|
|
|
1039
1062
|
this.logger
|
|
1040
1063
|
);
|
|
1041
1064
|
}
|
|
1042
|
-
async getPublishService() {
|
|
1043
|
-
const draftService = await this.getDraftService();
|
|
1044
|
-
const account = await this.accountService.getCurrentAccount();
|
|
1065
|
+
async getPublishService(remoteAuth) {
|
|
1066
|
+
const draftService = await this.getDraftService(remoteAuth);
|
|
1067
|
+
const account = await this.accountService.getCurrentAccount(remoteAuth);
|
|
1045
1068
|
const wechatClient = new WechatClient(
|
|
1046
1069
|
account.appId,
|
|
1047
1070
|
account.appSecret,
|
|
@@ -1202,13 +1225,24 @@ function createThemeCommand() {
|
|
|
1202
1225
|
});
|
|
1203
1226
|
return cmd;
|
|
1204
1227
|
}
|
|
1228
|
+
function parseRemoteAuth$1(options) {
|
|
1229
|
+
const { credentialServer, userId, apiKey } = options;
|
|
1230
|
+
if (credentialServer || userId || apiKey) {
|
|
1231
|
+
if (!credentialServer || !userId || !apiKey) {
|
|
1232
|
+
throw new Error("--credential-server, --user-id, --api-key 必须同时提供");
|
|
1233
|
+
}
|
|
1234
|
+
return { serverUrl: credentialServer, userId, apiKey };
|
|
1235
|
+
}
|
|
1236
|
+
return void 0;
|
|
1237
|
+
}
|
|
1205
1238
|
function createDraftCommand() {
|
|
1206
1239
|
const cmd = new Command("draft").description("草稿管理");
|
|
1207
|
-
cmd.command("create").description("创建草稿").requiredOption("-f, --file <file>", "Markdown 文件路径").option("-t, --theme <theme>", "主题 ID").action(async (options) => {
|
|
1240
|
+
cmd.command("create").description("创建草稿").requiredOption("-f, --file <file>", "Markdown 文件路径").option("-t, --theme <theme>", "主题 ID").option("--credential-server <url>", "远程凭证服务地址").option("--user-id <userId>", "用户 ID(远程凭证)").option("--api-key <apiKey>", "API 密钥(远程凭证)").action(async (options) => {
|
|
1208
1241
|
const spinner = ora("正在创建草稿...").start();
|
|
1209
1242
|
try {
|
|
1243
|
+
const remoteAuth = parseRemoteAuth$1(options);
|
|
1210
1244
|
await container.initialize();
|
|
1211
|
-
const draftService = await container.getDraftService();
|
|
1245
|
+
const draftService = await container.getDraftService(remoteAuth);
|
|
1212
1246
|
const result = await draftService.create({
|
|
1213
1247
|
file: options.file,
|
|
1214
1248
|
theme: options.theme
|
|
@@ -1222,11 +1256,12 @@ function createDraftCommand() {
|
|
|
1222
1256
|
process.exit(1);
|
|
1223
1257
|
}
|
|
1224
1258
|
});
|
|
1225
|
-
cmd.command("list").description("列出草稿").option("-p, --page <page>", "页码", "1").option("-s, --size <size>", "每页数量", "20").action(async (options) => {
|
|
1259
|
+
cmd.command("list").description("列出草稿").option("-p, --page <page>", "页码", "1").option("-s, --size <size>", "每页数量", "20").option("--credential-server <url>", "远程凭证服务地址").option("--user-id <userId>", "用户 ID(远程凭证)").option("--api-key <apiKey>", "API 密钥(远程凭证)").action(async (options) => {
|
|
1226
1260
|
const spinner = ora("正在获取草稿列表...").start();
|
|
1227
1261
|
try {
|
|
1262
|
+
const remoteAuth = parseRemoteAuth$1(options);
|
|
1228
1263
|
await container.initialize();
|
|
1229
|
-
const draftService = await container.getDraftService();
|
|
1264
|
+
const draftService = await container.getDraftService(remoteAuth);
|
|
1230
1265
|
const page = parseInt(options.page);
|
|
1231
1266
|
const size = parseInt(options.size);
|
|
1232
1267
|
const result = await draftService.list(page, size);
|
|
@@ -1257,11 +1292,12 @@ function createDraftCommand() {
|
|
|
1257
1292
|
process.exit(1);
|
|
1258
1293
|
}
|
|
1259
1294
|
});
|
|
1260
|
-
cmd.command("delete <media-id>").description("删除草稿").action(async (mediaId) => {
|
|
1295
|
+
cmd.command("delete <media-id>").description("删除草稿").option("--credential-server <url>", "远程凭证服务地址").option("--user-id <userId>", "用户 ID(远程凭证)").option("--api-key <apiKey>", "API 密钥(远程凭证)").action(async (mediaId, options) => {
|
|
1261
1296
|
const spinner = ora("正在删除草稿...").start();
|
|
1262
1297
|
try {
|
|
1298
|
+
const remoteAuth = parseRemoteAuth$1(options);
|
|
1263
1299
|
await container.initialize();
|
|
1264
|
-
const draftService = await container.getDraftService();
|
|
1300
|
+
const draftService = await container.getDraftService(remoteAuth);
|
|
1265
1301
|
await draftService.delete(mediaId);
|
|
1266
1302
|
spinner.succeed("草稿删除成功");
|
|
1267
1303
|
} catch (error) {
|
|
@@ -1270,10 +1306,11 @@ function createDraftCommand() {
|
|
|
1270
1306
|
process.exit(1);
|
|
1271
1307
|
}
|
|
1272
1308
|
});
|
|
1273
|
-
cmd.command("count").description("获取草稿总数").action(async () => {
|
|
1309
|
+
cmd.command("count").description("获取草稿总数").option("--credential-server <url>", "远程凭证服务地址").option("--user-id <userId>", "用户 ID(远程凭证)").option("--api-key <apiKey>", "API 密钥(远程凭证)").action(async (options) => {
|
|
1274
1310
|
try {
|
|
1311
|
+
const remoteAuth = parseRemoteAuth$1(options);
|
|
1275
1312
|
await container.initialize();
|
|
1276
|
-
const draftService = await container.getDraftService();
|
|
1313
|
+
const draftService = await container.getDraftService(remoteAuth);
|
|
1277
1314
|
const count = await draftService.count();
|
|
1278
1315
|
console.log(chalk.green(`草稿总数: ${count}`));
|
|
1279
1316
|
} catch (error) {
|
|
@@ -1283,13 +1320,24 @@ function createDraftCommand() {
|
|
|
1283
1320
|
});
|
|
1284
1321
|
return cmd;
|
|
1285
1322
|
}
|
|
1323
|
+
function parseRemoteAuth(options) {
|
|
1324
|
+
const { credentialServer, userId, apiKey } = options;
|
|
1325
|
+
if (credentialServer || userId || apiKey) {
|
|
1326
|
+
if (!credentialServer || !userId || !apiKey) {
|
|
1327
|
+
throw new Error("--credential-server, --user-id, --api-key 必须同时提供");
|
|
1328
|
+
}
|
|
1329
|
+
return { serverUrl: credentialServer, userId, apiKey };
|
|
1330
|
+
}
|
|
1331
|
+
return void 0;
|
|
1332
|
+
}
|
|
1286
1333
|
function createPublishCommand() {
|
|
1287
1334
|
const cmd = new Command("publish").description("发布管理");
|
|
1288
|
-
cmd.command("submit <media-id>").description("发布草稿").action(async (mediaId) => {
|
|
1335
|
+
cmd.command("submit <media-id>").description("发布草稿").option("--credential-server <url>", "远程凭证服务地址").option("--user-id <userId>", "用户 ID(远程凭证)").option("--api-key <apiKey>", "API 密钥(远程凭证)").action(async (mediaId, options) => {
|
|
1289
1336
|
const spinner = ora("正在发布草稿...").start();
|
|
1290
1337
|
try {
|
|
1338
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
1291
1339
|
await container.initialize();
|
|
1292
|
-
const publishService = await container.getPublishService();
|
|
1340
|
+
const publishService = await container.getPublishService(remoteAuth);
|
|
1293
1341
|
const result = await publishService.submit(mediaId);
|
|
1294
1342
|
spinner.succeed("发布任务提交成功");
|
|
1295
1343
|
console.log(chalk.green(` Publish ID: ${result.publish_id}`));
|
|
@@ -1300,11 +1348,12 @@ function createPublishCommand() {
|
|
|
1300
1348
|
process.exit(1);
|
|
1301
1349
|
}
|
|
1302
1350
|
});
|
|
1303
|
-
cmd.command("create").description("创建并发布文章").requiredOption("-f, --file <file>", "Markdown 文件路径").option("-t, --theme <theme>", "主题 ID").action(async (options) => {
|
|
1351
|
+
cmd.command("create").description("创建并发布文章").requiredOption("-f, --file <file>", "Markdown 文件路径").option("-t, --theme <theme>", "主题 ID").option("--credential-server <url>", "远程凭证服务地址").option("--user-id <userId>", "用户 ID(远程凭证)").option("--api-key <apiKey>", "API 密钥(远程凭证)").action(async (options) => {
|
|
1304
1352
|
const spinner = ora("正在创建并发布文章...").start();
|
|
1305
1353
|
try {
|
|
1354
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
1306
1355
|
await container.initialize();
|
|
1307
|
-
const publishService = await container.getPublishService();
|
|
1356
|
+
const publishService = await container.getPublishService(remoteAuth);
|
|
1308
1357
|
const result = await publishService.createAndPublish({
|
|
1309
1358
|
file: options.file,
|
|
1310
1359
|
theme: options.theme
|
|
@@ -1317,11 +1366,12 @@ function createPublishCommand() {
|
|
|
1317
1366
|
process.exit(1);
|
|
1318
1367
|
}
|
|
1319
1368
|
});
|
|
1320
|
-
cmd.command("list").description("列出已发布文章").option("-p, --page <page>", "页码", "1").option("-s, --size <size>", "每页数量", "20").action(async (options) => {
|
|
1369
|
+
cmd.command("list").description("列出已发布文章").option("-p, --page <page>", "页码", "1").option("-s, --size <size>", "每页数量", "20").option("--credential-server <url>", "远程凭证服务地址").option("--user-id <userId>", "用户 ID(远程凭证)").option("--api-key <apiKey>", "API 密钥(远程凭证)").action(async (options) => {
|
|
1321
1370
|
const spinner = ora("正在获取已发布文章列表...").start();
|
|
1322
1371
|
try {
|
|
1372
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
1323
1373
|
await container.initialize();
|
|
1324
|
-
const publishService = await container.getPublishService();
|
|
1374
|
+
const publishService = await container.getPublishService(remoteAuth);
|
|
1325
1375
|
const page = parseInt(options.page);
|
|
1326
1376
|
const size = parseInt(options.size);
|
|
1327
1377
|
const result = await publishService.list(page, size);
|
|
@@ -1352,11 +1402,12 @@ function createPublishCommand() {
|
|
|
1352
1402
|
process.exit(1);
|
|
1353
1403
|
}
|
|
1354
1404
|
});
|
|
1355
|
-
cmd.command("delete <article-id>").description("删除已发布文章").option("-i, --index <index>", "文章索引", "0").action(async (articleId, options) => {
|
|
1405
|
+
cmd.command("delete <article-id>").description("删除已发布文章").option("-i, --index <index>", "文章索引", "0").option("--credential-server <url>", "远程凭证服务地址").option("--user-id <userId>", "用户 ID(远程凭证)").option("--api-key <apiKey>", "API 密钥(远程凭证)").action(async (articleId, options) => {
|
|
1356
1406
|
const spinner = ora("正在删除已发布文章...").start();
|
|
1357
1407
|
try {
|
|
1408
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
1358
1409
|
await container.initialize();
|
|
1359
|
-
const publishService = await container.getPublishService();
|
|
1410
|
+
const publishService = await container.getPublishService(remoteAuth);
|
|
1360
1411
|
const index = parseInt(options.index);
|
|
1361
1412
|
await publishService.delete(articleId, index);
|
|
1362
1413
|
spinner.succeed("已发布文章删除成功");
|
|
@@ -1366,10 +1417,11 @@ function createPublishCommand() {
|
|
|
1366
1417
|
process.exit(1);
|
|
1367
1418
|
}
|
|
1368
1419
|
});
|
|
1369
|
-
cmd.command("status <publish-id>").description("查询发布状态").action(async (publishId) => {
|
|
1420
|
+
cmd.command("status <publish-id>").description("查询发布状态").option("--credential-server <url>", "远程凭证服务地址").option("--user-id <userId>", "用户 ID(远程凭证)").option("--api-key <apiKey>", "API 密钥(远程凭证)").action(async (publishId, options) => {
|
|
1370
1421
|
try {
|
|
1422
|
+
const remoteAuth = parseRemoteAuth(options);
|
|
1371
1423
|
await container.initialize();
|
|
1372
|
-
const publishService = await container.getPublishService();
|
|
1424
|
+
const publishService = await container.getPublishService(remoteAuth);
|
|
1373
1425
|
const status = await publishService.getStatus(publishId);
|
|
1374
1426
|
console.log(chalk.green("发布状态:"));
|
|
1375
1427
|
console.log(` Publish ID: ${status.publish_id}`);
|