daily backup 2026-03-26 08:00:12
This commit is contained in:
parent
b6ba578cd9
commit
613cdf072a
@ -1,142 +1,142 @@
|
|||||||
{
|
{
|
||||||
"1652541": {
|
"677397": {
|
||||||
"yes_price": "$1.00",
|
"yes_price": "$1.00",
|
||||||
"no_price": "$0.00",
|
"no_price": "$0.00",
|
||||||
"question": "Will Crude Oil (CL) hit (LOW) $90 by end of March?",
|
"question": "Will Israel launch a major ground offensive in Lebanon by March 31?",
|
||||||
"volume": "$11.9M",
|
"volume": "$27.3M",
|
||||||
"timestamp": "2026-03-24T14:40:44.116969"
|
"timestamp": "2026-03-25T11:21:30.722853"
|
||||||
},
|
},
|
||||||
"1466015": {
|
"1466015": {
|
||||||
"yes_price": "$0.12",
|
"yes_price": "$0.17",
|
||||||
"no_price": "$0.89",
|
"no_price": "$0.82",
|
||||||
"question": "US x Iran ceasefire by March 31?",
|
"question": "US x Iran ceasefire by March 31?",
|
||||||
"volume": "$5.2M",
|
"volume": "$3.6M",
|
||||||
"timestamp": "2026-03-24T14:40:44.116989"
|
"timestamp": "2026-03-25T11:21:30.722875"
|
||||||
},
|
},
|
||||||
"1627642": {
|
"1639625": {
|
||||||
"yes_price": "$1.00",
|
|
||||||
"no_price": "$0.00",
|
|
||||||
"question": "Warriors vs. Mavericks",
|
|
||||||
"volume": "$4.5M",
|
|
||||||
"timestamp": "2026-03-24T14:40:44.116992"
|
|
||||||
},
|
|
||||||
"564174": {
|
|
||||||
"yes_price": "$0.00",
|
"yes_price": "$0.00",
|
||||||
"no_price": "$1.00",
|
"no_price": "$1.00",
|
||||||
"question": "Will Joel Embiid win the 2025\u20132026 NBA MVP?",
|
"question": "Magic vs. Cavaliers",
|
||||||
"volume": "$3.2M",
|
"volume": "$3.1M",
|
||||||
"timestamp": "2026-03-24T14:40:44.116994"
|
"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": {
|
"1484949": {
|
||||||
"yes_price": "$0.01",
|
"yes_price": "$0.01",
|
||||||
"no_price": "$0.99",
|
"no_price": "$0.99",
|
||||||
"question": "Netanyahu out by March 31?",
|
"question": "Netanyahu out by March 31?",
|
||||||
"volume": "$3.0M",
|
"volume": "$2.5M",
|
||||||
"timestamp": "2026-03-24T14:40:44.116996"
|
"timestamp": "2026-03-25T11:21:30.722887"
|
||||||
},
|
},
|
||||||
"677397": {
|
"1639601": {
|
||||||
"yes_price": "$1.00",
|
"yes_price": "$0.00",
|
||||||
"no_price": "$0.00",
|
"no_price": "$1.00",
|
||||||
"question": "Will Israel launch a major ground offensive in Lebanon by March 31?",
|
"question": "Kings vs. Hornets",
|
||||||
"volume": "$2.6M",
|
"volume": "$2.3M",
|
||||||
"timestamp": "2026-03-24T14:40:44.116998"
|
"timestamp": "2026-03-25T11:21:30.722889"
|
||||||
},
|
},
|
||||||
"1687194": {
|
"948045": {
|
||||||
"yes_price": "$1.00",
|
"yes_price": "$0.00",
|
||||||
"no_price": "$0.00",
|
"no_price": "$1.00",
|
||||||
"question": "Spread: Clippers (-13.5)",
|
"question": "Will Movement for a Better Hungary (Jobbik) win the most seats in the next Hungarian parliamentary election?",
|
||||||
"volume": "$2.1M",
|
"volume": "$2.3M",
|
||||||
"timestamp": "2026-03-24T14:40:44.117001"
|
"timestamp": "2026-03-25T11:21:30.722891"
|
||||||
},
|
},
|
||||||
"1162940": {
|
"1162940": {
|
||||||
"yes_price": "$0.21",
|
"yes_price": "$0.14",
|
||||||
"no_price": "$0.79",
|
"no_price": "$0.86",
|
||||||
"question": "US forces enter Iran by March 31?",
|
"question": "US forces enter Iran by March 31?",
|
||||||
"volume": "$2.1M",
|
"volume": "$2.0M",
|
||||||
"timestamp": "2026-03-24T14:40:44.117003"
|
"timestamp": "2026-03-25T11:21:30.722893"
|
||||||
},
|
|
||||||
"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"
|
|
||||||
},
|
},
|
||||||
"561251": {
|
"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",
|
"yes_price": "$0.01",
|
||||||
"no_price": "$0.99",
|
"no_price": "$0.99",
|
||||||
"question": "Will Kim Kardashian win the 2028 Democratic presidential nomination?",
|
"question": "Will LeBron James win the 2028 US Presidential Election?",
|
||||||
"volume": "$885.3K",
|
"volume": "$1.9M",
|
||||||
"timestamp": "2026-03-24T14:40:44.117026"
|
"timestamp": "2026-03-25T11:21:30.722895"
|
||||||
},
|
},
|
||||||
"1467766": {
|
"1696034": {
|
||||||
"yes_price": "$0.45",
|
"yes_price": "$0.52",
|
||||||
"no_price": "$0.55",
|
"no_price": "$0.48",
|
||||||
"question": "Will Crude Oil (CL) hit (HIGH) $100 by end of March?",
|
"question": "Spread: Nuggets (-5.5)",
|
||||||
"volume": "$862.8K",
|
"volume": "$1.8M",
|
||||||
"timestamp": "2026-03-24T14:40:44.117027"
|
"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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2,6 +2,7 @@
|
|||||||
import os
|
import os
|
||||||
import json
|
import json
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import requests
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
@ -90,6 +91,25 @@ def calculate_changes(current_markets, old_cache):
|
|||||||
})
|
})
|
||||||
return changes
|
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):
|
def generate_report(changes):
|
||||||
"""生成早报内容"""
|
"""生成早报内容"""
|
||||||
today = datetime.now().strftime("%Y-%m-%d")
|
today = datetime.now().strftime("%Y-%m-%d")
|
||||||
@ -105,22 +125,26 @@ def generate_report(changes):
|
|||||||
report.append("\n📈 涨幅Top事件(概率上升 ≥ {}%):".format(CHANGE_THRESHOLD))
|
report.append("\n📈 涨幅Top事件(概率上升 ≥ {}%):".format(CHANGE_THRESHOLD))
|
||||||
gainers_sorted = sorted(gainers, key=lambda x: x["change_pct"], reverse=True)[:TOP_N]
|
gainers_sorted = sorted(gainers, key=lambda x: x["change_pct"], reverse=True)[:TOP_N]
|
||||||
for i, g in enumerate(gainers_sorted, 1):
|
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:
|
if losers:
|
||||||
report.append("\n📉 跌幅Top事件(概率下降 ≥ {}%):".format(CHANGE_THRESHOLD))
|
report.append("\n📉 跌幅Top事件(概率下降 ≥ {}%):".format(CHANGE_THRESHOLD))
|
||||||
losers_sorted = sorted(losers, key=lambda x: x["change_pct"])[:TOP_N]
|
losers_sorted = sorted(losers, key=lambda x: x["change_pct"])[:TOP_N]
|
||||||
for i, l in enumerate(losers_sorted, 1):
|
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:
|
if new_markets:
|
||||||
report.append("\n🆕 新增热门市场:")
|
report.append("\n🆕 新增热门市场:")
|
||||||
for i, m in enumerate(new_markets[:5], 1):
|
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🔥 今日高交易量热门事件:")
|
report.append("\n🔥 今日高交易量热门事件:")
|
||||||
for i, m in enumerate(hot_markets, 1):
|
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,仅供参考,不构成投资建议。")
|
report.append("\n⚠️ 以上数据来自Polymarket,仅供参考,不构成投资建议。")
|
||||||
return "\n".join(report)
|
return "\n".join(report)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user