ServiceStatus
ソース実装:外部サービスの障害検知(issue #5)。
VRChat や YouTube の障害を VR の中で知るためのソースである。 VR プレイ中に「VRChat 側の障害なのか自環境の問題なのか」を切り分けるのが目的であり、 稼働状態が変わったときだけ通知を出す。
取得元は各サービスのステータスページではなく、VRCServiceStatusPanel の配信 JSON である。 あちらが 1 分ごとに各サービスを見て 4 段階のレベルへ判定済みで配っており、 本体側に Statuspage の読み方や合成監視の判定を持ち込まずに済む。 この JSON の形は VRCServiceStatusPanel の仕様書 4 章にある。
Constants
DEFAULT_ENABLED_SERVICES = ["vrchat", "youtube", "steam"] of ::String
既定で知らせるサービス。issue #5 のコメントで決めた 3 つである。
KNOWN_SERVICES = {"vrchat" => "VRChat", "youtube" => "YouTube", "steam" => "Steam", "booth" => "BOOTH", "discord" => "Discord", "cloudflare" => "Cloudflare", "twitch" => "Twitch"}
配信に含まれるサービス。設定画面に並べる順序と、設定ファイルの既定に使う。
配信側の並び(VRCServiceStatusPanel の main.cr)に合わせてある。 表示名は配信の name を使うが、画面は取得の前に組み立てるためここにも持つ。
PAGE_URL = "https://vrc-status.oxymoron.link/index.html"
取得元の VRCServiceStatusPanel。設定画面から開けるようにする。 今の状態を見るページと、配信の中身を説明したリポジトリである。
REPOSITORY_URL = "https://github.com/limit7412/VRCServiceStatusPanel"
SCHEMA_VERSION = 1
配信 JSON の読める版。これ以外は読まない。 版が上がるのは互換性のない変更のときであり、古い解釈で読み続けると誤った状態を知らせる。
SOURCE_ID = "service_status"