Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/in_memory.py
Show First 20 Lines • Show All 859 Lines • ▼ Show 20 Lines | def _origin_visit_get_updated(self, origin: str, visit_id: int) -> OriginVisit: | ||||
# override with the last update | # override with the last update | ||||
**visit_update.to_dict(), | **visit_update.to_dict(), | ||||
# but keep the date of the creation of the origin visit | # but keep the date of the creation of the origin visit | ||||
"date": visit.date, | "date": visit.date, | ||||
} | } | ||||
) | ) | ||||
def origin_visit_get( | def origin_visit_get( | ||||
self, origin: str, last_visit: Optional[int] = None, limit: Optional[int] = None | self, | ||||
origin: str, | |||||
last_visit: Optional[int] = None, | |||||
limit: Optional[int] = None, | |||||
order: str = "asc", | |||||
) -> Iterable[Dict[str, Any]]: | ) -> Iterable[Dict[str, Any]]: | ||||
order = order.lower() | |||||
assert order in ["asc", "desc"] | |||||
origin_url = self._get_origin_url(origin) | origin_url = self._get_origin_url(origin) | ||||
if origin_url in self._origin_visits: | if origin_url in self._origin_visits: | ||||
visits = self._origin_visits[origin_url] | visits = self._origin_visits[origin_url] | ||||
visits = sorted(visits, key=lambda v: v.visit, reverse=(order == "desc")) | |||||
if last_visit is not None: | if last_visit is not None: | ||||
visits = visits[last_visit:] | if order == "asc": | ||||
visits = [v for v in visits if v.visit > last_visit] | |||||
else: | |||||
visits = [v for v in visits if v.visit < last_visit] | |||||
if limit is not None: | if limit is not None: | ||||
visits = visits[:limit] | visits = visits[:limit] | ||||
for visit in visits: | for visit in visits: | ||||
if not visit: | if not visit: | ||||
continue | continue | ||||
visit_id = visit.visit | visit_id = visit.visit | ||||
visit_update = self._origin_visit_get_updated(origin_url, visit_id) | visit_update = self._origin_visit_get_updated(origin_url, visit_id) | ||||
▲ Show 20 Lines • Show All 319 Lines • Show Last 20 Lines |