From e581adb10f18785e07585abed9f3429411752252 Mon Sep 17 00:00:00 2001 From: Angie Jones Date: Thu, 23 Apr 2026 19:32:14 -0500 Subject: [PATCH] Fix session list missing default-loaded session --- lib/scraper/session.js | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/lib/scraper/session.js b/lib/scraper/session.js index cf249a0..f7fefc7 100644 --- a/lib/scraper/session.js +++ b/lib/scraper/session.js @@ -114,7 +114,39 @@ async function extractSessionDetails(page) { async function getSessionList(page) { const strategy = selectors.sessionListStrategies[0]; - return await page.evaluate(strategy.fn); + const initialSessions = await page.evaluate(strategy.fn); + + const sessionsById = new Map(); + initialSessions.forEach(session => { + if (session?.sessionId) { + sessionsById.set(session.sessionId, session); + } + }); + + if (initialSessions.length > 0) { + const clicked = await page.evaluate((href) => { + const link = Array.from(document.querySelectorAll('a[href*="sessionId="]')) + .find(el => el.href === href); + + if (!link) return false; + + link.click(); + return true; + }, initialSessions[0].href); + + if (clicked) { + await waitForStable(page); + + const subsequentSessions = await page.evaluate(strategy.fn); + subsequentSessions.forEach(session => { + if (session?.sessionId && !sessionsById.has(session.sessionId)) { + sessionsById.set(session.sessionId, session); + } + }); + } + } + + return Array.from(sessionsById.values()); } async function setRatings(page, ratings) {