<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tokyo-livehouse-events/app/scrapers/duo-music-exchange.ts, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/'/>
<entry>
<title>Fix multi-month scrape coverage and add duo MUSIC EXCHANGE</title>
<updated>2026-05-10T14:22:17+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@mosquit.one</email>
</author>
<published>2026-05-10T14:22:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/tokyo-livehouse-events/commit/?id=b56e79b5b288b7c9e2fef396b303afc32c9baf5d'/>
<id>b56e79b5b288b7c9e2fef396b303afc32c9baf5d</id>
<content type='text'>
- 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 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
