MCPcopy Create free account
hub / github.com/RASAAS/docmcp-knowledge / check

Method check

scripts/fetch_updates.py:2070–2118  ·  view source on GitHub ↗
(self, source_id: str, source: dict)

Source from the content-addressed store, hash-verified

2068 self.seed_mode = seed_mode
2069
2070 def check(self, source_id: str, source: dict) -> Optional[dict]:
2071 url = source["url"]
2072 prev = self.state.get(source_id, {})
2073 prev_titles = set(prev.get("seen_titles", []))
2074
2075 try:
2076 resp = self.session.get(url, timeout=30)
2077 resp.raise_for_status()
2078 except Exception as e:
2079 print(f" ERROR PMDA: {e}")
2080 return None
2081
2082 entries = self._parse_table_page(resp.text, url)
2083 if not entries:
2084 print(f" WARNING: No entries from PMDA page ({url})")
2085 return None
2086
2087 print(f" INFO: Parsed {len(entries)} entries from PMDA page")
2088
2089 new_items = []
2090 all_titles = list(prev_titles)
2091
2092 for entry in entries:
2093 title = entry.get("title", "")
2094 if not title or title in prev_titles:
2095 continue
2096 all_titles.append(title)
2097 new_items.append(entry)
2098
2099 self.state[source_id] = {
2100 "url": url,
2101 "last_checked": datetime.now().isoformat(),
2102 "seen_titles": all_titles[-300:],
2103 }
2104
2105 if new_items and (prev_titles or self.seed_mode):
2106 if self.seed_mode and not prev_titles:
2107 new_items = new_items[:10]
2108 print(f" INFO: Seed mode -- returning top {len(new_items)} entries as initial news")
2109 result = _make_update(
2110 source_id, source, "pmda_page",
2111 f"{len(new_items)} new PMDA update(s) detected"
2112 )
2113 result["new_items"] = new_items
2114 return result
2115 elif not prev_titles:
2116 print(f" INFO: Baseline established ({len(entries)} PMDA entries)")
2117
2118 return None
2119
2120 def _parse_table_page(self, html: str, base_url: str) -> list[dict]:
2121 """Parse PMDA table-based pages (safety info, precautions, alerts)."""

Callers

nothing calls this directly

Calls 3

_parse_table_pageMethod · 0.95
getMethod · 0.80
_make_updateFunction · 0.70

Tested by

no test coverage detected