360 Secure SkillHub
360 安全技能中心

Football Acca Tracker

解析用户提供的足球串关(accumulator)投注单——照片、截图或文本,确认后创建定时任务,每 15 分钟检索实时比分,按每条 leg 给出 WON/WINNING/PENDING/LOST 状态与整注健康度,并在全部结束后输出最终结算摘要和可选的现金提前结算估值。低级别联赛和 JS 渲染站点可能拿不到实时数据。

svenmedina07-ship-it
svenmedina07-ship-it
热度 18.83
最近更新 2026-04-16 03:46:35
分类:生活依赖:内部调用大模型 / 第三方 API应用场景:报告撰写 / 日程安排 / 工作流 / 研究

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add football-acca-tracker
Metadata
name
acca-tracker
description
Track football accumulator (acca) betting slips — parses slip photo or text, checks live scores every 15 minutes, and reports bet status (WINNING/LOST/PENDING) for each leg with overall acca health and cash-out context.
version
1.1.0
author
Ruby (Hermes Agent)
tags
["betting","football","accumulator","live-scores","sports","gambling","parlay","bet-tracking"]
license
MIT
metadata
{"hermes":{"tags":["leisure","sports","betting"],"requires_toolsets":["web"]}}

Acca Tracker — Football Accumulator Monitor

Track football accumulator (parlay) bets by monitoring live scores and reporting whether each leg is still alive. Works with any betting slip — photo, screenshot, or typed text.

When to Use

  • User shares a photo/screenshot of a betting slip (accumulator/parlay/bet builder)
  • User wants live score updates for their bets
  • User says "track my acca", "monitor my bet", "is my bet alive", "check my slip"

How It Works

User sends slip photo
  → Agent parses legs (vision_analyze or text extraction)
  → Agent creates a cron job (*/15 * * * *)
  → Cron searches live scores every 15 min
  → Cron delivers report: per-leg status + acca health
  → Auto-cleans up after all matches finish

Step 1: Parse the Slip

From a Photo

Use vision_analyze with the image and this question:

Extract all betting legs from this slip. For each leg return:
- Match (Team A vs Team B)
- Competition/League
- Date and kickoff time
- Bet type (exact wording from slip)
- Decimal odds

Also extract: total odds, stake amount, max return, any bonus info.

From Text

If user types their slip, extract the same fields. Normalize bet type wording to match the standard types in references/bet-types.md.

Step 2: Build the Slip Summary

After parsing, confirm with the user before starting tracking:

📋 PARSED SLIP — 5 legs

 1. Arsenal vs PSG (UCL, 21:00) — Arsenal W (1.55) — 64.5%
 2. Bayern vs Inter (UCL, 21:00) — Bayern W (1.40) — 71.4%
 3. Luton vs Northampton (L1, 20:45) — BTTS No (1.77) — 56.5%
 4. Wimbledon vs Stockport (L1, 20:45) — Stockport W (1.85) — 54.1%
 5. FSV Schöningen vs Lohne (RL, 18:00) — BTTS No (2.65) — 37.7% ⚠️

Stake: €10 | Combined odds: 21.04 | Max return: €210.40
Riskiest leg: #5 (37.7% implied)

Start tracking? (yes/no)

Calculate implied probability per leg: 1 / odds * 100. Flag any under 40% as ⚠️ gamble leg.

Step 3: Create the Cron Job

Use the cronjob tool:

action: create
name: acca-tracker-{short-id}
schedule: "*/15 * * * *"
repeat: 48
deliver: origin
prompt: {see template below}

Schedule Adjustments

Scenario Schedule Repeat
Single match day */15 * * * * 48
High-stakes acca */10 * * * * 72
Multi-day (Tue + Wed) */15 * * * * 192
Tournament bracket 0 */2 * * * 84

Cron Prompt Template

You are tracking a football accumulator bet. Check live scores NOW and report.

SLIP DETAILS:
{paste all legs with bet types, odds, and win conditions}

Total odds: {total} | Stake: {stake} | Max return: {max_return}

INSTRUCTIONS:
1. For each match, web_search: "{Team A} vs {Team B} live score {date}"
2. Also try: "{Team A} {Team B} {competition} score today"
3. For each leg determine:
   - Current score
   - Match status: Not Started / Live (minute) / HT / FT / Postponed / Abandoned
   - Bet status: ✅ WON / ✅ WINNING / ⏳ PENDING / ❌ LOST / ❌ DEAD
4. Calculate overall acca status:
   - ALL SAFE ✅ = no legs lost
   - STILL ALIVE ⏳ = no legs lost, none confirmed won
   - ACCA DEAD ❌ = at least one leg LOST
5. If acca dead: name the killing leg, explain why
6. Calculate "legs alive / won / lost / pending / total"
7. If all FT: state "TRACKING COMPLETE" and summarize

REPORT FORMAT (code blocks only):
🏟️ ACCA LIVE REPORT — {time}

Leg | Match                          | Score | Status | Bet        | Result
----|--------------------------------|-------|--------|------------|----------
 1  | Team A vs Team B              | 2 - 0 | 67'    | Team A W   | ✅ WINNING

📊 1 winning / 0 won / 0 lost / 2 pending (3 total)
💰 ⏳ STILL ALIVE

DATA: If no score found, say so explicitly. Never guess scores.
If 2+ hours past kickoff with no data: "unverified — likely finished"

Step 4: Report States

All Alive

🏟️ ACCA LIVE — 21:34 CET

 1 | Arsenal vs PSG       | 1 - 0 | 55' | Arsenal W | ✅ WINNING
 2 | Bayern vs Inter      | 0 - 0 | 55' | Bayern W  | ⏳ PENDING
 3 | Luton vs Northampton | 0 - 0 | 55' | BTTS No   | ✅ WINNING

📊 1 winning / 0 won / 0 lost / 2 pending
💰 ⏳ STILL ALIVE

Acca Dead

🏟️ ACCA LIVE — 22:18 CET

 1 | Arsenal vs PSG       | 2 - 1 | 78' | Arsenal W | ✅ WINNING
 2 | Bayern vs Inter      | 1 - 2 | 78' | Bayern W  | ❌ DEAD
 3 | Luton vs Northampton | 0 - 0 | 78' | BTTS No   | ✅ WINNING

📊 1 winning / 0 won / 1 dead / 1 pending
❌ ACCA DEAD — Leg 2 killed it (Bayern losing 1-2)

Remaining matches still playing — updating for interest.

Final — Won

🏟️ ACCA FINAL — 23:45 CET — 🎉🎉🎉

 1 | Arsenal vs PSG       | 2 - 1 | FT | Arsenal W | ✅ WON
 2 | Bayern vs Inter      | 3 - 1 | FT | Bayern W  | ✅ WON
 3 | Luton vs Northampton | 0 - 0 | FT | BTTS No   | ✅ WON

📊 3/3 LEGS WON
💰 ACCA WON — Stake: €10 | Return: €210.40

Tracking complete.

Cash-Out Context

When some legs won and others pending, estimate cash-out value:

Won legs combined odds: 1.55 × 1.40 = 2.17
Remaining legs implied probability: 0.565 × 0.541 × 0.377 = 0.115
Estimated value: €10 × 2.17 × 0.115 = €2.49
Cash-out range: ~€2.00 – €3.50 (rough estimate)

Only include when: at least 1 leg WON, at least 1 PENDING, acca NOT dead. Always frame as "estimated".

Data Source Strategy

See references/data-sources.md for full tier system and search patterns.

Quick reference:

  • Major leagues: BBC, ESPN, Google scores (near real-time)
  • Second tier: Sky Sports, Sofascore (5-10 min lag)
  • Low tier: TheSportsDB, Wikipedia (HT/FT only)
  • No data found: State explicitly, never guess

Bet Types

See references/bet-types.md for the full list of 18+ bet types with scoring logic, decision tree, and edge cases (void, ET, red cards, handicaps).

Step 5: Cleanup

  • After all matches FT, deliver final summary then stop
  • Auto-ends after repeat count
  • User can say "stop tracking" to remove cron early
  • Multi-day accas: increase repeat to 192

Limitations

  • 15-min intervals — goals can be missed between checks, not real-time
  • Low-tier leagues (Regionalliga, League Two, etc.) — no live score API coverage, may only get HT/FT snapshots or nothing at all
  • JS-rendered sites — Flashscore/Sofascore can't be scraped directly, use web_search summaries instead
  • Telegram delivery — "Topic_closed" errors can block cron delivery to specific topics; use main chat delivery (telegram:chat_id without thread) as fallback
  • Bookmaker-specific rules — some bet types vary by bookmaker (e.g., what counts as a "shot on target")
  • Telegram delivery may fail — "Topic_closed" errors can block cron delivery even on active topics. Reports still generate at ~/.hermes/cron/output/{job_id}/.md. Workaround: read output files directly, or deliver to main chat without thread ID.

Tips

  • Always confirm slip with user before starting
  • Include team nicknames in search queries
  • When acca dies, keep tracking for interest
  • Flag "near misses" (hit post, disallowed goal) if mentioned in results
  • Name each cron differently for multi-slip support