diff --git a/src/dashboard/server.ts b/src/dashboard/server.ts index 2a56fbc..0ad8ad9 100644 --- a/src/dashboard/server.ts +++ b/src/dashboard/server.ts @@ -21,7 +21,7 @@ export class DashboardServer { private server: ReturnType private wss: WebSocketServer private clients: Set = new Set() - private heartbeatInterval?: NodeJS.Timer + private heartbeatInterval?: NodeJS.Timeout private dashboardLimiter = rateLimit({ windowMs: 15 * 60 * 1000, // 15 minutes max: 100, // limit each IP to 100 requests per windowMs for dashboard UI diff --git a/src/functions/Login.ts b/src/functions/Login.ts index 4e2a186..e19fb92 100644 --- a/src/functions/Login.ts +++ b/src/functions/Login.ts @@ -964,6 +964,17 @@ export class Login { } } + private async clickFirstVisibleSelector(page: Page, selectors: readonly string[]): Promise { + for (const sel of selectors) { + const loc = page.locator(sel).first() + if (await loc.isVisible().catch(() => false)) { + await loc.click().catch(logError('LOGIN', `Click failed for selector: ${sel}`, this.bot.isMobile)) + return true + } + } + return false + } + private async switchToPasswordLink(page: Page) { try { const passwordClicked = await this.tryClickPasswordOption(page) diff --git a/src/util/network/QueryDiversityEngine.ts b/src/util/network/QueryDiversityEngine.ts index db99bb0..a898bcc 100644 --- a/src/util/network/QueryDiversityEngine.ts +++ b/src/util/network/QueryDiversityEngine.ts @@ -22,7 +22,7 @@ export class QueryDiversityEngine { private logger?: (source: string, message: string, level?: 'info' | 'warn' | 'error') => void private httpClient: HttpClient - constructor(config?: Partial, logger?: (source: string, message: string, level?: 'info' | 'warn' | 'error'), httpClient?: HttpClient) { + constructor(config?: Partial, logger?: (source: string, message: string, level?: 'info' | 'warn' | 'error') => void, httpClient?: HttpClient) { const maxQueriesPerSource = Math.max(1, Math.min(config?.maxQueriesPerSource || 10, 50)) const cacheMinutes = Math.max(1, Math.min(config?.cacheMinutes || 30, 1440))