#!/bin/bash
# 正义使命舆情简报 - 每小时采集脚本（扩大数据源版）
# 定时任务：0 * * * *

set -e

LOG_FILE="/home/admin/.openclaw/workspace/reports/justice-mission/cron.log"
HOURLY_DIR="/home/admin/.openclaw/workspace/reports/justice-mission/hourly"
SEARXNG_URL="http://localhost:8080"

mkdir -p "$HOURLY_DIR"

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

log "==========  hourly 采集启动（扩大数据源） =========="

HOUR=$(date +%Y%m%d_%H00)
OUTPUT_FILE="${HOURLY_DIR}/${HOUR}.json"

# 扩大搜索关键词 - 覆盖国际主流媒体和国家主流媒体
QUERIES=(
    # 核心冲突
    "美以伊冲突 最新消息"
    "伊朗 以色列 军事冲突 2026"
    "美国 中东 军事行动"
    
    # 伊方动态
    "伊朗 德黑兰 官方表态"
    "伊朗 革命卫队 军事行动"
    "伊朗 最高领袖 哈梅内伊"
    "伊朗 外交部 声明"
    
    # 美以动态
    "美国 特朗普 中东政策"
    "以色列 内塔尼亚胡 军事行动"
    "美军 中央司令部 中东"
    "以色列 空袭 伊朗核设施"
    
    # 地区影响
    "霍尔木兹 海峡 航运"
    "中东 油价 2026"
    "伊朗 石油 出口"
    
    # 各方反应
    "中国 外交部 中东局势"
    "联合国 安理会 中东"
    "俄罗斯 中东 立场"
    "欧盟 中东 局势"
    "阿拉伯国家 中东冲突"
    
    # 台海关联
    "台湾 美以伊 反应"
    "台独 中东 局势"
    
    # 国际舆论
    "site:reuters.com Israel Iran conflict"
    "site:apnews.com Middle East Israel Iran"
    "site:bbc.com Israel Iran attack"
    "site:scmp.com Israel Iran Middle East"
    "site:xinhuanet.com 中东 以色列 伊朗"
    "site:globaltimes.cn 中东 局势"
    "site:observer.cn 中东 以色列"
)

log "开始采集 ${HOUR} 时段数据...（${#QUERIES[@]} 个查询）"

# 使用 Python 脚本采集（更可靠）
python3 << PYTHON_SCRIPT
import requests
import json
import os
from datetime import datetime

searxng_url = "${SEARXNG_URL}/search"
queries = ${QUERIES[@]// /", "}
queries = "$(IFS=,; echo "${QUERIES[*]}")".split(',')

# 重新构造 queries 列表
queries = [
$(for q in "${QUERIES[@]}"; do echo "    \"$q\","; done)
]

all_results = []

for q in queries:
    try:
        params = {'q': q.strip(), 'format': 'json', 'language': 'zh', 'engines': 'bing,google,brave'}
        r = requests.get(searxng_url, params=params, timeout=15)
        if r.status_code == 200:
            data = r.json()
            all_results.append({
                'query': q.strip(),
                'data': data
            })
    except Exception as e:
        print(f"搜索失败 {q}: {e}")

output = {
    'timestamp': datetime.now().isoformat(),
    'queries': all_results
}

with open('${OUTPUT_FILE}', 'w', encoding='utf-8') as f:
    json.dump(output, f, ensure_ascii=False, indent=2)

print(f"采集完成，保存 {len(all_results)} 个查询结果")
PYTHON_SCRIPT

log "采集完成，保存至：$OUTPUT_FILE"
log "========== hourly 采集完成 =========="
