summaryrefslogtreecommitdiff
path: root/app/scrapers/flat-nishiogikubo.ts
diff options
context:
space:
mode:
Diffstat (limited to 'app/scrapers/flat-nishiogikubo.ts')
-rw-r--r--app/scrapers/flat-nishiogikubo.ts33
1 files changed, 33 insertions, 0 deletions
diff --git a/app/scrapers/flat-nishiogikubo.ts b/app/scrapers/flat-nishiogikubo.ts
new file mode 100644
index 0000000..03cc70c
--- /dev/null
+++ b/app/scrapers/flat-nishiogikubo.ts
@@ -0,0 +1,33 @@
+/**
+ * FLAT 西荻窪 — https://www.flat.rinky.info/schedule
+ *
+ * ⚠️ Wix サイトのためクライアントサイド JS レンダリング。
+ * 静的 fetch ではイベントデータを取得できない。
+ *
+ * 代替案:
+ * - Playwright/Puppeteer でヘッドレスブラウザを使用
+ * - Wix Events API (要サイトオーナーによる API キー発行)
+ *
+ * 現在は空配列を返す(エラーにはしない)。
+ */
+import type { Scraper, VenueMeta } from "./base";
+import type { EventInput } from "~/lib/db.server";
+
+export const venue: VenueMeta = {
+ id: "flat-nishiogikubo",
+ name: "FLAT 西荻窪",
+ url: "https://www.flat.rinky.info",
+ area: "西荻窪",
+};
+
+export const scraper: Scraper = {
+ venue,
+ async scrape(): Promise<EventInput[]> {
+ // Wix renders events with JavaScript; static fetch returns an empty calendar.
+ // TODO: Replace with a headless browser implementation (e.g. Playwright).
+ throw new Error(
+ "FLAT 西荻窪 は Wix サイトのため JS レンダリングが必要です。" +
+ "ヘッドレスブラウザ(Playwright 等)への移行が必要です。"
+ );
+ },
+};