X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/d05a1d784f2f0dbad6839c672cae8226d1b0fa9d..e01dee1eda68946acf73e43f2c54b3c730514a21:/apps/catalogue/ebook_utils.py?ds=sidebyside diff --git a/apps/catalogue/ebook_utils.py b/apps/catalogue/ebook_utils.py new file mode 100644 index 00000000..5961b637 --- /dev/null +++ b/apps/catalogue/ebook_utils.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +from catalogue.models import Book +from librarian import DocProvider +from django.http import HttpResponse + + +class RedakcjaDocProvider(DocProvider): + """Used for getting books' children.""" + + def by_slug(self, slug): + return Book.objects.get(dc_slug=slug).xml_file + + +def serve_file(file_path, name, mime_type): + def read_chunks(f, size=8192): + chunk = f.read(size) + while chunk: + yield chunk + chunk = f.read(size) + + response = HttpResponse(mimetype=mime_type) + response['Content-Disposition'] = 'attachment; filename=%s' % name + with open(file_path) as f: + for chunk in read_chunks(f): + response.write(chunk) + return response