mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-11-22 17:41:08 +00:00
Process upload and create books.
This commit is contained in:
parent
8bcd3da25e
commit
03a71b1c37
1 changed files with 25 additions and 0 deletions
|
@ -5,6 +5,7 @@ from django.http import HttpResponseBadRequest
|
|||
from django.shortcuts import redirect
|
||||
from django.template.response import TemplateResponse
|
||||
import re
|
||||
import csv
|
||||
|
||||
from fedireads import forms, models, books_manager, outgoing
|
||||
from fedireads.settings import DOMAIN
|
||||
|
@ -289,3 +290,27 @@ def delete_follow_request(request):
|
|||
outgoing.handle_outgoing_reject(requester, request.user, follow_request)
|
||||
return redirect('/user/%s' % request.user.localname)
|
||||
|
||||
def unquote_string(text):
|
||||
match = re.match(r'="([^"]*)"', text)
|
||||
if match:
|
||||
return match.group(1)
|
||||
else:
|
||||
return text
|
||||
|
||||
import itertools
|
||||
from io import TextIOWrapper
|
||||
|
||||
@login_required
|
||||
def import_data(request):
|
||||
form = forms.ImportForm(request.POST, request.FILES)
|
||||
if form.is_valid():
|
||||
reader = csv.DictReader(TextIOWrapper(request.FILES['csv_file'], encoding=request.encoding))
|
||||
for line in itertools.islice(reader, 10):
|
||||
isbn = unquote_string(line['ISBN13'])
|
||||
print(line['Title'], isbn, line['Exclusive Shelf'])
|
||||
search_results = books_manager.search(isbn)
|
||||
if search_results:
|
||||
book = books_manager.get_or_create_book(search_results[0].key)
|
||||
return HttpResponse('thanks')
|
||||
else:
|
||||
return HttpResponseBadRequest()
|
||||
|
|
Loading…
Reference in a new issue