#!/usr/bin/env python3 """Clear all news data but keep feed_state rows intact.""" import sqlite3 import sys from pathlib import Path DB_PATH = Path(__file__).resolve().parent.parent / "data" / "news.sqlite" if len(sys.argv) > 1: DB_PATH = Path(sys.argv[1]) if not DB_PATH.exists(): print(f"DB not found: {DB_PATH}", file=sys.stderr) sys.exit(1) TABLES_TO_CLEAR = [ "cluster_entities", "cluster_keywords", "entity_metadata", "clusters", "meta", ] conn = sqlite3.connect(str(DB_PATH)) for table in TABLES_TO_CLEAR: conn.execute(f"DELETE FROM {table}") conn.commit() # Report remaining feed_state count cur = conn.execute("SELECT COUNT(*) FROM feed_state") feed_count = cur.fetchone()[0] conn.close() print(f"Done. Cleared: {', '.join(TABLES_TO_CLEAR)}. feed_state rows kept: {feed_count}")