summaryrefslogtreecommitdiff
path: root/app/routes
AgeCommit message (Collapse)AuthorLines
3 daysRemove unused template files home.tsx and welcome.tsxyyamashita-13/+0
Routes not registered in routes.ts caused a persistent tsc error on the auto-generated +types/home module. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
7 daysAdd calendar export (Google/ICS) and extend scrape window to 65 daysyyamashita-0/+199
- Event detail page: add Google Calendar link and .ics download button - New route GET /api/events/:id/calendar.ics returns RFC 5545 iCalendar - Scrape window extended from 35 → 65 days (~2 months ahead) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
10 daysFix all TODO bugs and implement feature additionsyyamashita-10/+34
- SCRAPE_TARGETS.md: add 5 missing venues (nine-spices, nishieifuku-jam, fever-shindaita, moon-step-nakano, mod-shibasaki) - Navigation: add 日付別 link to venues.tsx and events.$id.tsx headers - venues.tsx: add official site external links per venue card - ScrapeButton: new component with useFetcher-based trigger + 2s polling progress UI showing per-venue status and event count - venues.tsx / events._index.tsx: wire in ScrapeButton - FilterBar + db.server.ts: add area filter derived from venues, threaded through queryEvents Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
10 daysAdd capacity filter for live houses (~100 / 100~300 / 300~)yyamashita-2/+3
- Add capacity field to VenueMeta and all 17 scrapers (researched values) - Add capacity column to venues table with auto-migration for existing DBs - Add capacity_range filter to queryEvents (small/medium/large) - Add capacity selector to FilterBar UI Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
10 daysFix mobile layout for iPhone-sized viewportsyyamashita-16/+16
- Stack header vertically on mobile (flex-col sm:flex-row) to prevent logo+nav overflow - Hide venue and price columns in list/row views on mobile to give title room - Shrink date/time columns on mobile (w-24 sm:w-32, w-20 sm:w-28) - Make keyword filter input full-width on mobile (w-full sm:w-52) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11 daysAdd date-based event view grouped by venueyyamashita-0/+192
New route /events/by-date shows events for a single day (default today) with prev/next day navigation and a date picker, grouped by livehouse. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11 daysAdd list view toggle to event listingyyamashita-2/+33
Adds EventListRow component and a card/list toggle (persisted in ?view= URL param) so users can switch between the grid card layout and a compact single-row list layout. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11 daysPlaywright scraping for FLAT/Pitbar; web UI display-onlyyyamashita-44/+11
- Install Playwright + Chromium; add shared browser singleton (playwright.server.ts) - Rewrite flat-nishiogikubo scraper: Wix calendar via headless browser, month navigation via date picker, extracts .WPczEB/.ExCBIq selectors - Rewrite pitbar-nishiogikubo scraper: freecalend.com via headless browser, parses cal-{member}-{year}-{month}-{day} cell IDs - scraper-runner: close shared browser after each run with closeBrowser() - Remove all scrape trigger buttons from web UI (events index, venues page); remove /api/scrape and /api/scrape-status from routes.ts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11 daysAsync scraping, scrape_logs, and CLIyyamashita-48/+117
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>
11 daysLimit scrape window and default event list to ~1 monthyyamashita-5/+17
Scraper runner now filters events to today + 35 days before upserting, so the DB only holds the upcoming month of events. Event list loader defaults date_from/date_to to the same window when no query params are set, and passes the values down to FilterBar so the date inputs are pre-filled on first load. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11 daysAdd Tokyo livehouse event aggregator serviceyyamashita-0/+328
Full-stack React Router v7 app that scrapes event listings from major Tokyo live venues (Liquid Room, WWW/WWW X, Shibuya O-EAST, Shinjuku LOFT, Club Quattro) and stores them in SQLite for browsing and search. - Modular scraper architecture: add a new venue by dropping a file in app/scrapers/ and registering it in index.ts - Routes: /events (filter by keyword/venue/date), /events/:id, /venues, GET /api/scrape - EventCard shows artist, date/time, venue, ticket URL, and fee - Post-scrape per-venue Markdown files generated to events/ (dev reference) - /add-livehouse Claude Code skill defined in .claude/commands/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11 daysInitial commit from create-react-routeryyamashita-0/+13