Stylistic changes for goodreads import

This commit is contained in:
Mouse Reeve 2020-03-27 09:33:31 -07:00
parent d41a420355
commit 09f030db88
3 changed files with 18 additions and 8 deletions

View file

@ -158,6 +158,7 @@ def handle_unshelve(user, book, shelf):
def handle_import_books(user, items):
''' process a goodreads csv and then post about it '''
new_books = []
for item in items:
if item.shelf:
@ -165,7 +166,8 @@ def handle_import_books(user, items):
identifier=item.shelf,
user=user
)
shelf, created = models.ShelfBook.objects.get_or_create(book=item.book, shelf=desired_shelf, added_by=user)
_, created = models.ShelfBook.objects.get_or_create(
book=item.book, shelf=desired_shelf, added_by=user)
if created:
new_books.append(item.book)
activity = activitypub.get_add(user, item.book, desired_shelf)
@ -178,7 +180,8 @@ def handle_import_books(user, items):
status.status_type = 'Update'
status.save()
create_activity = activitypub.get_create(user, activitypub.get_status(status))
create_activity = activitypub.get_create(
user, activitypub.get_status(status))
broadcast(user, create_activity, get_recipients(user, 'public'))

View file

@ -1,10 +1,12 @@
{% extends 'layout.html' %}
{% block content %}
<div id="content">
<div class="content-container">
<h2>Import Books from GoodReads</h2>
<form name="import" action="/import_data/" method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ import_form.as_p }}
<button type="submit">Import</button>
<small>Hang tight, this may take a minute!</small>
</form>
</div>
{% endblock %}

View file

@ -6,6 +6,7 @@ from django.contrib.auth.decorators import login_required
from django.http import HttpResponseBadRequest
from django.shortcuts import redirect
from django.template.response import TemplateResponse
import re
from fedireads import forms, models, books_manager, outgoing
from fedireads.settings import DOMAIN
@ -290,14 +291,18 @@ def delete_follow_request(request):
outgoing.handle_outgoing_reject(requester, request.user, follow_request)
return redirect('/user/%s' % request.user.localname)
@login_required
def import_data(request):
''' ingest a goodreads csv '''
form = forms.ImportForm(request.POST, request.FILES)
if form.is_valid():
results = []
failures = []
for item in GoodreadsCsv(TextIOWrapper(request.FILES['csv_file'], encoding=request.encoding)):
for item in GoodreadsCsv(TextIOWrapper(
request.FILES['csv_file'],
encoding=request.encoding)):
if item.book:
results.append(item)
else:
@ -306,9 +311,9 @@ def import_data(request):
outgoing.handle_import_books(request.user, results)
if failures:
return TemplateResponse(request, 'import_results.html', {
'success_count': len(results),
'failures': failures,
})
'success_count': len(results),
'failures': failures,
})
else:
return redirect('/')
else: