D
This commit is contained in:
@@ -143,31 +143,39 @@ export class XBrowserService implements OnModuleInit, OnModuleDestroy {
|
|||||||
|
|
||||||
async verifyCookie() {
|
async verifyCookie() {
|
||||||
const page = await this.newPage();
|
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)'}`);
|
try {
|
||||||
await page.close();
|
await page.goto('https://x.com/', {
|
||||||
return isLoggedIn;
|
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(
|
async postTweet(
|
||||||
|
|||||||
Reference in New Issue
Block a user