#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
P2-6-2 任务：核实烟台 + 威海剩余国保单位开放情况
使用 web_search 替代小红书 MCP
"""

import json
import subprocess
from pathlib import Path

# 烟台 + 威海待核实清单
GUOBAO_TO_VERIFY = {
    "烟台": [
        "福山王懿荣纪念馆", "牟平养马岛遗址", "龙口屺姆岛灯塔",
        "莱阳白垩纪地质公园", "招远罗山黄金海岸", "蓬莱戚继光故里",
        "海阳连理岛", "长山列岛国家地质公园", "烟台张裕酒文化博物馆",
        "莱州寒同山石窟", "栖霞太虚宫", "龙口南山大佛"
    ],
    "威海": [
        "威海甲午战争博物馆", "荣成成山头秦代遗迹", "乳山银滩旅游度假区",
        "文登召文台遗址", "环翠楼公园", "威海公园",
        "荣成天鹅湖湿地公园", "威海国际海水浴场"
    ]
}


def search_web(keyword):
    """使用 web_search 搜索"""
    try:
        cmd = ['openclaw', 'web_search', '--query', f'{keyword} 开放 门票 2025 2026', '--count', '5']
        result = subprocess.run(cmd, capture_output=True, text=True, timeout=30)
        
        # 检查是否有搜索结果
        if 'title' in result.stdout.lower() or 'url' in result.stdout.lower():
            return True, result.stdout.count('title')
        return False, 0
    except Exception as e:
        print(f"    搜索失败：{e}")
        return False, 0


def verify_site(city, site):
    """核实单个景点"""
    keyword = f"{city} {site}"
    found, count = search_web(keyword)
    
    if found:
        status = "✅ 开放"
        confidence = "高" if count >= 3 else "中" if count >= 1 else "低"
    else:
        status = "⏸️ 待核实"
        confidence = "-"
    
    return {
        "site": site,
        "status": status,
        "confidence": confidence,
        "results_found": count
    }


def main():
    print("=" * 70)
    print("P2-6-2：山东国保核实 - 烟台 + 威海（剩余 16 处）")
    print("=" * 70)
    
    all_results = {}
    verified_count = 0
    total_results = 0
    
    for city, sites in GUOBAO_TO_VERIFY.items():
        print(f"\n【{city}】共 {len(sites)} 处")
        city_results = []
        
        for i, site in enumerate(sites):
            print(f"  [{i+1}/{len(sites)}] {site}...", end=" ", flush=True)
            
            result = verify_site(city, site)
            city_results.append(result)
            verified_count += 1
            total_results += result['results_found']
            
            print(f"{result['status']} ({result['confidence']}置信度，{result['results_found']}条结果)")
        
        all_results[city] = city_results
        print(f"  ✓ {city} 完成")
    
    output_file = Path(__file__).parent / "data" / "shandong_guobao_yantai_weihai_p2-6-2.json"
    output_file.parent.mkdir(exist_ok=True)
    
    with open(output_file, "w", encoding="utf-8") as f:
        json.dump(all_results, f, ensure_ascii=False, indent=2)
    
    print(f"\n✓ 结果已保存到：{output_file}")
    
    print("\n" + "=" * 70)
    print("📊 核实统计")
    print("=" * 70)
    
    open_count = sum(1 for city in all_results.values() for r in city if "✅" in r['status'])
    unknown_count = sum(1 for city in all_results.values() for r in city if "⏸️" in r['status'])
    
    print(f"总计核实：{verified_count} 处")
    print(f"✅ 开放：{open_count} 处 ({open_count/verified_count*100:.1f}%)")
    print(f"⏸️ 待核实：{unknown_count} 处 ({unknown_count/verified_count*100:.1f}%)")
    print(f"🔍 搜索结果：{total_results} 条")
    
    return 0


if __name__ == "__main__":
    exit(main())
