Files
blog-app/repositories/watchdog_repo.py
2026-08-17 17:11:27 +08:00

30 lines
827 B
Python

"""Watchdog report queries (read against watchdog.db). No Flask imports."""
import json
import logging
import sqlite3
logger = logging.getLogger(__name__)
def list_reports(watchdog_conn, days=7):
"""Return recent watchdog reports; rows include parsed `meta` dict.
Raises sqlite3.Error on read failure — the caller (service layer) decides
how to degrade.
"""
cur = watchdog_conn.execute(
"SELECT date, markdown, meta_json, created_at FROM reports "
"ORDER BY date DESC LIMIT ?",
(days,),
)
reports = []
for row in cur.fetchall():
item = dict(row)
try:
item["meta"] = json.loads(item.get("meta_json") or "{}")
except (json.JSONDecodeError, TypeError):
item["meta"] = {}
reports.append(item)
return reports