From b56e79b5b288b7c9e2fef396b303afc32c9baf5d Mon Sep 17 00:00:00 2001 From: yyamashita Date: Sun, 10 May 2026 23:22:17 +0900 Subject: Fix multi-month scrape coverage and add duo MUSIC EXCHANGE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Extend 8 scrapers (liquid-room, shibuya-o, club-quattro, meets-otsuka, nishieifuku-jam, fever-shindaita, fad-yokohama, and new duo-music-exchange) to fetch 3 calendar months instead of 1-2, covering the full 65-day window - Add duo MUSIC EXCHANGE scraper (渋谷, ~700 cap, /schedule/YYYY/index_YYYY-MM.html) - Add npm test: Node.js built-in test runner verifies each scraper fetches all required month URLs via mocked fetch (10 tests, no extra deps) Co-Authored-By: Claude Sonnet 4.6 --- app/scrapers/fever-shindaita.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'app/scrapers/fever-shindaita.ts') diff --git a/app/scrapers/fever-shindaita.ts b/app/scrapers/fever-shindaita.ts index 62c2e2c..6356343 100644 --- a/app/scrapers/fever-shindaita.ts +++ b/app/scrapers/fever-shindaita.ts @@ -108,11 +108,11 @@ export const scraper: Scraper = { venue, async scrape(): Promise { const now = new Date(); - const thisMonth = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}`; - const next = new Date(now.getFullYear(), now.getMonth() + 1, 1); - const nextMonth = `${next.getFullYear()}-${String(next.getMonth() + 1).padStart(2, "0")}`; - - const [a, b] = await Promise.all([scrapeMonth(thisMonth), scrapeMonth(nextMonth)]); - return [...a, ...b]; + const months = [0, 1, 2].map((offset) => { + const d = new Date(now.getFullYear(), now.getMonth() + offset, 1); + return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}`; + }); + const results = await Promise.all(months.map(scrapeMonth)); + return results.flat(); }, }; -- cgit v1.2.3