# -*- coding: utf-8 -*-
"""
V2-016 ExposureChecker Local Test

위치:
  D:/honghee/blog_api/tools/test_v2_exposure_checker.py

실행:
  cd /d D:/honghee/blog_api
  python -m tools.test_v2_exposure_checker

목표:
- 네이버 검색 자동화 연결 전,
  blog_url / blog_post_no 기준 노출 판정 로직이 정상인지 확인한다.
"""

import sys
from pathlib import Path

ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))

from services.v2.exposure_checker import (
    ExposureChecker,
    ExposureCheckTarget,
)


def main():
    checker = ExposureChecker()

    target = ExposureCheckTarget(
        history_id=1,
        realtor_id=1,
        article_no="2633019770",
        blog_url="https://blog.naver.com/animone/224300794703",
        blog_id="animone",
        blog_post_no="224300794703",
        publish_title="해밀2단지마스터힐스 205동 · 매매 · 6억 9,000",
    )

    candidates = [
        {
            "title": "다른 블로그 글",
            "url": "https://blog.naver.com/other/111111111111",
        },
        {
            "title": "해밀2단지마스터힐스 205동 · 매매 · 6억 9,000",
            "url": "https://blog.naver.com/animone/224300794703",
        },
    ]

    result = checker.check_from_candidates(target, candidates)

    print("=" * 80)
    print("[V2 EXPOSURE CHECKER TEST]")
    print("keyword:", checker.keyword_from_target(target))
    print("search_url:", result.search_url)
    print("success:", result.success)
    print("is_exposed:", result.is_exposed)
    print("search_status:", result.search_status)
    print("exposure_rank:", result.exposure_rank)
    print("exposure_page:", result.exposure_page)
    print("matched_url:", result.matched_url)
    print("=" * 80)

    if not result.success or not result.is_exposed or result.exposure_rank != 2:
        raise SystemExit("FAILED")

    print("SUCCESS")


if __name__ == "__main__":
    main()
