| Age | Commit message (Collapse) | Author | Lines |
|
+09:00 midnight をパースすると内部では前日15:00UTCになり、
getDay()がシステムタイムゾーン(UTC)で前日の曜日を返していた。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
新宿MARZ翌月スケジュールのHTTP 500がスクレイパー全体を失敗させ、
set -e によりentrypointがcron起動前に終了→再起動ループを引き起こしていた。
- marz-shinjuku: 404/500は未掲載扱いで空配列を返すよう変更
- scraper-entrypoint.sh: set -e を削除し初回スクレイプ失敗でもcronを起動
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Port 25 outbound unblocked: send-recap.ts now routes through the
mail container (Postfix + OpenDKIM) for direct MX delivery with
DKIM signing. Removes inline MX lookup logic added in the previous
workaround. Also adds Message-ID header (required by Gmail) and
updates default RECAP_TO to mazideyabai@gmail.com.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
isoDate() already adds JST_MS; calling it with nowJST() (which also
adds JST_MS) shifted the date +18h, showing tomorrow's date instead
of today's.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Sends an HTML digest of the next 7 days' events to
efemeraladdress+golive@gmail.com at 08:00 JST daily (23:00 UTC cron).
Adds scraper to the web Docker network so it can reach mail:25.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- 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 <noreply@anthropic.com>
|
|
|
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
|
|
Background scraping:
- POST /api/scrape returns 202 immediately with run_id; scraping runs async
- GET /api/scrape-status?run_id=xxx polls for results per venue
- scrape_logs table: per-venue status (running/ok/error), events_saved, error, timestamps
CLI (npm run scrape):
- npm run scrape — 全会場をスクレイプ、結果を色付きで出力
- npm run scrape liquid-room — 特定会場のみ
- npm run scrape -- --list — 登録済み会場一覧を表示
- エラー時は exit code 1 + エラーメッセージを dim 表示
Venues page:
- 最終スクレイプ日時・成否をインラインで表示
- 会場ごとの「更新」ボタンを追加
Bug fix: upsertEvent に description/optional fields のデフォルト値を設定し
better-sqlite3 の "Missing named parameter" エラーを解消
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|