1
This commit is contained in:
@@ -87,9 +87,39 @@ async function getPublishBrowser(platform, accountId) {
|
||||
return browser;
|
||||
}
|
||||
|
||||
async function closeBlankPages(browser, keepPage) {
|
||||
try {
|
||||
const pages = await browser.pages();
|
||||
for (const p of pages) {
|
||||
if (keepPage && p === keepPage) continue;
|
||||
const u = p.url();
|
||||
if (!u || u === "about:blank") {
|
||||
try {
|
||||
await p.close();
|
||||
} catch {
|
||||
/* ignore */
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
/* ignore */
|
||||
}
|
||||
}
|
||||
|
||||
async function newPublishPage(platform, accountId, cookies) {
|
||||
const browser = await getPublishBrowser(platform, accountId);
|
||||
const page = await browser.newPage();
|
||||
const pages = await browser.pages();
|
||||
let page =
|
||||
pages.find((p) => {
|
||||
try {
|
||||
return p.url() === "about:blank";
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}) || null;
|
||||
if (!page) {
|
||||
page = await browser.newPage();
|
||||
}
|
||||
await page.setUserAgent(DEFAULT_USER_AGENT);
|
||||
await page.evaluateOnNewDocument(STEALTH_INIT_SCRIPT);
|
||||
page.setDefaultNavigationTimeout(60000);
|
||||
@@ -101,9 +131,22 @@ async function newPublishPage(platform, accountId, cookies) {
|
||||
console.warn("setCookie 失败:", e.message);
|
||||
}
|
||||
}
|
||||
await closeBlankPages(browser, page);
|
||||
return page;
|
||||
}
|
||||
|
||||
async function closePublishBrowser(platform, accountId) {
|
||||
const key = contextKey(platform, accountId);
|
||||
const browser = browsers.get(key);
|
||||
if (!browser) return;
|
||||
browsers.delete(key);
|
||||
try {
|
||||
await browser.close();
|
||||
} catch {
|
||||
/* ignore */
|
||||
}
|
||||
}
|
||||
|
||||
const LOGIN_URLS = {
|
||||
douyin: "https://creator.douyin.com/",
|
||||
kuaishou: "https://cp.kuaishou.com/",
|
||||
@@ -118,4 +161,5 @@ module.exports = {
|
||||
userDataDir,
|
||||
LOGIN_URLS,
|
||||
getChromiumExecutablePath,
|
||||
closePublishBrowser,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user