MCPcopy Create free account
hub / github.com/OpenRaiser/PaperFlow / sync_daily_notes_from_reports

Function sync_daily_notes_from_reports

agents/reading-agent/main.py:2202–2248  ·  view source on GitHub ↗

Create or refresh Daily Notes from existing reading-report records.

(
    *,
    user_id: str,
    reports: Iterable[Dict[str, Any]],
)

Source from the content-addressed store, hash-verified

2200
2201
2202def sync_daily_notes_from_reports(
2203 *,
2204 user_id: str,
2205 reports: Iterable[Dict[str, Any]],
2206) -> Dict[str, Any]:
2207 """Create or refresh Daily Notes from existing reading-report records."""
2208 scanned = 0
2209 synced = 0
2210 daily_notes: List[str] = []
2211 report_paths: List[str] = []
2212 errors: List[str] = []
2213
2214 for report in reports or []:
2215 scanned += 1
2216 metadata = dict(report.get("metadata") or {})
2217 report_user = _clean_text(metadata.get("user_id") or report.get("user_id"))
2218 if user_id and report_user and report_user != user_id:
2219 continue
2220 report_content = str(report.get("markdown") or "")
2221 if not report_content.strip():
2222 continue
2223 paper = _report_paper_from_metadata(metadata, report)
2224 payload = _report_payload_from_metadata(metadata, report_content, report)
2225 try:
2226 saved_path = _save_reading_report_markdown(
2227 user_id=user_id or report_user,
2228 paper=paper,
2229 report_content=report_content,
2230 report_payload=payload,
2231 doc_url=metadata.get("doc_url") or report.get("doc_url"),
2232 doc_token=metadata.get("doc_token") or report.get("doc_token"),
2233 )
2234 synced += 1
2235 report_paths.append(saved_path)
2236 daily_note = _obsidian_daily_note_path(Path(saved_path), paper)
2237 if daily_note is not None:
2238 daily_notes.append(str(daily_note))
2239 except Exception as exc:
2240 errors.append(f"{paper.get('title') or report.get('report_path')}: {exc}")
2241
2242 return {
2243 "scanned": scanned,
2244 "synced": synced,
2245 "daily_notes": sorted(set(daily_notes)),
2246 "report_paths": sorted(set(report_paths)),
2247 "errors": errors[:8],
2248 }
2249
2250
2251def refresh_daily_note_files(

Callers

nothing calls this directly

Calls 6

getMethod · 0.80
_clean_textFunction · 0.70

Tested by

no test coverage detected