#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
使用小红书 MCP - 正确的协议流程
"""

import json
import requests

MCP_URL = "http://localhost:18060/mcp"

# 小红书 cookies
COOKIES = "acw_tc=0a0bb41a17726804792802066ef22266fb6b0216da2a3e9f089735f8353b77; abRequestId=b5346cbb-6db3-5645-accc-df5d27fd9362; webBuild=5.13.1; xsecappid=xhs-pc-web; a1=19cbbfd8f46tok3grdu3mmi72tpiihd7co02rf9oa30000122754; webId=68ac71cf3f14eb4a280b442b71aad7e5; gid=yjSDDifj0fSfyjSDDifYilij4K9lTqkFf7q68l063WJ9UJq833xfWF888yJJW248dDqfjJ0Y; web_session=040069b8dcb7aa9bcf6957bd9d3b4b7b5c866c; id_token=VjEAAPwuVKkxM5M3tgTrefheWsAsAIisJtFuRYQM3EFnhkneE3Zag62PzVeUMmRAgCOznnJXrYICwToncTBIL4u7bKSd7M8QMVA0TgyLKo+Oknjg00IY1MQziJXeiutd2NTcUd+B; unread={%22ub%22:%2269a8d5d3000000002801e4e2%22%2C%22ue%22:%2269a85762000000002603e4ef%22%2C%22uc%22:30}; loadts=1772680707856"

session = requests.Session()
session.headers.update({
    "Content-Type": "application/json",
    "Cookie": COOKIES
})

def initialize():
    """1. 初始化"""
    payload = {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "initialize",
        "params": {
            "protocolVersion": "2024-11-05",
            "capabilities": {},
            "clientInfo": {"name": "travel-agent", "version": "1.0.0"}
        }
    }
    response = session.post(MCP_URL, json=payload, timeout=30)
    return response.json()


def send_initialized():
    """2. 发送 initialized 通知（不需要响应）"""
    payload = {
        "jsonrpc": "2.0",
        "method": "notifications/initialized",
        "params": {}
    }
    session.post(MCP_URL, json=payload, timeout=10)


def search_feeds(keyword):
    """3. 搜索笔记"""
    payload = {
        "jsonrpc": "2.0",
        "id": 2,
        "method": "tools/call",
        "params": {
            "name": "search_feeds",
            "arguments": {"keyword": keyword}
        }
    }
    response = session.post(MCP_URL, json=payload, timeout=60)
    return response.json()


if __name__ == "__main__":
    print("1. 初始化 MCP 会话...")
    init_result = initialize()
    print(f"   初始化：{init_result.get('result', {}).get('serverInfo', {})}")
    
    print("2. 发送 initialized 通知...")
    send_initialized()
    print("   已发送")
    
    print("3. 搜索：北京看展 2026")
    search_result = search_feeds("北京看展 2026")
    
    if "result" in search_result:
        print(f"   ✅ 成功获取数据")
        content = search_result["result"].get("content", [])
        print(f"   找到 {len(content)} 条笔记")
        
        for item in content[:5]:
            if "text" in item:
                print(f"   - {item['text'][:50]}...")
    else:
        print(f"   ❌ 失败：{search_result}")
    
    # 保存结果
    with open("data/xiaohongshu_result.json", "w", encoding="utf-8") as f:
        json.dump(search_result, f, ensure_ascii=False, indent=2)
    
    print("\n结果已保存到：data/xiaohongshu_result.json")
