daily backup 2026-03-26 08:00:12

This commit is contained in:
Yui Assistant 2026-03-26 08:00:12 +08:00
parent b6ba578cd9
commit 613cdf072a
2 changed files with 144 additions and 120 deletions

View File

@ -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"
}
}

View File

@ -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)