X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/f3339efe0d7ffa1199a113108c0e2f6f6b07afe2..5913c54d19b8f6775633176032161d49f9b2f1aa:/apps/cover/views.py?ds=sidebyside diff --git a/apps/cover/views.py b/apps/cover/views.py deleted file mode 100644 index 19d81c22..00000000 --- a/apps/cover/views.py +++ /dev/null @@ -1,97 +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)) - - -def flickr(request): - url = request.POST.get('flickr_url') - if url: - import re - from urllib2 import urlopen - - html = urlopen(url).read() - match = re.search(r'Some rights reserved', html) - if match: - license_url = match.group(1) - - re_license = re.compile(r'http://creativecommons.org/licenses/([^/]*)/([^/]*)/.*') - m = re_license.match(license_url) - if m: - license_name = 'CC %s %s' % (m.group(1).upper(), m.group(2)) - - m = re.search(r'By ([^<]*)', html) - if m: - author = m.group(1) - - url_size = url.rstrip('/') + '/sizes/o/' - html = urlopen(url_size).read() - m = re.search(r'
\s*