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

Method check

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

Source from the content-addressed store, hash-verified

894 return new_items, domain_filtered, title_filtered
895
896 def check(self, source_id: str, source: dict) -> Optional[dict]:
897 query = source.get("google_query")
898 if not query or not self.available:
899 if not self.available:
900 print(f" SKIP (Vertex AI Search not configured)")
901 return None
902 skip_domain = source.get("skip_domain_filter", False)
903 site_domain = None if skip_domain else self._extract_site_domain(query)
904 title_filter = source.get("title_filter")
905 exclude_domains = source.get("exclude_domains")
906 prev = self.state.get(source_id, {})
907 prev_titles = set(prev.get("seen_titles", []))
908
909 items = self.search(query)
910 new_items, domain_filtered, tf_count = self._filter_items(
911 items, prev_titles, site_domain, title_filter, exclude_domains)
912
913 if not new_items and domain_filtered > 0 and site_domain:
914 fallback_query = re.sub(r"site:\S+\s*", "", query).strip()
915 print(f" INFO: {domain_filtered} results from wrong domain; "
916 f"retrying without site: prefix")
917 items = self.search(fallback_query)
918 new_items, domain_filtered, tf_count = self._filter_items(
919 items, prev_titles, site_domain, title_filter, exclude_domains)
920
921 if domain_filtered:
922 print(f" INFO: {domain_filtered} results filtered by domain ({site_domain})")
923 if tf_count:
924 print(f" INFO: {tf_count} results filtered by title_filter")
925
926 all_titles = list(prev_titles) + [i["title"] for i in new_items]
927 self.state[source_id] = {"url": source["url"],
928 "last_checked": datetime.now().isoformat(),
929 "seen_titles": all_titles[-100:]}
930 if new_items and (prev_titles or self.seed_mode):
931 if self.seed_mode and not prev_titles:
932 new_items = new_items[:10]
933 print(f" INFO: Seed mode -- returning top {len(new_items)} results as initial news")
934 result = _make_update(source_id, source, "vertex_ai_search",
935 f"{len(new_items)} new result(s) via Vertex AI Search")
936 result["new_items"] = new_items
937 result["query"] = query
938 return result
939 elif not prev_titles:
940 if not new_items and items:
941 print(f" INFO: All {len(items)} results filtered out (domain/title mismatch)")
942 else:
943 print(f" INFO: Baseline established ({len(items)} results indexed)")
944 return None
945
946
947# ---------------------------------------------------------------------------

Callers

nothing calls this directly

Calls 5

_extract_site_domainMethod · 0.95
searchMethod · 0.95
_filter_itemsMethod · 0.95
getMethod · 0.80
_make_updateFunction · 0.70

Tested by

no test coverage detected