#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""日本每日舆情简报 - 小时采集脚本（扩大数据源）"""

import json, os, requests
from datetime import datetime

SEARXNG_URL = 'http://localhost:8080/search'
HOURLY_DIR = '/home/admin/.openclaw/workspace/reports/japan-daily-briefing/hourly'
LOG_FILE = '/home/admin/.openclaw/workspace/reports/japan-daily-briefing/cron.log'

QUERIES = [
    # 中日关系
    'site:xinhuanet.com 日本 OR 中日',
    'site:people.com.cn 日本 OR 中日关系',
    'site:globaltimes.cn Japan China',
    'site:observer.cn 日本 OR 中日',
    'site:reuters.com Japan China relations',
    'site:scmp.com Japan China',
    
    # 历史问题
    'site:xinhuanet.com 日本 靖国 OR 历史',
    'site:globaltimes.cn Japan Yasukuni',
    
    # 领土争端
    'site:globaltimes.cn 钓鱼岛 OR 东海',
    'site:reuters.com Senkaku Diaoyu',
    'site:scmp.com Japan China East China Sea',
    
    # 军事安全
    'site:globaltimes.cn 日本 自卫队 OR 防卫',
    'site:reuters.com Japan Self-Defense Forces',
    'site:scmp.com Japan military',
    
    # 国内政治
    'site:xinhuanet.com 日本 首相 OR 内阁',
    'site:reuters.com Japan Prime Minister',
    
    # 国际舆论
    'site:bbc.com Japan China',
    'site:nytimes.com Japan China',
    'site:cna.com.tw 日本 OR 中日',
]

def log(msg):
    ts = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    line = f'[{ts}] {msg}'
    print(line)
    os.makedirs(os.path.dirname(LOG_FILE), exist_ok=True)
    with open(LOG_FILE, 'a', encoding='utf-8') as f:
        f.write(line + '\n')

def main():
    log('========== 日本舆情 hourly 采集启动 ==========')
    hour = datetime.now().strftime('%Y%m%d_%H00')
    output_file = f'{HOURLY_DIR}/{hour}.json'
    os.makedirs(HOURLY_DIR, exist_ok=True)
    
    log(f'开始采集 {hour} 时段数据...（{len(QUERIES)} 个查询）')
    all_results = []
    
    for q in QUERIES:
        try:
            params = {'q': q, 'format': 'json', 'language': 'zh'}
            r = requests.get(SEARXNG_URL, params=params, timeout=15)
            if r.status_code == 200:
                all_results.append({'query': q, 'data': r.json()})
                log(f'✓ {q[:40]}')
        except Exception as e:
            log(f'✗ {q[:30]}: {e}')
    
    with open(output_file, 'w', encoding='utf-8') as f:
        json.dump({'timestamp': datetime.now().isoformat(), 'queries': all_results}, f, ensure_ascii=False, indent=2)
    
    log(f'采集完成，共 {len(all_results)} 个查询')
    log('========== 小时采集任务完成 ==========')

if __name__ == '__main__':
    main()
