From 0aef011258bb2affe3764938c5287d4fde6f83a6 Mon Sep 17 00:00:00 2001 From: Mouse Reeve Date: Wed, 29 Sep 2021 12:29:17 -0700 Subject: [PATCH] Don't use the format detail if it maps directly --- bookwyrm/connectors/abstract_connector.py | 8 ++++++++ bookwyrm/connectors/openlibrary.py | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/bookwyrm/connectors/abstract_connector.py b/bookwyrm/connectors/abstract_connector.py index 8d2e9f15..17525349 100644 --- a/bookwyrm/connectors/abstract_connector.py +++ b/bookwyrm/connectors/abstract_connector.py @@ -326,3 +326,11 @@ def infer_physical_format(format_text): if not matches: return None return matches[0] + +def unique_physical_format(format_text): + """ only store the format if it isn't diretly in the format mappings""" + format_text = format_text.lower() + if format_text in format_mappings: + # try a direct match, so saving this would be redundant + return None + return format_text diff --git a/bookwyrm/connectors/openlibrary.py b/bookwyrm/connectors/openlibrary.py index 7f724d74..5177f665 100644 --- a/bookwyrm/connectors/openlibrary.py +++ b/bookwyrm/connectors/openlibrary.py @@ -3,7 +3,7 @@ import re from bookwyrm import models from .abstract_connector import AbstractConnector, SearchResult, Mapping -from .abstract_connector import get_data, infer_physical_format +from .abstract_connector import get_data, infer_physical_format, unique_physical_format from .connector_manager import ConnectorException from .openlibrary_languages import languages @@ -44,7 +44,7 @@ class Connector(AbstractConnector): Mapping("publishedDate", remote_field="publish_date"), Mapping("pages", remote_field="number_of_pages"), Mapping("physicalFormat", remote_field="physical_format", formatter=infer_physical_format), - Mapping("physicalFormatDetail", remote_field="physical_format"), + Mapping("physicalFormatDetail", remote_field="physical_format", formatter=unique_physical_format), Mapping("publishers"), ]