@skills-store/rednote 0.1.1 → 0.1.3
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/rednote/login.js +13 -18
- package/dist/rednote/publish.js +18 -6
- package/package.json +1 -1
package/dist/rednote/login.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { parseArgs } from 'node:util';
|
|
3
3
|
import { printJson, runCli } from '../utils/browser-cli.js';
|
|
4
4
|
import { resolveStatusTarget } from './status.js';
|
|
5
|
-
import { createRednoteSession, disconnectRednoteSession } from './checkLogin.js';
|
|
5
|
+
import { checkRednoteLogin, createRednoteSession, disconnectRednoteSession } from './checkLogin.js';
|
|
6
6
|
function printLoginHelp() {
|
|
7
7
|
process.stdout.write(`rednote login
|
|
8
8
|
|
|
@@ -28,21 +28,24 @@ async function getOrCreateXiaohongshuPage(session) {
|
|
|
28
28
|
};
|
|
29
29
|
}
|
|
30
30
|
export async function openRednoteLogin(target, session) {
|
|
31
|
+
const rednoteStatus = await checkRednoteLogin(target, session);
|
|
32
|
+
if (!rednoteStatus.needLogin) {
|
|
33
|
+
return {
|
|
34
|
+
ok: true,
|
|
35
|
+
rednote: {
|
|
36
|
+
loginClicked: false,
|
|
37
|
+
pageUrl: session.page.url(),
|
|
38
|
+
waitingForPhoneLogin: false,
|
|
39
|
+
message: '当前实例已登录,无需重复执行登录操作。'
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
}
|
|
31
43
|
const { page } = await getOrCreateXiaohongshuPage(session);
|
|
32
|
-
await page.waitForTimeout(2_000);
|
|
33
44
|
const loginButton = page.locator('#login-btn');
|
|
34
45
|
const hasLoginButton = await loginButton.count() > 0;
|
|
35
46
|
if (!hasLoginButton) {
|
|
36
47
|
return {
|
|
37
48
|
ok: true,
|
|
38
|
-
instance: {
|
|
39
|
-
scope: target.scope,
|
|
40
|
-
name: target.instanceName,
|
|
41
|
-
browser: target.browser,
|
|
42
|
-
userDataDir: target.userDataDir,
|
|
43
|
-
source: target.source,
|
|
44
|
-
lastConnect: target.lastConnect
|
|
45
|
-
},
|
|
46
49
|
rednote: {
|
|
47
50
|
loginClicked: false,
|
|
48
51
|
pageUrl: page.url(),
|
|
@@ -55,14 +58,6 @@ export async function openRednoteLogin(target, session) {
|
|
|
55
58
|
await page.waitForTimeout(500);
|
|
56
59
|
return {
|
|
57
60
|
ok: true,
|
|
58
|
-
instance: {
|
|
59
|
-
scope: target.scope,
|
|
60
|
-
name: target.instanceName,
|
|
61
|
-
browser: target.browser,
|
|
62
|
-
userDataDir: target.userDataDir,
|
|
63
|
-
source: target.source,
|
|
64
|
-
lastConnect: target.lastConnect
|
|
65
|
-
},
|
|
66
61
|
rednote: {
|
|
67
62
|
loginClicked: true,
|
|
68
63
|
pageUrl: page.url(),
|
package/dist/rednote/publish.js
CHANGED
|
@@ -21,7 +21,7 @@ Usage:
|
|
|
21
21
|
|
|
22
22
|
Options:
|
|
23
23
|
--instance NAME Optional. Defaults to the saved lastConnect instance
|
|
24
|
-
--type TYPE
|
|
24
|
+
--type TYPE 可选。video | image | article;不传时会按参数自动推断
|
|
25
25
|
--title TEXT Required. 发布标题
|
|
26
26
|
--content TEXT 必填。视频/图文时为描述,长文时为 Markdown 内容
|
|
27
27
|
--tag TEXT 可选。重复传入多个标签,例如 --tag 穿搭 --tag OOTD
|
|
@@ -117,11 +117,23 @@ export function parsePublishCliArgs(argv) {
|
|
|
117
117
|
help: values.help
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
120
|
+
function hasPublishInputs(values) {
|
|
121
|
+
return Boolean(values.type || values.title?.trim() || values.content?.trim() || values.videoPath?.trim() || values.imagePaths.length > 0 || values.tags.length > 0 || values.publishNow);
|
|
122
|
+
}
|
|
123
|
+
function resolvePublishType(values) {
|
|
124
|
+
if (values.type) {
|
|
125
|
+
return values.type;
|
|
126
|
+
}
|
|
127
|
+
if (values.videoPath?.trim()) {
|
|
128
|
+
return 'video';
|
|
129
|
+
}
|
|
130
|
+
if (values.imagePaths.length > 0) {
|
|
131
|
+
return 'image';
|
|
124
132
|
}
|
|
133
|
+
return 'article';
|
|
134
|
+
}
|
|
135
|
+
export function resolvePublishPayload(values) {
|
|
136
|
+
const type = resolvePublishType(values);
|
|
125
137
|
const title = ensureNonEmpty(values.title, '--title');
|
|
126
138
|
const tags = normalizeTags(values.tags);
|
|
127
139
|
const draft = !values.publishNow;
|
|
@@ -338,7 +350,7 @@ export async function openRednotePublish(target, session, payload) {
|
|
|
338
350
|
});
|
|
339
351
|
}
|
|
340
352
|
export async function runPublishCommand(values) {
|
|
341
|
-
if (values.help) {
|
|
353
|
+
if (values.help || !hasPublishInputs(values)) {
|
|
342
354
|
printPublishHelp();
|
|
343
355
|
return;
|
|
344
356
|
}
|