ライブカード
カテゴリ: 公共情報。タグ: スコアボード、リーダーボードと順位、ニュースとお知らせ、イベントと会場。
レイアウト
この全画面カードはランドスケープまたはポートレートで画面全体を埋め、コーナー、チップ、ストリップとして配置されません。
レイアウト:フル。フォーム:ランドスケープ、ポートレート。
データとプライバシー
フィード:screenrig.election/v1。
フィードドキュメントは情報源の帰属を含みます。プレーヤーがカードにフィードを提供します。
プロパティ
テーマ、背景、アクセント、位置については共通プロパティを参照してください。
カードの作成時に、静的プロパティをカードのparamsに設定します。データドキュメントは動的プロパティのみを保持します。ネストされた行は親プロパティの内容を説明します。
静的プロパティ
| 名前 | タイプ | デフォルト | 値と制限 | 説明 |
|---|---|---|---|---|
title | string | "Results" | maxLength:40 | |
perPage | integer | 2 | 最小値:1;最大値:8 | ページ上のレース(グリッドレイアウト);追加のレースは次のページに表示されます。 |
pageSeconds | integer | 12 | 最小値:5;最大値:60 | 各ページまたはスポットライトのレースが画面に表示される時間。 |
maxCandidates | integer | 4 | 最小値:2;最大値:8 | レースにリストされた候補者;残りは1行のOthersにまとめられます。 |
showVotes | boolean | true | 投票数をシェアの横に表示します。 | |
showParty | boolean | true | 各候補者の政党をテキストで表示します。 | |
staleMinutes | integer | 30 | 最小値:1;最大値:1440 | |
hour12 | boolean | false | ||
backgroundColor | 文字列、null | null | パターン:"^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$" | カードの背景とプレートをフラットなCSS順序の色で上書きします。#RRGGBBAAは不透明度を指定します。background noneが優先されます。 |
textColor | 文字列、null | null | パターン:"^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$" | メインとセカンダリのテキスト色を上書きします。アクセントと意味的な状態色はそのまま維持されます。 |
動的プロパティ
| 名前 | タイプ | デフォルト | 値と制限 | 説明 |
|---|---|---|---|---|
electionName | string | "" | maxLength:80 | 選挙です。例えば、フィードにない場合のGeneral Election 2026。 |
races | array | [] | minItems:0;maxItems:40 | レース。フィード(screenrig.election/v1)があればそれが勝ち。なければデータストアが同じ行を提供。 |
races[].id | string | maxLength:40 | ||
races[].title | string | minLength:1;maxLength:80;必須 | 例えば市長の選挙です。 | |
races[].jurisdiction | string | maxLength:60 | 例:フェアビュー市。 | |
races[].reportingPct | number | 最小値:0;最大値:100 | 報告された選挙区の割合。 | |
races[].precincts | object | additionalProperties:false | ||
races[].precincts.reporting | number | 最小値:0 | ||
races[].precincts.total | number | 最小値:0 | ||
races[].status | string | "open", "called", "recount", "runoff", "unopposed" | レースが確定したときに呼び出されます。勝者がtrueの候補者も呼び出します。 | |
races[].calledAt | string | maxLength:32 | レースが開始されたとき、ISO 8601。 | |
races[].featured | boolean | このレースでコーナーとチップをリードします。 | ||
races[].candidates | array | minItems:0;maxItems:40;必須 | ||
races[].candidates[].name | string | maxLength:60;必須 | ||
races[].candidates[].party | string | maxLength:24 | テキストとして表示されます。色は付けられません。 | |
races[].candidates[].votes | number | 最小値:0 | ||
races[].candidates[].pct | number | 最小値:0;最大値:100 | 投票率。欠落時は投票から算出されます。 | |
races[].candidates[].winner | boolean | |||
races[].candidates[].incumbent | boolean | |||
updated | string | "" | maxLength:32 | 結果が最後に更新されたとき、ISO 8601(データストアのみ;フィードはfetchedAtを含む)。 |
キャンバス例
静的プロパティを params.json として保存し、カードを作成します。結果にはその crd_ ID が含まれます。
{
"theme": "neomustard"
}
screenrig card create --type election-results --major 1 --file params.json
このアイテムをプレイリストページのprimitivesに追加し、サンプルの ID をその ID に置き換えます。プレイリストを公開してスクリーンに割り当ててください。
{
"id": "election-results",
"primitive": "card",
"card": "crd_01EXAMPLECARD000000000",
"layout": "full",
"content_fit": "fill"
}
ライブデータを書き込む
カードを作成した後にドキュメントを書き込み、画面を再公開せずに更新するには置き換えます。カードは書き込みのたびに動的プロパティと照合し、受け付けないドキュメントは拒否します。プレイリストと同じプロジェクトを使用してください。
ドキュメントを card-data.json として保存します。CLIはラッパーなしでドキュメント自体を読み取ります。
{
"electionName": "",
"races": [],
"updated": ""
}
screenrig card data put crd_01EXAMPLECARD000000000 --file card-data.json
またはAPIを直接呼び出します。APIは同じドキュメントをdocumentフィールドにラップします。エージェントトークンはすでにプロジェクト名を含むため、プロジェクトヘッダーは送信しません。ScreenRig-Projectを送信する場合はトークンのプロジェクトと一致する必要があります。API認証は環境変数で提供してください。詳細はAPI認証を参照。
curl --request PUT "https://api.screenrig.ai/api/cards/crd_01EXAMPLECARD000000000/data" \
--header "Authorization: Bearer $SCREENRIG_TOKEN" \
--header "Content-Type: application/json" \
--data '{"document":{"electionName":"","races":[],"updated":""}}'