#!/bin/bash
# 每日日报自动生成脚本
# 执行时间：每天 6:59
# 根据 /data/news/report_guide_mini.md 要求执行

set -e

MMDD=$(date +%m%d)
TODAY=$(date +%Y-%m-%d)
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
LOG="/data/news/logs/daily_report_${TODAY}.log"

mkdir -p /data/news/logs

echo "===== 日报自动生成开始: $(date) =====" | tee -a $LOG
echo "MMDD=$MMDD, TODAY=$TODAY, YESTERDAY=$YESTERDAY" | tee -a $LOG

# ════════════════════════════════════════════
# 第1步：获取经济指标数据
# ════════════════════════════════════════════
echo "" | tee -a $LOG
echo "--- [1/6] 执行 financeTask.py ---" | tee -a $LOG

for i in 1 2 3; do
    python3.12 /data/news/scripts/financeTask.py 2>&1 | tee -a $LOG
    if [ $? -eq 0 ]; then
        echo "  ✅ financeTask.py 成功" | tee -a $LOG
        break
    else
        echo "  ⚠️ 第${i}次失败，5秒后重试..." | tee -a $LOG
        sleep 5
    fi
done

# 检查 finance-data.json 是否为今日修改，非今日则重新执行
if [ "$(stat -c %Y /data/news/json/finance-data.json 2>/dev/null)" -ge "$(date -d 'today 00:00' +%s)" ]; then
    echo "  ✅ finance-data.json 今日已更新" | tee -a $LOG
else
    echo "  ⚠️ finance-data.json 非今日文件，重新执行 financeTask.py..." | tee -a $LOG
    python3.12 /data/news/scripts/financeTask.py 2>&1 | tee -a $LOG
    if [ $? -eq 0 ]; then
        echo "  ✅ financeTask.py 重试成功" | tee -a $LOG
    else
        echo "  ⚠️ financeTask.py 重试失败，继续后续步骤" | tee -a $LOG
    fi
fi

# ════════════════════════════════════════════
# 第2步：翻译 finance-data.json 为韩文
# ════════════════════════════════════════════
echo "" | tee -a $LOG
echo "--- [2/6] 翻译 finance-data.json 为韩文 ---" | tee -a $LOG

python3.12 /data/news/scripts/translate_finance_ko.py 2>&1 | tee -a $LOG
if [ -f /data/news/json/ko-finance-data.json ]; then
    echo "  ✅ ko-finance-data.json 已生成" | tee -a $LOG
else
    echo "  ⚠️ 翻译失败" | tee -a $LOG
fi

# ════════════════════════════════════════════
# 第3步：截图前置准备
# ════════════════════════════════════════════
echo "" | tee -a $LOG
echo "--- [3/6] 截图前置准备 ---" | tee -a $LOG

# 检查puppeteer和chrome路径
if [ -d "/tmp/puppeteer-core-setup" ]; then
    echo "  ✅ puppeteer 路径存在" | tee -a $LOG
else
    echo "  ⚠️ puppeteer路径 /tmp/puppeteer-core-setup 不存在" | tee -a $LOG
fi
if [ -f "/root/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome" ]; then
    echo "  ✅ chrome 路径存在" | tee -a $LOG
else
    echo "  ⚠️ chrome路径不存在" | tee -a $LOG
fi

# Font Awesome CDN → 本地化
sed -i 's|http://localhost:8082/css/all.min.css|/css/all.min.css|' /data/news/daily-report.html 2>/dev/null || true
sed -i 's|http://localhost:8082/css/all.min.css|/css/all.min.css|' /data/news/ko-daily-report.html 2>/dev/null || true
echo "  ✅ Font Awesome 引用已本地化" | tee -a $LOG

# thumb图片本地化
echo "" | tee -a $LOG
echo "  --- thumb图片本地化 ---" | tee -a $LOG
python3.12 /data/news/scripts/thumb_localize.py 2>&1 | tee -a $LOG

# ════════════════════════════════════════════
# 第4步：截图执行
# ════════════════════════════════════════════
echo "" | tee -a $LOG
echo "--- [4/6] 截图执行 ---" | tee -a $LOG

python3.12 /data/news/scripts/screenshot_daily.py 2>&1 | tee -a $LOG

# 检查截图文件
if [ -f /data/news/cn-screenshot-ipad.png ] && [ -f /data/news/ko-screenshot-ipad.png ]; then
    echo "  ✅ 截图文件已生成" | tee -a $LOG
else
    echo "  ⚠️ 截图文件缺失" | tee -a $LOG
fi

# ════════════════════════════════════════════
# 第5步：截图压缩+同步存档
# ════════════════════════════════════════════
echo "" | tee -a $LOG
echo "--- [5/6] 截图压缩+存档 ---" | tee -a $LOG

bash /data/news/scripts/compress_screenshots.sh 2>&1 | tee -a $LOG

if [ -f /data/news/screenshots/cn-${TODAY}-daily-report.png ]; then
    echo "  ✅ 存档完成" | tee -a $LOG
fi

# ════════════════════════════════════════════
# 第6步：清理临时文件
# ════════════════════════════════════════════
echo "" | tee -a $LOG
echo "--- [6/6] 清理临时文件 ---" | tee -a $LOG

rm -f /tmp/screenshot_fresh.py /tmp/screenshot_t2.py /tmp/hermes_sandbox_*.py 2>/dev/null || true
echo "  ✅ 临时文件已清理" | tee -a $LOG

echo "" | tee -a $LOG
echo "===== 日报自动生成完成: $(date) =====" | tee -a $LOG
