BWFNotify は、BWF の試合情報を定期取得し、指定した国の選手が出ているライブ試合を Discord に通知する Cloudflare Workers アプリです。
作者が通知サーバーを提供するものではありません。自分の Cloudflare アカウントにデプロイして使います。
English: README.en.md
- Cloudflare Workers Cron で定期実行する
- BWF の当日試合情報を取得する
TARGET_COUNTRY_CODESに一致する国の選手を含む試合を探す- ライブ中の対象試合を Discord Webhook に通知する
- Cloudflare KV に通知済み試合を保存し、同じ試合の重複通知を避ける
デフォルトでは JPN の選手を含むライブ試合を通知します。
Cloudflare Workers Cron
-> BWF match endpoints
-> target match filter
-> Cloudflare KV dedupe
-> Discord Webhook
- Cloudflare アカウント
- Discord Webhook URL
- Bun
mise を使う場合:
mise installこのリポジトリは GitHub Template Repository です。以下の手順で使い始められます:
-
このリポジトリから個人用プライベートリポを作成
- 「Use this template」ボタンをクリック
- プライベートリポジトリとして作成
-
セットアップガイドに従う
- .github/SETUP.md に詳細な初期セットアップ手順があります
- Discord Webhook と Cloudflare KV の設定手順が記載されています
➜ セットアップガイド (.github/SETUP.md) を参照してください
通常設定は wrangler.toml の [vars] で変更します。
| 変数 | 説明 | 例 |
|---|---|---|
TARGET_COUNTRY_CODES |
通知対象のBWF国コード。カンマ区切り。 | JPN / JPN,KOR |
MAX_DISCORD_MESSAGES_PER_RUN |
1回の実行で送る最大通知数。 | 20 |
NOTIFIED_TTL_SECONDS |
通知済み記録をKVに残す秒数。 | 2592000 |
BWF_MATCH_DATE |
対象日。未設定ならJSTの今日。 | 2026-05-31 |
BWF_MATCH_ORDER |
BWF day-matches API の order。 |
2 |
BWF_MATCH_COURT |
BWF day-matches API の court。 |
0 |
Secret は Cloudflare Secret またはローカルの .dev.vars に設定します。
| Secret | 説明 |
|---|---|
DISCORD_WEBHOOK_URL |
通知先のDiscord Webhook URL |
# 依存関係をインストール
bun install
# ローカルで起動
bun run dev:local| Path | 説明 |
|---|---|
/ |
デバッグリンク一覧 |
/run |
通知チェックを手動実行 |
/debug/bwf |
BWF live raw |
/debug/bwf/summary |
BWF live summary |
/debug/day-matches |
Day matches raw |
/debug/day-matches/summary |
抽出結果の要約 |
/debug/discord/match-test |
Discord通知テスト |
/run の例:
{
"ok": true,
"checked": 1,
"notified": 1
}BWFNotify は BWF の内部APIと思われるエンドポイントを利用しています。公開APIとして安定提供されていることは確認できていません。URLやレスポンス形式の変更で動かなくなる可能性があります。
/debug/discord/match-test は実際にDiscordへ通知します。
Issue / PR / fork 歓迎です。