#!/usr/bin/env python3
"""石家庄市行政审批局-公告公示 正文格式刷新
旧脚本把正文拍成纯文本+Markdown表格 → search_app 按 Markdown 渲染(md格式)
新 fetch_detail 保留 <p>/<table> HTML → 重抓正文 UPDATE 存量记录
"""
import sys, os, re, sqlite3, time
sys.path.insert(0, '/root/gov_crawler')
os.chdir('/root/gov_crawler')

import importlib.util
spec = importlib.util.spec_from_file_location('sjz', '/root/gov_crawler/crawl_sjz_xzspj.py')
m = importlib.util.module_from_spec(spec)
spec.loader.exec_module(m)

SITE = '石家庄市行政审批局-公告公示'
SEARCH_DB = '/root/search.db'

conn = sqlite3.connect(SEARCH_DB)
cur = conn.cursor()
cur.execute("SELECT id, page_url, title FROM gov_raw WHERE site_name = ? ORDER BY publish_date DESC", (SITE,))
rows = cur.fetchall()
print(f'Total records: {len(rows)}')

ok = fail = 0
for rid, url, title in rows:
    body = m.fetch_detail(url)
    if not body:
        print(f'  FAIL: {title[:40]}')
        fail += 1
        continue
    # 判断是否已 HTML 化
    is_html = ('<p>' in body) or ('<table' in body)
    try:
        cur.execute("UPDATE gov_raw SET content = ? WHERE id = ?", (body, rid))
        conn.commit()
        ok += 1
        print(f'  OK[{ok}]: {title[:40]} len={len(body)} html={is_html}')
    except Exception as e:
        conn.rollback()
        print(f'  DBERR: {title[:40]} {str(e)[:50]}')
        fail += 1
    time.sleep(0.8)

# FTS 同步更新 summary
cur.execute(
    """UPDATE gov_search SET summary = (SELECT substr(content,1,500) FROM gov_raw WHERE gov_raw.id = gov_search.rowid)
       WHERE rowid IN (SELECT id FROM gov_raw WHERE site_name = ?)""",
    (SITE,),
)
conn.commit()
conn.close()
print(f'\nDONE. OK: {ok}, FAIL: {fail}')
