From 62a01a118b3326a95d7b60be99a9071758d2422b Mon Sep 17 00:00:00 2001 From: NAME Date: Tue, 12 May 2026 09:14:12 +0000 Subject: [PATCH] D --- src/x-poster/x-browser.service.ts | 56 ++++++++++++++++++------------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/src/x-poster/x-browser.service.ts b/src/x-poster/x-browser.service.ts index 3d3d593..4f4e1cb 100644 --- a/src/x-poster/x-browser.service.ts +++ b/src/x-poster/x-browser.service.ts @@ -143,31 +143,39 @@ export class XBrowserService implements OnModuleInit, OnModuleDestroy { async verifyCookie() { const page = await this.newPage(); - await page.goto('https://x.com/', { - waitUntil: 'domcontentloaded', - timeout: 30_000, - }); - await page.waitForTimeout(2000 + (Math.random() + Math.random()) * 3000); - await page.mouse.wheel(0, rand(300, 500)); - // Detect login/challenge screen - if (page.url().includes('/login') || page.url().includes('/flow')) { - this.logger.error('Cookies is die, please get news'); - return false; - // return { - // success: false, - // error: 'Redirected to login', - // needsRelogin: true, - // }; - } - const isLoggedIn = await page - .locator('[data-testid="SideNav_AccountSwitcher_Button"], [data-testid="AppTabBar_Home_Link"]') - .first() - .isVisible() - .catch(() => false); - this.logger.log(`🔐 Session restore: ${isLoggedIn ? 'LOGGED IN' : 'GUEST (cookie có thể expired)'}`); - await page.close(); - return isLoggedIn; + try { + await page.goto('https://x.com/', { + waitUntil: 'domcontentloaded', + timeout: 30_000, + }); + await page.waitForTimeout(2000 + (Math.random() + Math.random()) * 3000); + await page.mouse.wheel(0, rand(300, 500)); + // Detect login/challenge screen + if (page.url().includes('/login') || page.url().includes('/flow')) { + this.logger.error('Cookies is die, please get news'); + return false; + // return { + // success: false, + // error: 'Redirected to login', + // needsRelogin: true, + // }; + } + const isLoggedIn = await page + .locator('[data-testid="SideNav_AccountSwitcher_Button"], [data-testid="AppTabBar_Home_Link"]') + .first() + .isVisible() + .catch(() => false); + + this.logger.log(`🔐 Session restore: ${isLoggedIn ? 'LOGGED IN' : 'GUEST (cookie có thể expired)'}`); + // await page.close(); + return isLoggedIn; + } catch (er) { + this.logger.error(`Browser verify cookie fail: ${er.message}`); + return false; + } finally { + await page?.close().catch(() => null); + } } async postTweet(