1
0
Fork 0

Merge pull request #3135 from hughrun/csv

csv import and export fixes
This commit is contained in:
Mouse Reeve 2024-08-23 16:29:04 -07:00 committed by GitHub
commit 413c26bc5e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 342 additions and 24 deletions

View file

@ -16,6 +16,7 @@ from django.views import View
from bookwyrm import forms, models
from bookwyrm.importers import (
BookwyrmImporter,
BookwyrmBooksImporter,
CalibreImporter,
LibrarythingImporter,
GoodreadsImporter,
@ -69,7 +70,7 @@ class Import(View):
return TemplateResponse(request, "import/import.html", data)
def post(self, request):
"""ingest a goodreads csv"""
"""ingest a book data csv"""
site = models.SiteSettings.objects.get()
if not site.imports_enabled:
raise PermissionDenied()
@ -79,11 +80,16 @@ class Import(View):
return HttpResponseBadRequest()
include_reviews = request.POST.get("include_reviews") == "on"
create_shelves = request.POST.get("create_shelves") == "on"
privacy = request.POST.get("privacy")
source = request.POST.get("source")
importer = None
if source == "LibraryThing":
if source == "BookWyrm":
importer = BookwyrmBooksImporter()
print("BookwyrmBooksImporter")
elif source == "LibraryThing":
importer = LibrarythingImporter()
elif source == "Storygraph":
importer = StorygraphImporter()
@ -101,6 +107,7 @@ class Import(View):
TextIOWrapper(request.FILES["csv_file"], encoding=importer.encoding),
include_reviews,
privacy,
create_shelves,
)
except (UnicodeDecodeError, ValueError, KeyError):
return self.get(request, invalid=True)