update clearlazy tab
This commit is contained in:
parent
46a012b673
commit
c929b94ee1
|
|
@ -13,6 +13,7 @@ import browser from "./system/browser.js";
|
|||
import configs from "./system/config.js";
|
||||
import {
|
||||
delay,
|
||||
isPageAvailable,
|
||||
isTimeReached,
|
||||
safeClosePage,
|
||||
subtractSeconds,
|
||||
|
|
@ -273,8 +274,9 @@ const clearLazyTab = async () => {
|
|||
if (!item.page_context) continue;
|
||||
|
||||
try {
|
||||
if (!(await item.page_context.title())) {
|
||||
// await vì title() là async
|
||||
const avalableResult = await isPageAvailable(item.page_context);
|
||||
|
||||
if (!avalableResult) {
|
||||
await safeClosePage(item);
|
||||
}
|
||||
} catch (e) {
|
||||
|
|
@ -466,7 +468,7 @@ const trackingLoginStatus = async () => {
|
|||
socket.on("webUpdated", async (data) => {
|
||||
console.log("📢 Account was updated:", data);
|
||||
|
||||
const webBid = MANAGER_BIDS.find((item) => item.id === data.id);
|
||||
const webBid = MANAGER_BIDS.find((item) => item?.id === data?.id);
|
||||
|
||||
if (
|
||||
webBid &&
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ export async function safeClosePage(item) {
|
|||
try {
|
||||
const page = item.page_context;
|
||||
|
||||
if (!page?.isClosed() && page?.close) {
|
||||
if (page && !page.isClosed() && page.close) {
|
||||
await safeClosePageReal(page);
|
||||
}
|
||||
|
||||
|
|
@ -101,10 +101,17 @@ export async function safeClosePage(item) {
|
|||
}
|
||||
|
||||
if (item?.browser_context) {
|
||||
item.browser_context?.close();
|
||||
try {
|
||||
await item.browser_context.close();
|
||||
} catch (ctxErr) {
|
||||
console.warn(
|
||||
`⚠️ Failed to close browser context for item ${item.id}: ${ctxErr.message}`
|
||||
);
|
||||
}
|
||||
item.browser_context = undefined;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log("Can't close item: " + item.id);
|
||||
console.warn(`⚠️ Can't close item ${item?.id}: ${error.message}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -279,3 +286,20 @@ export function subtractSeconds(time, seconds) {
|
|||
date.setSeconds(date.getSeconds() - seconds);
|
||||
return date.toUTCString();
|
||||
}
|
||||
|
||||
export async function isPageAvailable(page) {
|
||||
if (!page || page.isClosed()) return false;
|
||||
|
||||
try {
|
||||
await Promise.race([
|
||||
page.title(), // hoặc page.url(), evaluate, vv
|
||||
new Promise((_, reject) =>
|
||||
setTimeout(() => reject(new Error("Timeout")), 1000)
|
||||
),
|
||||
]);
|
||||
return true;
|
||||
} catch (err) {
|
||||
console.warn(`⚠️ Page not available: ${err.message}`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue