Skip to content

Footballbot #4

@ngshalom722-bot

Description

@ngshalom722-bot

import requests
import time

====== 你的 Bot Token & User ID ======

BOT_TOKEN = "在這裡填入你的完整 Token"
CHAT_ID = "在這裡填入你的 Telegram User ID"

====== 發送訊息到 Telegram ======

def send(msg):
url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
data = {"chat_id": CHAT_ID, "text": msg}
requests.post(url, data=data)

====== SofaScore API 抓取 ======

def get_live_data(match_id):
url = f"https://api.sofascore.com/api/v1/event/{match_id}/statistics"
r = requests.get(url).json()

stats = r["statistics"][0]["groups"]

data = {
    "shots": stats[0]["statisticsItems"][0]["home"],
    "shots_on": stats[0]["statisticsItems"][1]["home"],
    "dangerous_attacks": stats[2]["statisticsItems"][2]["home"],
    "corners": stats[1]["statisticsItems"][2]["home"],
    "xg_total": stats[3]["statisticsItems"][0]["home"],
    "wing_attack_ratio": 42,  # SofaScore 無此數據 → 固定值
    "odds_before": 2.40,
    "odds_now": 2.20,
    "xg_change": 0.28,
    "team": "大阪飛腳",
    "line": 2.5,
    "corner_line": 8.5
}

return data

====== AI 模組 ======

def goal_signal(d):
return (
d["dangerous_attacks"] > 60 and
d["xg_change"] >= 0.25 and
abs(d["odds_before"] - d["odds_now"]) / d["odds_before"] >= 0.08
)

def over_signal(d):
score = 0
if d["xg_total"] >= 1.0: score += 1
if d["dangerous_attacks"] > 65: score += 1
if d["shots"] >= 10: score += 1
if d["corners"] >= 6: score += 1
return score >= 3

def corner_signal(d):
score = 0
if d["dangerous_attacks"] > 60: score += 1
if d["shots"] >= 8: score += 1
if d["wing_attack_ratio"] >= 40: score += 1
return score >= 3

====== 主迴圈 ======

MATCH_ID = 123456 # 你要監控的比賽 ID

while True:
d = get_live_data(MATCH_ID)

if goal_signal(d):
    send(f"⚠️【進球前兆】\n隊伍:{d['team']}\n危險進攻:{d['dangerous_attacks']}%\nxG:+{d['xg_change']}\n賠率急跌:{d['odds_before']} → {d['odds_now']}\n建議:買「{d['team']} 下一個進球」")

if over_signal(d):
    send(f"📈【大球訊號】\n射門:{d['shots']}\nxG:{d['xg_total']}\n危險進攻:{d['dangerous_attacks']}%\n建議:買大球 Over {d['line']}")

if corner_signal(d):
    send(f"🚩【角球大】\n角球:{d['corners']}\n危險進攻:{d['dangerous_attacks']}%\n邊路進攻:{d['wing_attack_ratio']}%\n建議:買大角 Over {d['corner_line']}")

time.sleep(5)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions