X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/0da29a22a23a90561df3d201a299f3007c84d524..5913c54d19b8f6775633176032161d49f9b2f1aa:/apps/cover/views.py?ds=inline diff --git a/apps/cover/views.py b/apps/cover/views.py deleted file mode 100644 index 29fd117a..00000000 --- a/apps/cover/views.py +++ /dev/null @@ -1,66 +0,0 @@ -# Create your views here. -import os.path -from django.conf import settings -from django.http import HttpResponse, Http404 -from catalogue.models import Chunk -from django.views.decorators.http import require_POST -from django.views.decorators.csrf import csrf_exempt -from django.shortcuts import render - - -PREVIEW_SIZE = (216, 300) - -def preview(request, book, chunk=None, rev=None): - """Creates a cover image. - - If chunk and rev number are given, use version from given revision. - If rev is not given, use publishable version. - """ - import Image - from librarian.cover import WLCover - from librarian.dcparser import BookInfo - - chunk = Chunk.get(book, chunk) - if rev is not None: - try: - revision = chunk.at_revision(rev) - except Chunk.change_model.DoesNotExist: - raise Http404 - else: - revision = chunk.publishable() - if revision is None: - raise Http404 - xml = revision.materialize().encode('utf-8') - - info = BookInfo.from_string(xml) - cover = WLCover(info) - response = HttpResponse(mimetype=cover.mime_type()) - image = cover.image().resize(PREVIEW_SIZE, Image.ANTIALIAS) - image.save(response, cover.format) - return response - - -@csrf_exempt -@require_POST -def preview_from_xml(request): - from hashlib import sha1 - import Image - from os import makedirs - from lxml import etree - from librarian.cover import WLCover - from librarian.dcparser import BookInfo - - xml = request.POST['xml'] - info = BookInfo.from_string(xml.encode('utf-8')) - coverid = sha1(etree.tostring(info.to_etree())).hexdigest() - cover = WLCover(info) - - cover_dir = 'cover/preview' - try: - makedirs(os.path.join(settings.MEDIA_ROOT, cover_dir)) - except OSError: - pass - fname = os.path.join(cover_dir, "%s.%s" % (coverid, cover.ext())) - image = cover.image().resize(PREVIEW_SIZE, Image.ANTIALIAS) - image.save(os.path.join(settings.MEDIA_ROOT, fname)) - return HttpResponse(os.path.join(settings.MEDIA_URL, fname))