Merge pull request 'update clearlazy tab' (#26) from zelda.by-pass-langtons-prev-code into main
Reviewed-on: #26
This commit is contained in:
commit
384f6d8b99
|
|
@ -13,6 +13,7 @@ import browser from "./system/browser.js";
|
||||||
import configs from "./system/config.js";
|
import configs from "./system/config.js";
|
||||||
import {
|
import {
|
||||||
delay,
|
delay,
|
||||||
|
isPageAvailable,
|
||||||
isTimeReached,
|
isTimeReached,
|
||||||
safeClosePage,
|
safeClosePage,
|
||||||
subtractSeconds,
|
subtractSeconds,
|
||||||
|
|
@ -273,8 +274,9 @@ const clearLazyTab = async () => {
|
||||||
if (!item.page_context) continue;
|
if (!item.page_context) continue;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (!(await item.page_context.title())) {
|
const avalableResult = await isPageAvailable(item.page_context);
|
||||||
// await vì title() là async
|
|
||||||
|
if (!avalableResult) {
|
||||||
await safeClosePage(item);
|
await safeClosePage(item);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
@ -466,7 +468,7 @@ const trackingLoginStatus = async () => {
|
||||||
socket.on("webUpdated", async (data) => {
|
socket.on("webUpdated", async (data) => {
|
||||||
console.log("📢 Account was updated:", 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 (
|
if (
|
||||||
webBid &&
|
webBid &&
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@ export async function safeClosePage(item) {
|
||||||
try {
|
try {
|
||||||
const page = item.page_context;
|
const page = item.page_context;
|
||||||
|
|
||||||
if (!page?.isClosed() && page?.close) {
|
if (page && !page.isClosed() && page.close) {
|
||||||
await safeClosePageReal(page);
|
await safeClosePageReal(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -101,10 +101,17 @@ export async function safeClosePage(item) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item?.browser_context) {
|
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) {
|
} 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);
|
date.setSeconds(date.getSeconds() - seconds);
|
||||||
return date.toUTCString();
|
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