Files
etf_ws/share.py
T
2026-10-21 19:16:29 +08:00

79 lines
2.1 KiB
Python

# -*- coding: utf-8 -*-
import json
import os
from datetime import datetime
# 导入数据获取模块的函数
from get_etf_data import load_cache, CACHE_FILE, CACHE_DAYS, FUND_CODE,get_etf_data
# 导入推送模块的函数
from gotify import push_gotify
def format_cache_message(cache_data):
"""格式化缓存数据为消息内容"""
if not cache_data:
return "⚠️ 暂无缓存数据"
# 按日期排序(最近的数据在前)
sorted_dates = sorted(cache_data.keys(), reverse=True)
message_lines = []
for date in sorted_dates:
data = cache_data[date]
line = (
f"📅 {data['data_date'][:10]}\n"
f" 成交额:{data['turnover_yi']:,.2f} 亿元\n"
f" 总份额:{data['share_yi']:,.2f} 亿份"
)
message_lines.append(line)
return "\n\n".join(message_lines)
def send_cache_notification():
"""发送缓存数据通知"""
get_etf_data()
# 加载缓存
cache_data = load_cache()
if not cache_data:
push_gotify(
title="⚠️ ETF 数据通知",
message="暂无缓存数据,请先运行 get_etf_data.py 获取数据",
priority=5
)
return
# 统计数据
total_days = len(cache_data)
latest_date = max(cache_data.keys())
latest_data = cache_data[latest_date]
# 生成标题
title = f"📊 ETF 数据报告 ({FUND_CODE})"
# 生成消息内容
message = (
f"📈 缓存天数:{total_days} 天\n"
f"🕐 最新数据:{latest_date}\n"
f"💰 成交额:{latest_data['turnover_yi']:,.2f} 亿元\n"
f"📦 总份额:{latest_data['share_yi']:,.2f} 亿份\n\n"
f"{'='*10}\n"
f"{format_cache_message(cache_data)}"
)
# 发送推送
push_gotify(
title=title,
message=message,
priority=3
)
print(f"✅ 已发送 {total_days} 天的缓存数据通知")
# ---------------------- 程序入口 ----------------------
if __name__ == "__main__":
send_cache_notification()