From 0cd5fb770ca9bd3f304d9556a4b33a4ad4f45e7e Mon Sep 17 00:00:00 2001 From: yyamashita Date: Thu, 7 May 2026 10:16:43 +0900 Subject: Playwright scraping for FLAT/Pitbar; web UI display-only - 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 --- app/lib/scraper-runner.server.ts | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'app/lib/scraper-runner.server.ts') diff --git a/app/lib/scraper-runner.server.ts b/app/lib/scraper-runner.server.ts index 87dd16c..012ff95 100644 --- a/app/lib/scraper-runner.server.ts +++ b/app/lib/scraper-runner.server.ts @@ -7,6 +7,7 @@ import { type ScrapeLog, } from "./db.server"; import { generateVenueMarkdown, generateAllVenueMarkdown } from "./markdown-writer.server"; +import { closeBrowser } from "./playwright.server"; import { ALL_SCRAPERS } from "~/scrapers/index"; import type { EventInput } from "./db.server"; @@ -77,6 +78,8 @@ export async function runAllScrapers(run_id = randomUUID()): Promise