#!/bin/bash
# 台湾每日舆情简报 - 小时采集脚本
# 定时任务：0 * * * *

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SKILL_DIR="$(dirname "$SCRIPT_DIR")"
OUTPUT_DIR="/home/admin/.openclaw/workspace/reports/taiwan-daily-briefing"
HOURLY_DIR="$OUTPUT_DIR/hourly"
LOG_FILE="$OUTPUT_DIR/cron.log"

# 确保目录存在
mkdir -p "$HOURLY_DIR"

# 日志函数
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}

log "========== 台湾每日舆情小时采集任务启动 =========="

# 生成时间戳
TIMESTAMP=$(date '+%Y%m%d_%H%M')
OUTPUT_FILE="$HOURLY_DIR/${TIMESTAMP}.json"

log "采集时间：$TIMESTAMP"
log "输出文件：$OUTPUT_FILE"

# 开始采集
log "开始采集..."

# 使用 Python 调用 searxng API 采集
python3 << 'PYTHON_SCRIPT'
import json
import urllib.request
import urllib.parse
from datetime import datetime

searxng_url = "http://localhost:8080"
queries = [
    "site:xinhuanet.com 台湾 美国 军售",
    "site:news.cn 台独 分裂",
    "site:reuters.com Taiwan US",
    "site:scmp.com Taiwan China",
    "site:bbc.com Taiwan",
    "site:nytimes.com Taiwan",
    "site:tw.news.cn 两岸",
    "site:gov.cn 台湾 政策"
]
output_file = "/home/admin/.openclaw/workspace/reports/taiwan-daily-briefing/hourly/" + datetime.now().strftime('%Y%m%d_%H%M') + ".json"

results = {
    "timestamp": datetime.now().astimezone().isoformat(),
    "queries": []
}

for query in queries:
    try:
        search_url = f"{searxng_url}/search?q={urllib.parse.quote(query)}&format=json&language=zh-CN&language=en"
        req = urllib.request.Request(search_url)
        req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36')
        
        with urllib.request.urlopen(req, timeout=30) as response:
            data = json.loads(response.read().decode('utf-8'))
            results["queries"].append({
                "query": query,
                "data": data
            })
        print(f"✓ 采集完成：{query}")
    except Exception as e:
        print(f"✗ 采集失败：{query} - {str(e)}")
        results["queries"].append({
            "query": query,
            "error": str(e)
        })

with open(output_file, 'w', encoding='utf-8') as f:
    json.dump(results, f, ensure_ascii=False, indent=2)

print(f"\n采集完成，结果已保存至：{output_file}")
print(f"共采集 {len(results['queries'])} 个查询")
PYTHON_SCRIPT

# 检查采集结果
if [ -f "$OUTPUT_FILE" ]; then
    FILE_SIZE=$(wc -c < "$OUTPUT_FILE")
    log "采集完成，文件大小：$FILE_SIZE 字节"
else
    log "⚠️  采集失败，输出文件不存在"
    exit 1
fi

log "========== 小时采集任务完成 =========="
