#!/usr/bin/env python3
"""Check nanpu coverage"""
import json, sqlite3

# Check config
with open("/root/gov_crawler/daily_crawl_config.json") as f:
    config = json.load(f)
for e in config:
    name = e.get("name","")
    script = e.get("script","")
    if "nanpu" in script.lower() or "南堡" in name or "nanpu" in name.lower():
        print(f"日跑配置: {name} → {script} {e.get('args','')} [组={e.get('group','')}]")

# Check data
conn = sqlite3.connect("/root/search.db")
c = conn.cursor()
c.execute("SELECT COUNT(*) FROM gov_raw WHERE script_name LIKE '%nanpu%'")
cnt = c.fetchone()[0]
print(f"数据总量: {cnt}条")

c.execute("SELECT COUNT(*) FROM gov_search WHERE rowid IN (SELECT id FROM gov_raw WHERE script_name LIKE '%nanpu%')")
fts = c.fetchone()[0]
print(f"FTS同步: {fts}条")

c.execute("""
    SELECT script_name, COUNT(*), MIN(publish_date), MAX(publish_date)
    FROM gov_raw 
    WHERE script_name LIKE '%nanpu%'
    GROUP BY script_name
""")
for row in c.fetchall():
    print(f"  {row[0]}: {row[1]}条 [{row[2]} ~ {row[3]}]")

# Sample quality
c.execute("""
    SELECT title, length(content), 
           CASE WHEN content LIKE '%\n\n%' THEN '分段OK' ELSE '未分段' END as quality,
           substr(content,1,80) as snippet
    FROM gov_raw 
    WHERE script_name LIKE '%nanpu%'
    ORDER BY publish_date DESC LIMIT 3
""")
print("\n最新3条正文质量:")
for row in c.fetchall():
    snippet = row[3].replace('\n', ' ') if row[3] else ''
    print(f"  {row[0][:50]}: {row[1]}chars [{row[2]}] {snippet}")

conn.close()
