From 6b39bb093083512b7e01aa42b79acd458d8654a7 Mon Sep 17 00:00:00 2001 From: Rene Fichtmueller Date: Sat, 18 Apr 2026 05:41:56 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20skip=20Optcore=20on=20Erik=20=E2=80=94?= =?UTF-8?q?=20Cloudflare=20blocks=20datacenter=20IP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit optcore.net blocks Erik's IP (82.165.222.127) via Cloudflare WAF. WP REST API returns HTML block page instead of JSON → 0 product URLs → 0 scraped pages every run. Add SKIP_OPTCORE_SCRAPER guard matching the existing SKIP_FS_SCRAPER pattern. Set in ecosystem.config.js on Erik. Residential IP (Mac launchd) would be needed to use this scraper. --- packages/scraper/src/scheduler.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/scraper/src/scheduler.ts b/packages/scraper/src/scheduler.ts index 6deff9e..e4cb51a 100644 --- a/packages/scraper/src/scheduler.ts +++ b/packages/scraper/src/scheduler.ts @@ -366,6 +366,13 @@ export async function registerWorkers(boss: PgBoss): Promise { }); await boss.work("scrape:pricing:optcore", async () => { + // Optcore.net WP REST API is blocked by Cloudflare WAF for Erik's datacenter + // IP (82.165.222.127). Set SKIP_OPTCORE_SCRAPER=true to suppress the wasted + // run. A residential IP (Mac launchd) would be needed to scrape Optcore. + if (process.env["SKIP_OPTCORE_SCRAPER"] === "true") { + console.log(`[${new Date().toISOString()}] Optcore pricing: SKIPPED (SKIP_OPTCORE_SCRAPER=true)`); + return; + } console.log(`[${new Date().toISOString()}] Running: Optcore pricing`); const { scrapeOptcore } = await import("./scrapers/optcore"); await scrapeOptcore();