import requests
import urllib.parse
from config import NAVER_CLIENT_ID, NAVER_CLIENT_SECRET, REQUEST_TIMEOUT

def search_blog(query: str, display: int = 10):
    enc_query = urllib.parse.quote(query)
    url = f"https://openapi.naver.com/v1/search/blog.json?query={enc_query}&display={display}&sort=sim"

    headers = {
        "X-Naver-Client-Id": NAVER_CLIENT_ID.strip(),
        "X-Naver-Client-Secret": NAVER_CLIENT_SECRET.strip()
    }

    response = requests.get(url, headers=headers, timeout=REQUEST_TIMEOUT)
    response.raise_for_status()
    return response.json()

def check_search_exposure(posts):
    results = []

    for post in posts[:5]:
        title = post.get("title", "").strip()
        if not title:
            continue

        try:
            data = search_blog(title)
            items = data.get("items", [])
            results.append({
                "title": title,
                "found_count": len(items),
                "top_result_link": items[0].get("link", "") if items else ""
            })
        except Exception as e:
            results.append({
                "title": title,
                "found_count": 0,
                "top_result_link": "",
                "error": str(e)
            })

    return results