X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/3af75386ed5c78b09c4669442a2422a388e949c3..d6f190d50127a1aca615ff505a8a2595b4cfb7de:/src/isbn/management/commands/eisbn_csv.py?ds=inline diff --git a/src/isbn/management/commands/eisbn_csv.py b/src/isbn/management/commands/eisbn_csv.py new file mode 100644 index 000000000..9d9d83b84 --- /dev/null +++ b/src/isbn/management/commands/eisbn_csv.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# +import csv +import sys +from django.core.management.base import BaseCommand +from django.utils.timezone import localtime + +from catalogue.models import Book +from isbn.utils import isbn_data, FORMATS, FORMATS_WITH_CHILDREN + + +class Command(BaseCommand): + + def handle(self, *args, **options): + slugs = [line.strip() for line in sys.stdin] + writer = csv.writer(sys.stdout) + all_books = Book.objects.filter(slug__in=slugs) + books_without_children = all_books.filter(children=None) + for file_format in FORMATS: + if file_format in FORMATS_WITH_CHILDREN: + books = all_books + else: + books = books_without_children + for book in books: + date = localtime(book.created_at).date().isoformat() + data = isbn_data(book.wldocument(), file_format) + row = [ + data['imprint'], + data['title'], + data['subtitle'], + data['year'], + data['part_number'], + date, + date, + data['name'], + data['corporate_name'], + data['edition_type'], + data['edition_number'], + data['product_form'], + data['product_form_detail'], + data['language'], + book.slug, + file_format, + ] + writer.writerow([s.encode('utf-8') for s in row])