Changeset View
Changeset View
Standalone View
Standalone View
swh/search/journal_client.py
# Copyright (C) 2018-2021 The Software Heritage developers | # Copyright (C) 2018-2021 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import logging | import logging | ||||
from typing import Dict | from typing import Dict, Optional | ||||
from swh.model.model import TargetType | from swh.model.model import TargetType | ||||
from swh.storage.algos.snapshot import snapshot_get_all_branches | from swh.storage.algos.snapshot import snapshot_get_all_branches | ||||
from swh.storage.interface import StorageInterface | from swh.storage.interface import StorageInterface | ||||
EXPECTED_MESSAGE_TYPES = { | EXPECTED_MESSAGE_TYPES = { | ||||
"origin", | "origin", | ||||
"origin_visit", | "origin_visit", | ||||
▲ Show 20 Lines • Show All 84 Lines • ▼ Show 20 Lines | search.origin_update( | ||||
for visit in visits | for visit in visits | ||||
] | ] | ||||
) | ) | ||||
def process_origin_visit_statuses(visit_statuses, search, storage): | def process_origin_visit_statuses(visit_statuses, search, storage): | ||||
logging.debug("processing origin visit statuses %r", visit_statuses) | logging.debug("processing origin visit statuses %r", visit_statuses) | ||||
def hexify(b: Optional[bytes]) -> Optional[str]: | |||||
if b is None: | |||||
return None | |||||
return b.hex() | |||||
full_visit_status = [ | full_visit_status = [ | ||||
{ | { | ||||
"url": visit_status["origin"], | "url": visit_status["origin"], | ||||
"has_visits": True, | "has_visits": True, | ||||
"nb_visits": visit_status["visit"], | "nb_visits": visit_status["visit"], | ||||
"snapshot_id": visit_status.get("snapshot"), | "snapshot_id": hexify(visit_status.get("snapshot")), | ||||
"last_visit_date": visit_status["date"].isoformat(), | "last_visit_date": visit_status["date"].isoformat(), | ||||
"last_eventful_visit_date": visit_status["date"].isoformat(), | "last_eventful_visit_date": visit_status["date"].isoformat(), | ||||
**fetch_last_revision_release_date(visit_status.get("snapshot"), storage), | **fetch_last_revision_release_date(visit_status.get("snapshot"), storage), | ||||
} | } | ||||
for visit_status in visit_statuses | for visit_status in visit_statuses | ||||
if visit_status["status"] == "full" | if visit_status["status"] == "full" | ||||
] | ] | ||||
Show All 13 Lines |