Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/in_memory.py
Show First 20 Lines • Show All 1,527 Lines • ▼ Show 20 Lines | def origin_metadata_add(self, origin_id, ts, provider, tool, metadata, | ||||
Args: | Args: | ||||
origin_id (int): the origin's id for which the metadata is added | origin_id (int): the origin's id for which the metadata is added | ||||
ts (datetime): timestamp of the found metadata | ts (datetime): timestamp of the found metadata | ||||
provider: id of the provider of metadata (ex:'hal') | provider: id of the provider of metadata (ex:'hal') | ||||
tool: id of the tool used to extract metadata | tool: id of the tool used to extract metadata | ||||
metadata (jsonb): the metadata retrieved at the time and location | metadata (jsonb): the metadata retrieved at the time and location | ||||
""" | """ | ||||
if isinstance(origin_id, str): | |||||
origin = self.origin_get({'url': origin_id}) | |||||
if not origin: | |||||
return | |||||
origin_id = origin['id'] | |||||
if isinstance(ts, str): | if isinstance(ts, str): | ||||
ts = dateutil.parser.parse(ts) | ts = dateutil.parser.parse(ts) | ||||
origin_metadata = { | origin_metadata = { | ||||
'origin_id': origin_id, | 'origin_id': origin_id, | ||||
'discovery_date': ts, | 'discovery_date': ts, | ||||
'tool_id': tool, | 'tool_id': tool, | ||||
'metadata': metadata, | 'metadata': metadata, | ||||
Show All 18 Lines | def origin_metadata_get_by(self, origin_id, provider_type=None, db=None, | ||||
- tool_id (int): metadata's extracting tool | - tool_id (int): metadata's extracting tool | ||||
- metadata (jsonb) | - metadata (jsonb) | ||||
- provider_id (int): metadata's provider | - provider_id (int): metadata's provider | ||||
- provider_name (str) | - provider_name (str) | ||||
- provider_type (str) | - provider_type (str) | ||||
- provider_url (str) | - provider_url (str) | ||||
""" | """ | ||||
if isinstance(origin_id, str): | |||||
origin = self.origin_get({'url': origin_id}) | |||||
if not origin: | |||||
return | |||||
origin_id = origin['id'] | |||||
metadata = [] | metadata = [] | ||||
for item in self._origin_metadata[origin_id]: | for item in self._origin_metadata[origin_id]: | ||||
item = copy.deepcopy(item) | item = copy.deepcopy(item) | ||||
provider = self.metadata_provider_get(item['provider_id']) | provider = self.metadata_provider_get(item['provider_id']) | ||||
for attr_name in ('name', 'type', 'url'): | for attr_name in ('name', 'type', 'url'): | ||||
item['provider_' + attr_name] = \ | item['provider_' + attr_name] = \ | ||||
provider['provider_' + attr_name] | provider['provider_' + attr_name] | ||||
metadata.append(item) | metadata.append(item) | ||||
▲ Show 20 Lines • Show All 148 Lines • Show Last 20 Lines |