summaryrefslogtreecommitdiff
path: root/scripts
AgeCommit message (Collapse)AuthorLines
13 hoursRemove inline hook from server-setup.sh; hooks managed by hetzner-infrayyamashita-15/+3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
7 daysFix multi-month scrape coverage and add duo MUSIC EXCHANGEyyamashita-0/+265
- 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>
9 daysUpdate server-setup.sh: use /app/tokyo-livehouse-events work treeyyamashita-11/+5
10 daysRun scrape immediately on container start before handing off to cronyyamashita-0/+6
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
10 daysAdd Docker + Hetzner deploy setupyyamashita-0/+35
11 daysAsync scraping, scrape_logs, and CLIyyamashita-0/+67
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>