소스 정보
- 저장소
- philipbo/openclaw-pansuan
- 최근 소스 활동
- 2026년 6월 10일 11:32
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 3
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/philipbo/openclaw-pansuan --skill match-scraper명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | match-scraper |
| description | 从球探体育(titan007)抓取竞彩足球赛程数据。在用户说「抓取赛程」「获取今日比赛」「今天有什么比赛」或赛前分析流程启动时使用。 |
| metadata | {"openclaw":{"emoji":"📆"}} |
通过仓库内 scripts/sporttery-sniper 脚本抓取当日竞彩足球全量赛程数据。
sporttery-sniper 位于当前仓库的 scripts/sporttery-sniper 目录。sporttery-sniper 使用 titan007 的 XML/文本数据源。如果是 Cron 定时触发(非用户手动询问),先检查当前时间是否在竞彩销售窗口内(时间边界以 AGENTS.md 六、可配置参数 为准:SCHEDULE_PUBLISH_TIME ~ SALES_CUTOFF_WEEKDAY / SALES_CUTOFF_WEEKEND):
如果当前时间不在销售窗口内 → 直接终止,不抓取数据,不执行后续流程。 向龙王发送一条简短通知:「当前不在竞彩销售时间内,跳过本次执行。」
用户手动询问(如"今天有什么比赛")不受此限制,任何时间都可以查询。
确认 scripts/sporttery-sniper/package.json 存在。若不存在,直接报告「scripts/sporttery-sniper 不存在,无法同步赛程」,结束流程,不写 memory。
销售日期使用当前自然日(YYYY-MM-DD)。手动查询非当天赛程时,将目标日期传给 --date。
cd scripts/sporttery-sniper
npm run schedule -- --date {YYYY-MM-DD} --format openclaw-json
脚本输出必须是 JSON,且 kind 必须为 openclaw.schedule。若脚本失败、JSON 无法解析、kind 不匹配,或 matches 字段缺失,直接报告失败原因,结束流程,不写 memory。
从 openclaw.schedule JSON 中读取:
| JSON 字段 | 写入 memory 字段 |
|---|---|
matches[].no | 编号 |
matches[].matchId | 比赛ID |
matches[].league | 联赛 |
matches[].leagueLevel | 联赛层级 |
matches[].kickoffTime | 开球 |
matches[].status | 状态 |
matches[].homeTeam | 主队 |
matches[].score | 比分 |
matches[].awayTeam | 客队 |
matches[].analysisUrl | 分析页 |
同时读取 summary.total/notStarted/inProgress/finished 作为汇总计数。若脚本输出中某些字段为空,用「无数据」或 - 标记,不要臆造。
按「结构化输出」和「写入每日记忆」章节格式生成赛程摘要,追加写入 memory/{今天日期}.md。
脚本输出中已按销售日过滤;若命令指定 --date,以该日期作为销售日。若 matches.length = 0,执行「当日无比赛」流程。
先输出日期汇总头,再按编号升序逐场列出:
⚽ **{星期X} {YYYY-MM-DD}** 共{N}场比赛
| 编号 | 对阵 | 开球 | 联赛 |
| ------- | ------------------ | ---------------- | ------ |
| {编号} | [{主队} VS {客队}](https://zq.titan007.com/analysis/{matchId}cn.htm) | {开球 YYYY-MM-DD HH:MM} | {联赛} |
| ... | ... | ... | ... |
同时保存结构化数据供后续 skill 使用(每场一条):
- 编号: {竞彩编号}
比赛ID: {matchId}
联赛: {联赛名称}
联赛层级: {高/中/低/排除}
开球: {YYYY-MM-DD HH:mm}
状态: {未开场/进行中/已完场}
主队: {主队名}
比分: {比分或 - }
客队: {客队名}
分析页: https://zq.titan007.com/analysis/{matchId}cn.htm
联赛层级预分类规则(供 match-screening 阶段1 直接使用):
比赛 ID 是后续深度分析的关键,用于直接拼接分析页 URL,无需再从列表页点击跳转。
首次运行检查:写入前确认 memory/ 目录存在。如果不存在,先创建该目录。
将赛程摘要追加写入 memory/{今天日期}.md(不覆盖已有赛程 section,同一天可保留多段)。
Section 标题:使用 ## 赛程抓取({执行时间 HH:MM}),例如 ## 赛程抓取(11:10)、## 赛程抓取(14:25)。每次赛程同步在文件末尾追加上述 section。初筛、分析编号、编排流程以当日 memory 中最后一个以 ## 赛程抓取 开头的 section 作为当前赛程列表。
格式:
## 赛程抓取(11:10)
⚽ {星期X} {YYYY-MM-DD} 共{N}场比赛
抓取时间:{当前时间}
- 未开场:{N} 场
- 进行中:{N} 场
- 已完场:{N} 场
### 赛程列表
{按编号升序的赛程数据}
如果需要查看非当天的赛程(如龙王说「看看昨天的比赛」,或复盘需要查历史赛程):
cd scripts/sporttery-sniper && npm run schedule -- --date {目标日期} --format openclaw-jsonopenclaw.schedule JSON 并按步骤 3~4 输出。scripts/sporttery-sniper 不存在,结束流程。kind 不匹配:记录原始错误,结束流程,不写 memory。## 推荐(内容为「今日无竞彩赛事,无推荐」,但必须包含 ### 精选场次/候补场次/串关组合 这些块,表可为空),确保 post-review 解析一致将完整的结构化赛程列表返回,供后续 match-screening 使用。