epub covers
[librarian.git] / librarian / formats / cover / evens / __init__.py
1 # -*- coding: utf-8 -*-
2 #
3 # This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
4 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
5 #
6 import urllib
7 from urllib2 import urlopen, URLError
8
9 from librarian import DCNS, BuildError
10 from .. import Cover
11
12
13 class EvensCover(Cover):
14     format_name = u"Evens cover image"
15     width = 1024
16     height = 1365
17     author_top = 900
18     title_top = 30
19     logo_bottom = 100
20
21     def __init__(self, doc, format=None, width=None, height=None):
22         super(EvensCover, self).__init__(doc, format=format, width=width, height=height)
23         self.doc = doc
24
25     def set_images(self, ctx):
26         cover_url = self.doc.meta.get(DCNS('relation.coverimage.url'))[0]
27         if cover_url.startswith('file://'):
28             cover_url = ctx.files_path + urllib.quote(cover_url[7:])
29         try:
30             self.background_img = urlopen(cover_url)
31         except URLError:
32             raise BuildError('Cannot open the cover image: %s' % cover_url)
33
34         if getattr(ctx, 'cover_logo', None):
35             self.logo_width = 150
36             self.logo_file = urlopen(ctx.cover_logo)