import logging

import requests
from django.conf import settings

logger = logging.getLogger(__name__)

class SpiderNotify():
    """
    sh:
    搜索引擎推送工具类：用于主动向搜索引擎（目前支持百度）提交网站URL
    实现新内容发布后快速通知搜索引擎抓取，提升收录效率
    """
    @staticmethod
    def baidu_notify(urls):
        """
        向百度搜索引擎推送URL（批量）
        依赖settings中配置的BAIDU_NOTIFY_URL（百度站长平台的推送接口地址）
        urls: 待推送的URL列表（如['https://example.com/article/1/', ...]）
        """
        try:
            data = '\n'.join(urls)
            result = requests.post(settings.BAIDU_NOTIFY_URL, data=data)
            logger.info(result.text)
        except Exception as e:
            logger.error(e)

    @staticmethod
    def notify(url):
        """
        通用推送方法（兼容单URL推送场景）
        内部调用百度推送方法，可扩展支持其他搜索引擎
        url: 待推送的单个URL或URL列表
        """
        SpiderNotify.baidu_notify(url)
