79 lines
2.1 KiB
Python
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() |