diff --git a/bookwyrm/importers/importer.py b/bookwyrm/importers/importer.py index f6abef0ee..8acfb1473 100644 --- a/bookwyrm/importers/importer.py +++ b/bookwyrm/importers/importer.py @@ -35,6 +35,7 @@ class Importer: "date_started": ["date started", "started"], "date_finished": ["date finished", "last date read", "date read", "finished"], } + date_fields = ["date_added", "date_started", "date_finished"] def create_job(self, user, csv_file, include_reviews, privacy): """check over a csv and creates a database entry for the job""" diff --git a/bookwyrm/importers/librarything_import.py b/bookwyrm/importers/librarything_import.py index 3d42e5392..12d841e9e 100644 --- a/bookwyrm/importers/librarything_import.py +++ b/bookwyrm/importers/librarything_import.py @@ -1,4 +1,5 @@ """ handle reading a tsv from librarything """ +import re from . import Importer @@ -8,3 +9,11 @@ class LibrarythingImporter(Importer): service = "LibraryThing" delimiter = "\t" encoding = "ISO-8859-1" + + 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) + return normalized