54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
"use strict";
|
|
|
|
const {
|
|
newPublishPage,
|
|
detachPublishBrowser,
|
|
closePublishBrowser,
|
|
} = require("./publish_browser.js");
|
|
const { publishToDouyin } = require("./publish_to_douyin.js");
|
|
|
|
const PLATFORM_LABELS = {
|
|
douyin: "抖音",
|
|
kuaishou: "快手",
|
|
shipin: "视频号",
|
|
xiaohongshu: "小红书",
|
|
};
|
|
|
|
async function publishToPlatform(platform, accountId, cookies, params) {
|
|
const label = PLATFORM_LABELS[platform] || platform;
|
|
if (platform === "douyin") {
|
|
const page = await newPublishPage(platform, accountId, cookies);
|
|
let result;
|
|
try {
|
|
result = await publishToDouyin(page, params);
|
|
return result;
|
|
} finally {
|
|
const keepOpen =
|
|
Boolean(params.keepPageOpen) ||
|
|
Boolean(result?.keepPageOpen) ||
|
|
result?.status === "manual_pending" ||
|
|
result?.status === "verification_required";
|
|
if (keepOpen) {
|
|
globalThis.__native?.emitProgress?.(
|
|
"浏览器已保留(独立进程),请在页面中检查并手动点击发布",
|
|
);
|
|
await detachPublishBrowser(platform, accountId);
|
|
} else {
|
|
try {
|
|
await page.close();
|
|
} catch {
|
|
/* ignore */
|
|
}
|
|
await closePublishBrowser(platform, accountId);
|
|
}
|
|
}
|
|
}
|
|
return {
|
|
success: false,
|
|
status: "failed",
|
|
message: `${label}自动发布即将支持,请先使用抖音`,
|
|
};
|
|
}
|
|
|
|
module.exports = { publishToPlatform, PLATFORM_LABELS };
|