mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-10-31 22:19:00 +00:00
30 lines
975 B
Python
30 lines
975 B
Python
""" handle reading a csv from calibre """
|
|
from typing import Any, Optional
|
|
|
|
from bookwyrm.models import Shelf
|
|
|
|
from . import Importer
|
|
|
|
|
|
class CalibreImporter(Importer):
|
|
"""csv downloads from Calibre"""
|
|
|
|
service = "Calibre"
|
|
|
|
def __init__(self, *args: Any, **kwargs: Any):
|
|
# Add timestamp to row_mappings_guesses for date_added to avoid
|
|
# integrity error
|
|
row_mappings_guesses = []
|
|
|
|
for field, mapping in self.row_mappings_guesses:
|
|
if field in ("date_added",):
|
|
row_mappings_guesses.append((field, mapping + ["timestamp"]))
|
|
else:
|
|
row_mappings_guesses.append((field, mapping))
|
|
|
|
self.row_mappings_guesses = row_mappings_guesses
|
|
super().__init__(*args, **kwargs)
|
|
|
|
def get_shelf(self, normalized_row: dict[str, Optional[str]]) -> Optional[str]:
|
|
# Calibre export does not indicate which shelf to use. Use a default one for now
|
|
return Shelf.TO_READ
|