Changeset View
Changeset View
Standalone View
Standalone View
swh/search/in_memory.py
Show First 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | def origin_search( | ||||
self, | self, | ||||
*, | *, | ||||
url_pattern: Optional[str] = None, | url_pattern: Optional[str] = None, | ||||
metadata_pattern: Optional[str] = None, | metadata_pattern: Optional[str] = None, | ||||
with_visit: bool = False, | with_visit: bool = False, | ||||
visit_types: Optional[List[str]] = None, | visit_types: Optional[List[str]] = None, | ||||
page_token: Optional[str] = None, | page_token: Optional[str] = None, | ||||
nb_visit: int = None, | nb_visit: int = None, | ||||
last_visit_date: str = None, | |||||
limit: int = 50, | limit: int = 50, | ||||
) -> PagedResult[MinimalOriginDict]: | ) -> PagedResult[MinimalOriginDict]: | ||||
hits: Iterator[Dict[str, Any]] = ( | hits: Iterator[Dict[str, Any]] = ( | ||||
self._origins[id_] | self._origins[id_] | ||||
for id_ in self._origin_ids | for id_ in self._origin_ids | ||||
if not self._origins[id_].get("blocklisted") | if not self._origins[id_].get("blocklisted") | ||||
) | ) | ||||
Show All 37 Lines | ) -> PagedResult[MinimalOriginDict]: | ||||
) | ) | ||||
next_page_token: Optional[str] = None | next_page_token: Optional[str] = None | ||||
if with_visit: | if with_visit: | ||||
hits = filter(lambda o: o.get("has_visits"), hits) | hits = filter(lambda o: o.get("has_visits"), hits) | ||||
if nb_visit: | if nb_visit: | ||||
hits = filter(lambda o: o.get("nb_visit") == nb_visit, hits) | hits = filter(lambda o: o.get("nb_visit") == nb_visit, hits) | ||||
if last_visit_date: | |||||
hits = filter(lambda o: o.get("last_visit_date") == last_visit_date, hits) | |||||
if visit_types is not None: | if visit_types is not None: | ||||
visit_types_set = set(visit_types) | visit_types_set = set(visit_types) | ||||
hits = filter( | hits = filter( | ||||
lambda o: visit_types_set.intersection(o.get("visit_types", set())), | lambda o: visit_types_set.intersection(o.get("visit_types", set())), | ||||
hits, | hits, | ||||
) | ) | ||||
Show All 13 Lines |