Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/cassandra/storage.py
Show First 20 Lines • Show All 850 Lines • ▼ Show 20 Lines | ) -> Iterable[Dict[str, Any]]: | ||||
rows = self._cql_runner.origin_visit_get(origin, last_visit, limit, order) | rows = self._cql_runner.origin_visit_get(origin, last_visit, limit, order) | ||||
for row in rows: | for row in rows: | ||||
visit = self._format_origin_visit_row(row) | visit = self._format_origin_visit_row(row) | ||||
yield self._origin_visit_apply_last_status(visit) | yield self._origin_visit_apply_last_status(visit) | ||||
def origin_visit_find_by_date( | def origin_visit_find_by_date( | ||||
self, origin: str, visit_date: datetime.datetime | self, origin: str, visit_date: datetime.datetime | ||||
) -> Optional[Dict[str, Any]]: | ) -> Optional[OriginVisit]: | ||||
# Iterator over all the visits of the origin | # Iterator over all the visits of the origin | ||||
# This should be ok for now, as there aren't too many visits | # This should be ok for now, as there aren't too many visits | ||||
# per origin. | # per origin. | ||||
rows = list(self._cql_runner.origin_visit_get_all(origin)) | rows = list(self._cql_runner.origin_visit_get_all(origin)) | ||||
def key(visit): | def key(visit): | ||||
dt = visit.date.replace(tzinfo=datetime.timezone.utc) - visit_date | dt = visit.date.replace(tzinfo=datetime.timezone.utc) - visit_date | ||||
return (abs(dt), -visit.visit) | return (abs(dt), -visit.visit) | ||||
if rows: | if rows: | ||||
row = min(rows, key=key) | return converters.row_to_visit(min(rows, key=key)) | ||||
visit = self._format_origin_visit_row(row) | |||||
return self._origin_visit_apply_last_status(visit) | |||||
return None | return None | ||||
def origin_visit_get_by(self, origin: str, visit: int) -> Optional[Dict[str, Any]]: | def origin_visit_get_by(self, origin: str, visit: int) -> Optional[Dict[str, Any]]: | ||||
row = self._cql_runner.origin_visit_get_one(origin, visit) | row = self._cql_runner.origin_visit_get_one(origin, visit) | ||||
if row: | if row: | ||||
visit_ = self._format_origin_visit_row(row) | visit_ = self._format_origin_visit_row(row) | ||||
return self._origin_visit_apply_last_status(visit_) | return self._origin_visit_apply_last_status(visit_) | ||||
return None | return None | ||||
▲ Show 20 Lines • Show All 280 Lines • Show Last 20 Lines |