"""[DEPRECATED] 네이버 finance 종목 뉴스 스크래핑.

본 모듈은 ai_news Phase 1 (2026-05-14) 에서 더 이상 파이프라인에서 사용되지 않음.
데이터 소스는 stock 의 articles 테이블 (ai_news/articles_source.py) 로 전환됨.

삭제 시점: Phase 2 (DART 도입) 결정 후. IC 검증 4주 누적 후 노드 활성화
여부에 따라 본 모듈을 (a) 완전 삭제 또는 (b) ensemble fallback 으로 재활용.
"""

from __future__ import annotations

import logging
from typing import Any, Dict, List

from bs4 import BeautifulSoup

log = logging.getLogger(__name__)

NAVER_NEWS_URL = "https://finance.naver.com/item/news_news.naver"
NAVER_HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
    "Referer": "https://finance.naver.com/",
}


async def fetch_news(client, ticker: str, n: int = 5) -> List[Dict[str, Any]]:
    """Scrape top N news headlines for a ticker. Returns [] on any failure."""
    try:
        r = await client.get(NAVER_NEWS_URL, params={"code": ticker, "page": 1})
    except Exception as e:
        log.warning("ai_news scrape http error for %s: %s", ticker, e)
        return []
    if r.status_code != 200:
        return []
    soup = BeautifulSoup(r.text, "lxml")
    out: List[Dict[str, Any]] = []
    for row in soup.select("table.type5 tbody tr")[:n]:
        title_el = row.select_one("td.title a")
        date_el = row.select_one("td.date")
        if not title_el or not date_el:
            continue
        out.append({
            "title": title_el.get_text(strip=True),
            "date": date_el.get_text(strip=True),
        })
    return out
