1 # -*- coding: utf-8 -*-
3 # This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
4 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
7 from urllib2 import urlopen, URLError
9 from librarian import DCNS, BuildError
13 class EvensCover(Cover):
14 format_name = u"Evens cover image"
21 def set_images(self, ctx):
23 cover_url = self.doc.meta.get(DCNS('relation.coverimage.url'))[0]
25 raise BuildError('No cover specified (metadata field relation.coverimage.url missing)')
27 raise BuildError('No cover specified (metadata field relation.coverimage.url empty)')
28 if cover_url.startswith('file://'):
29 cover_url = ctx.files_path + urllib.quote(cover_url[7:])
30 IMG_EXT = ('png', 'jpg', 'jpeg', 'gif')
31 if '.' not in cover_url or cover_url.rsplit('.', 1)[1].lower() not in IMG_EXT:
32 raise BuildError('Wrong cover format, should be PNG, JPG or GIF')
34 self.background_img = urlopen(cover_url)
36 raise BuildError('Cannot open the cover image: %s' % cover_url)
38 if getattr(ctx, 'cover_logo', None):
40 self.logo_file = urlopen(ctx.cover_logo)