diff --git a/bookwyrm/importers/importer.py b/bookwyrm/importers/importer.py index db13b652..ca63ae4a 100644 --- a/bookwyrm/importers/importer.py +++ b/bookwyrm/importers/importer.py @@ -25,7 +25,7 @@ class Importer: ("title", ["title"]), ("authors", ["author", "authors", "primary author"]), ("isbn_10", ["isbn10", "isbn"]), - ("isbn_13", ["isbn13", "isbn"]), + ("isbn_13", ["isbn13", "isbn", "isbns"]), ("shelf", ["shelf", "exclusive shelf", "read status"]), ("review_name", ["review name"]), ("review_body", ["my review", "review"]), diff --git a/bookwyrm/importers/librarything_import.py b/bookwyrm/importers/librarything_import.py index d6426de6..cff6ba7d 100644 --- a/bookwyrm/importers/librarything_import.py +++ b/bookwyrm/importers/librarything_import.py @@ -12,10 +12,12 @@ class LibrarythingImporter(Importer): def normalize_row(self, entry, mappings): # pylint: disable=no-self-use """use the dataclass to create the formatted row of data""" - normalized = {k: entry.get(v) for k, v in mappings.items()} - for date_field in self.date_fields: - date = normalized[date_field] - normalized[date_field] = re.sub(r"\[|\]", "", date) + remove_brackets = lambda v: re.sub(r"\[|\]", "", v) if v else None + normalized = { + k: remove_brackets(entry.get(v)) for k, v in mappings.items() + } + isbn_13 = normalized["isbn_13"].split(', ') + normalized["isbn_13"] = isbn_13[1] if len(isbn_13) > 0 else None return normalized def get_shelf(self, normalized_row): diff --git a/bookwyrm/tests/importers/test_librarything_import.py b/bookwyrm/tests/importers/test_librarything_import.py index 804118ef..f5d8d669 100644 --- a/bookwyrm/tests/importers/test_librarything_import.py +++ b/bookwyrm/tests/importers/test_librarything_import.py @@ -56,6 +56,9 @@ class LibrarythingImport(TestCase): self.assertEqual(len(import_items), 3) self.assertEqual(import_items[0].index, 0) self.assertEqual(import_items[0].data["Book Id"], "5498194") + self.assertEqual(import_items[0].normalized_data["isbn_13"], "9782070291342") + self.assertEqual(import_items[0].normalized_data["isbn_10"], "2070291340") + self.assertEqual(import_items[1].index, 1) self.assertEqual(import_items[1].data["Book Id"], "5015319") self.assertEqual(import_items[2].index, 2)