diff options
Diffstat (limited to 'app/scrapers/fad-yokohama.ts')
| -rw-r--r-- | app/scrapers/fad-yokohama.ts | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/app/scrapers/fad-yokohama.ts b/app/scrapers/fad-yokohama.ts index a01ea0d..f8f7cbc 100644 --- a/app/scrapers/fad-yokohama.ts +++ b/app/scrapers/fad-yokohama.ts @@ -151,27 +151,18 @@ function parsePageEvents( export const scraper: Scraper = { venue, async scrape(): Promise<EventInput[]> { - const res = await fetch(SCHEDULE_URL); - if (!res.ok) throw new Error(`HTTP ${res.status}`); - const html = await res.text(); - - const { year, month, nextUrl } = getMonthContext(html); - const events = parsePageEvents(html, year, month, SCHEDULE_URL); - - if (nextUrl) { - const nextRes = await fetch(nextUrl); - if (nextRes.ok) { - const nextHtml = await nextRes.text(); - let nextMonth = month + 1; - let nextYear = year; - if (nextMonth > 12) { - nextMonth = 1; - nextYear++; - } - events.push(...parsePageEvents(nextHtml, nextYear, nextMonth, nextUrl)); - } + const allEvents: EventInput[] = []; + let url: string | null = SCHEDULE_URL; + + for (let page = 0; page < 3 && url; page++) { + const res = await fetch(url); + if (!res.ok) break; + const html = await res.text(); + const { year, month, nextUrl } = getMonthContext(html); + allEvents.push(...parsePageEvents(html, year, month, url)); + url = nextUrl; } - return events; + return allEvents; }, }; |
