提供的计分靶纸显示分部排名、X 计数、百分比和特色卡的命中位置。排名占据屏幕高度:少数卡片较大,多个分部分页跟随特色卡,所有分部保留顶部行。超过 25 个公牛的靶纸在一个网格上绘制所有公牛,Primetime 分页显示最多 25 个公牛的瓷砖,保留所有命中、得分和行总计。Primetime 中标题和排名动画,正常得分为青色,括号标记新卡,克制彩带庆祝完成的满分靶纸。减少动画时显示稳定静态画面。
直播卡片
类别:体育。标签:记分板,排行榜和排名,个人运动。
布局
此全屏卡在横屏或竖屏时填满整个屏幕,不作为角落、芯片或条带放置。
布局:全屏。表单:横向,纵向。
数据与隐私
此卡使用其配置的属性和实时卡数据。
属性
有关主题、背景、强调色和位置,请参见通用属性。
创建卡片时,在卡片的params中设置静态属性。其数据文档仅包含动态属性。嵌套行描述其父属性的内容。
静态属性
| 名称 | 类型 | 默认 | 数值和限制 | 描述 |
|---|---|---|---|---|
title | string | "Match standings" | maxLength:60 | 比赛名称上方的标签;当数据无比赛名称时即为标题。 |
subtitle | string | "" | maxLength:120 | 标题下方一行,位于比赛日期和射手数量之前。 |
target | object | additionalProperties:false | 每张卡片投射的目标表。 | |
target.bulls | integer | 25 | 最小值:1;最大值:100 | 在一张表上记录公牛。 |
target.rows | integer | 5 | 最小值:1;最大值:20 | 公牛所在的行,从左到右、从上到下阅读。 |
target.rings | array | [10,9,8,7,6,5] | minItems:1;maxItems:12 | 从内环向外环评分。第一个是公牛的最高分。 |
target.xRing | boolean | true | 内环内的 X 环;X 计数用于打破平局。 | |
target.radii | array | [] | maxItems:12 | 环形半径从内环向外,每个环对应一个值,单位不限(卡片将外环缩放为1)。空值时环均匀分布。 |
target.xRadius | number | 0 | 最小值:0 | X 环的半径,以半径单位表示,或当半径为空时为外环的分数。0 是内环的一半。 |
target.black | integer | 4 | 最小值:0;最大值:12 | 从内环向外,瞄准黑色覆盖的环数。 |
target.shotSize | number | 0.22 | 最小值:0;最大值:1 | 射孔直径与外部计分环半径的比例。 |
showPercent | boolean | true | 显示每张卡片的得分,占该表最大值的百分比。 | |
ranking | string | "best" | "best", "every" | 最佳:每个分组每个射手排名一次,取其最佳成绩;全部:每张成绩单均排名。 |
rotateSeconds | integer | 12 | 最小值:0;最大值:600 | 每个排名卡片在墙钟轮换中显示的秒数。0 保持最新卡片。 |
freshMinutes | integer | 3 | 最小值:0;最大值:60 | 最近提交的卡片为新鲜:优先于轮换显示并标记为“刚到”。0关闭此功能。 |
backgroundColor | 字符串,空值 | null | 模式:"^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$" | 用纯色 CSS 顺序覆盖卡片背景和底板。#RRGGBBAA 提供透明度。背景无则优先。 |
textColor | 字符串,空值 | null | 模式:"^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$" | 覆盖主文本和次要文本颜色。强调色和语义状态色保持原有功能。 |
动态属性
| 名称 | 类型 | 默认 | 数值和限制 | 描述 |
|---|---|---|---|---|
match | object | additionalProperties:false | 比赛。 | |
match.name | string | "" | maxLength:60 | |
match.date | string | "" | maxLength:10 | YYYY-MM-DD。 |
divisions | array | [] | maxItems:8 | 按显示顺序划分。条目命名但列表中缺少的划分会添加在它们之后。 |
divisions[].id | string | minLength:1;maxLength:40;必填 | ||
divisions[].name | string | maxLength:40;必填 | ||
entries | array | [] | maxItems:200 | 每张照片一张评分卡。分数具有权威性:卡片汇总并排名分数,并在每个击中点绘制,但从不重新评分击中。 |
entries[].id | string | minLength:1;maxLength:60;必填 | 稳定且唯一:智能体在更正卡片时重写相同的 ID。 | |
entries[].shooter | string | minLength:1;maxLength:40;必填 | 射手显示名;忽略大小写同名卡片视为同一射手。 | |
entries[].division | string | maxLength:40 | 一个 divisions[].id。 | |
entries[].label | string | maxLength:80 | 卡片内容示例:25米 · 第2张表。 | |
entries[].submittedAt | string | maxLength:40 | 卡片被评分的 ISO 8601 时间点。用于驱动新鲜度和打破平局(先到先得)。 | |
entries[].bulls | array | maxItems:100;必填 | 每条记录一个牛,按表格顺序从左到右。超过target.bulls的牛被忽略;缺失视为未评分。 | |
entries[].bulls[].score | 数字,空值 | 最小值:0;最大值:100;必填 | 牛的得分;null 表示尚未评分。 | |
entries[].bulls[].x | boolean | 射击落在 X 环(得分为内环值)。 | ||
entries[].bulls[].hits | array | maxItems:10 | 射击中心以公牛外环半径为单位:0,0为中心,+x向右,+y向上。 | |
entries[].bulls[].hits[].dx | number | 最小值:-2;最大值:2;必填 | ||
entries[].bulls[].hits[].dy | number | 最小值:-2;最大值:2;必填 | ||
entries[].photo | string | maxLength:512 | 卡片照片的主机解析媒体 URL。 | |
featured | string | "" | maxLength:60 | 保持特色的条目 ID。空则显示新卡片,否则轮换。 |
画布示例
将静态属性保存为 params.json 并创建卡片。结果中包含它的 crd_ ID。
{
"theme": "neomustard"
}
screenrig card create --type shooting-match --major 1 --file params.json
将此项目添加到播放列表页面的primitives中,并用该 ID 替换示例中的 ID。发布播放列表并分配屏幕。
{
"id": "shooting-match",
"primitive": "card",
"card": "crd_01EXAMPLECARD000000000",
"layout": "full",
"content_fit": "fill"
}
写入实时数据
创建卡片后向其写入文档,之后替换该文档即可更新屏幕,无需重新发布。卡片会按其动态属性检查每次写入,并拒绝它不接受的文档。请使用与播放列表相同的项目。
将文档保存为card-data.json。CLI直接读取文档,无需包装:
{
"match": {},
"divisions": [],
"entries": [],
"featured": ""
}
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":{"match":{},"divisions":[],"entries":[],"featured":""}}'