diff --git a/skills/polymarket-daily-report/price_cache.json b/skills/polymarket-daily-report/price_cache.json index c42e2cb..9fd8e46 100644 --- a/skills/polymarket-daily-report/price_cache.json +++ b/skills/polymarket-daily-report/price_cache.json @@ -1,142 +1,142 @@ { - "1652541": { + "677397": { "yes_price": "$1.00", "no_price": "$0.00", - "question": "Will Crude Oil (CL) hit (LOW) $90 by end of March?", - "volume": "$11.9M", - "timestamp": "2026-03-24T14:40:44.116969" + "question": "Will Israel launch a major ground offensive in Lebanon by March 31?", + "volume": "$27.3M", + "timestamp": "2026-03-25T11:21:30.722853" }, "1466015": { - "yes_price": "$0.12", - "no_price": "$0.89", + "yes_price": "$0.17", + "no_price": "$0.82", "question": "US x Iran ceasefire by March 31?", - "volume": "$5.2M", - "timestamp": "2026-03-24T14:40:44.116989" + "volume": "$3.6M", + "timestamp": "2026-03-25T11:21:30.722875" }, - "1627642": { - "yes_price": "$1.00", - "no_price": "$0.00", - "question": "Warriors vs. Mavericks", - "volume": "$4.5M", - "timestamp": "2026-03-24T14:40:44.116992" - }, - "564174": { + "1639625": { "yes_price": "$0.00", "no_price": "$1.00", - "question": "Will Joel Embiid win the 2025\u20132026 NBA MVP?", - "volume": "$3.2M", - "timestamp": "2026-03-24T14:40:44.116994" + "question": "Magic vs. Cavaliers", + "volume": "$3.1M", + "timestamp": "2026-03-25T11:21:30.722880" + }, + "1639623": { + "yes_price": "$0.00", + "no_price": "$1.00", + "question": "Pelicans vs. Knicks", + "volume": "$2.8M", + "timestamp": "2026-03-25T11:21:30.722882" + }, + "1639626": { + "yes_price": "$0.68", + "no_price": "$0.33", + "question": "Nuggets vs. Suns", + "volume": "$2.5M", + "timestamp": "2026-03-25T11:21:30.722885" }, "1484949": { "yes_price": "$0.01", "no_price": "$0.99", "question": "Netanyahu out by March 31?", - "volume": "$3.0M", - "timestamp": "2026-03-24T14:40:44.116996" + "volume": "$2.5M", + "timestamp": "2026-03-25T11:21:30.722887" }, - "677397": { - "yes_price": "$1.00", - "no_price": "$0.00", - "question": "Will Israel launch a major ground offensive in Lebanon by March 31?", - "volume": "$2.6M", - "timestamp": "2026-03-24T14:40:44.116998" + "1639601": { + "yes_price": "$0.00", + "no_price": "$1.00", + "question": "Kings vs. Hornets", + "volume": "$2.3M", + "timestamp": "2026-03-25T11:21:30.722889" }, - "1687194": { - "yes_price": "$1.00", - "no_price": "$0.00", - "question": "Spread: Clippers (-13.5)", - "volume": "$2.1M", - "timestamp": "2026-03-24T14:40:44.117001" + "948045": { + "yes_price": "$0.00", + "no_price": "$1.00", + "question": "Will Movement for a Better Hungary (Jobbik) win the most seats in the next Hungarian parliamentary election?", + "volume": "$2.3M", + "timestamp": "2026-03-25T11:21:30.722891" }, "1162940": { - "yes_price": "$0.21", - "no_price": "$0.79", + "yes_price": "$0.14", + "no_price": "$0.86", "question": "US forces enter Iran by March 31?", - "volume": "$2.1M", - "timestamp": "2026-03-24T14:40:44.117003" - }, - "666860": { - "yes_price": "$0.01", - "no_price": "$0.99", - "question": "Trump out as President by March 31?", - "volume": "$1.7M", - "timestamp": "2026-03-24T14:40:44.117004" - }, - "564172": { - "yes_price": "$0.00", - "no_price": "$1.00", - "question": "Will Stephen Curry win the 2025\u20132026 NBA MVP?", - "volume": "$1.7M", - "timestamp": "2026-03-24T14:40:44.117006" + "volume": "$2.0M", + "timestamp": "2026-03-25T11:21:30.722893" }, "561251": { - "yes_price": "$0.00", - "no_price": "$1.00", - "question": "Will LeBron James win the 2028 US Presidential Election?", - "volume": "$1.7M", - "timestamp": "2026-03-24T14:40:44.117008" - }, - "958442": { - "yes_price": "$0.02", - "no_price": "$0.98", - "question": "Will the Iranian regime fall by March 31?", - "volume": "$1.4M", - "timestamp": "2026-03-24T14:40:44.117010" - }, - "1627647": { - "yes_price": "$0.00", - "no_price": "$1.00", - "question": "Bucks vs. Clippers", - "volume": "$1.3M", - "timestamp": "2026-03-24T14:40:44.117012" - }, - "1569627": { - "yes_price": "$0.33", - "no_price": "$0.68", - "question": "US x Iran ceasefire by April 15?", - "volume": "$1.2M", - "timestamp": "2026-03-24T14:40:44.117013" - }, - "1627644": { - "yes_price": "$0.00", - "no_price": "$1.00", - "question": "Nets vs. Trail Blazers", - "volume": "$1.2M", - "timestamp": "2026-03-24T14:40:44.117015" - }, - "1534638": { - "yes_price": "$0.58", - "no_price": "$0.42", - "question": "Backpack FDV above $200M one day after launch?", - "volume": "$1.1M", - "timestamp": "2026-03-24T14:40:44.117021" - }, - "1507751": { - "yes_price": "$0.10", - "no_price": "$0.91", - "question": "Will the Iranian regime fall by April 30?", - "volume": "$931.0K", - "timestamp": "2026-03-24T14:40:44.117023" - }, - "1640919": { - "yes_price": "$0.58", - "no_price": "$0.41", - "question": "US forces enter Iran by April 30?", - "volume": "$913.7K", - "timestamp": "2026-03-24T14:40:44.117024" - }, - "559690": { "yes_price": "$0.01", "no_price": "$0.99", - "question": "Will Kim Kardashian win the 2028 Democratic presidential nomination?", - "volume": "$885.3K", - "timestamp": "2026-03-24T14:40:44.117026" + "question": "Will LeBron James win the 2028 US Presidential Election?", + "volume": "$1.9M", + "timestamp": "2026-03-25T11:21:30.722895" }, - "1467766": { - "yes_price": "$0.45", - "no_price": "$0.55", - "question": "Will Crude Oil (CL) hit (HIGH) $100 by end of March?", - "volume": "$862.8K", - "timestamp": "2026-03-24T14:40:44.117027" + "1696034": { + "yes_price": "$0.52", + "no_price": "$0.48", + "question": "Spread: Nuggets (-5.5)", + "volume": "$1.8M", + "timestamp": "2026-03-25T11:21:30.722897" + }, + "1436040": { + "yes_price": "$1.00", + "no_price": "$0.00", + "question": "Blue Jackets vs. Flyers", + "volume": "$1.5M", + "timestamp": "2026-03-25T11:21:30.722899" + }, + "1436030": { + "yes_price": "$1.00", + "no_price": "$0.00", + "question": "Avalanche vs. Penguins", + "volume": "$1.5M", + "timestamp": "2026-03-25T11:21:30.722901" + }, + "1697212": { + "yes_price": "$1.00", + "no_price": "$0.00", + "question": "Spread: Hornets (-17.5)", + "volume": "$1.2M", + "timestamp": "2026-03-25T11:21:30.722903" + }, + "1473040": { + "yes_price": "$0.00", + "no_price": "$1.00", + "question": "Will Bitcoin reach $150,000 in March?", + "volume": "$1.1M", + "timestamp": "2026-03-25T11:21:30.722905" + }, + "958442": { + "yes_price": "$0.01", + "no_price": "$0.99", + "question": "Will the Iranian regime fall by March 31?", + "volume": "$1.1M", + "timestamp": "2026-03-25T11:21:30.722908" + }, + "1436035": { + "yes_price": "$0.00", + "no_price": "$1.00", + "question": "Kraken vs. Panthers", + "volume": "$1.1M", + "timestamp": "2026-03-25T11:21:30.722911" + }, + "1436081": { + "yes_price": "$0.00", + "no_price": "$1.00", + "question": "Capitals vs. Blues", + "volume": "$1.0M", + "timestamp": "2026-03-25T11:21:30.722914" + }, + "1436048": { + "yes_price": "$1.00", + "no_price": "$0.00", + "question": "Blackhawks vs. Islanders: O/U 6.5", + "volume": "$993.8K", + "timestamp": "2026-03-25T11:21:30.722917" + }, + "1436056": { + "yes_price": "$1.00", + "no_price": "$0.00", + "question": "Senators vs. Red Wings", + "volume": "$965.4K", + "timestamp": "2026-03-25T11:21:30.722919" } } \ No newline at end of file diff --git a/skills/polymarket-daily-report/report.py b/skills/polymarket-daily-report/report.py index 18e8d07..e07c560 100644 --- a/skills/polymarket-daily-report/report.py +++ b/skills/polymarket-daily-report/report.py @@ -2,6 +2,7 @@ import os import json import subprocess +import requests from datetime import datetime from dotenv import load_dotenv @@ -90,6 +91,25 @@ def calculate_changes(current_markets, old_cache): }) return changes +def translate_text(text): + """翻译英文为中文""" + try: + url = "https://translate.googleapis.com/translate_a/single" + params = { + "client": "gtx", + "sl": "en", + "tl": "zh-CN", + "dt": "t", + "q": text + } + response = requests.get(url, params=params, timeout=10) + if response.status_code == 200: + result = response.json() + return ''.join([item[0] for item in result[0]]) + except Exception as e: + print(f"翻译失败: {e}") + return "(翻译暂不可用)" + def generate_report(changes): """生成早报内容""" today = datetime.now().strftime("%Y-%m-%d") @@ -105,22 +125,26 @@ def generate_report(changes): report.append("\n📈 涨幅Top事件(概率上升 ≥ {}%):".format(CHANGE_THRESHOLD)) gainers_sorted = sorted(gainers, key=lambda x: x["change_pct"], reverse=True)[:TOP_N] for i, g in enumerate(gainers_sorted, 1): - report.append(f"{i}. {g['question'][:60]}... 👉 YES ${g['current_yes']:.2f} (+{g['change_pct']:.1f}% 24h) | 交易量 {g['volume']}") + question_cn = translate_text(g['question']) + report.append(f"{i}. 🇺🇸 {g['question'][:80]}\n 🇨🇳 {question_cn}\n 👉 YES ${g['current_yes']:.2f} (+{g['change_pct']:.1f}% 24h) | 交易量 {g['volume']}") if losers: report.append("\n📉 跌幅Top事件(概率下降 ≥ {}%):".format(CHANGE_THRESHOLD)) losers_sorted = sorted(losers, key=lambda x: x["change_pct"])[:TOP_N] for i, l in enumerate(losers_sorted, 1): - report.append(f"{i}. {l['question'][:60]}... 👉 YES ${l['current_yes']:.2f} ({l['change_pct']:.1f}% 24h) | 交易量 {l['volume']}") + question_cn = translate_text(l['question']) + report.append(f"{i}. 🇺🇸 {l['question'][:80]}\n 🇨🇳 {question_cn}\n 👉 YES ${l['current_yes']:.2f} ({l['change_pct']:.1f}% 24h) | 交易量 {l['volume']}") if new_markets: report.append("\n🆕 新增热门市场:") for i, m in enumerate(new_markets[:5], 1): - report.append(f"{i}. {m['question'][:60]}... 👉 YES ${m['current_yes']:.2f} / NO ${m['current_no']:.2f} | 交易量 {m['volume']}") + question_cn = translate_text(m['question']) + report.append(f"{i}. 🇺🇸 {m['question'][:80]}\n 🇨🇳 {question_cn}\n 👉 YES ${m['current_yes']:.2f} / NO ${m['current_no']:.2f} | 交易量 {m['volume']}") report.append("\n🔥 今日高交易量热门事件:") for i, m in enumerate(hot_markets, 1): - report.append(f"{i}. {m['question'][:60]}... 👉 YES ${m['current_yes']:.2f} / NO ${m['current_no']:.2f} | 交易量 {m['volume']}") + question_cn = translate_text(m['question']) + report.append(f"{i}. 🇺🇸 {m['question'][:80]}\n 🇨🇳 {question_cn}\n 👉 YES ${m['current_yes']:.2f} / NO ${m['current_no']:.2f} | 交易量 {m['volume']}") report.append("\n⚠️ 以上数据来自Polymarket,仅供参考,不构成投资建议。") return "\n".join(report)