#!/usr/bin/env python3
"""来安县通知公告爬虫 — Lonsun CMS (本地)"""
import re, sys, os
sys.path.insert(0, "/root/gov_crawler")
from base_crawler import GovCrawler

SITE_NAME = "来安县通知公告"
DOMAIN = "www.laian.gov.cn"
LIST_URL = "https://www.laian.gov.cn/zwdt/tzgg/index.html"

class LaianTzggCrawler(GovCrawler):
    def do_crawl(self):
        page_html = self.http_get(LIST_URL)
        if not page_html:
            print("  ⚠️ 获取失败")
            return

        m = re.search(r'<div[^>]*class="listnews"[^>]*>(.*?)</div>', page_html, re.S)
        if not m:
            print("  ⚠️ 找不到列表")
            return

        for li in re.findall(r'<li[^>]*>(.*?)</li>', m.group(1), re.S):
            if not li:
                continue
            a = re.search(r'<a[^>]*href="([^"]*)"[^>]*title="([^"]*)"', li)
            date_m = re.search(r'(\d{4}-\d{1,2}-\d{1,2})', li)
            if not a:
                continue
            href = a.group(1)
            if not href.startswith('http'):
                href = 'https://' + DOMAIN + href
            title = a.group(2)
            date = date_m.group(1) if date_m else ''
            detail_html = self.http_get(href)
            content = ''
            if detail_html:
                m2 = re.search(r'<div[^>]*class="j-fontContent newscontnet"[^>]*>(.*?)</div>', detail_html, re.S)
                if m2:
                    content = m2.group(1).strip()
                else:
                    m2 = re.search(r'<div[^>]*id="J_content"[^>]*>(.*?)</div>', detail_html, re.S)
                    content = m2.group(1).strip() if m2 else ''
            self.store_item(title=title, url=href, content=content, date=date)

    def run(self):
        """覆写run，跳过sync_to_server（用import_jsonl.py导入）"""
        self.ensure_site()
        self._stats = {"new": 0, "skip": 0, "errors": 0}
        t0 = __import__('time').time()
        self.do_crawl()
        elapsed = __import__('time').time() - t0
        print(f"\n{'─'*45}")
        print(f"✅ 新增: {self._stats['new']} | 跳过: {self._stats['skip']} | 错误: {self._stats['errors']}")
        print(f"⏱️ 耗时: {elapsed:.1f}s")
        if self._stats['errors']:
            sys.exit(1)


if __name__ == '__main__':
    LaianTzggCrawler(
        site_name=SITE_NAME,
        domain=DOMAIN,
        db_name='crawler_results.db'
    ).run()
