X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/5c55be51e46b296d368b86375f2f4b90ea46c00b..e0e7693096469f5952eef1c5847dabc9cf797f70:/librarian/cover.py diff --git a/librarian/cover.py b/librarian/cover.py index 02d76f9..be34e26 100644 --- a/librarian/cover.py +++ b/librarian/cover.py @@ -5,7 +5,8 @@ # import re import Image, ImageFont, ImageDraw, ImageFilter -from librarian import get_resource +from StringIO import StringIO +from librarian import get_resource, OutputFile, URLOpener class TextBox(object): @@ -119,9 +120,11 @@ class Cover(object): 'PNG': 'image/png', } - def __init__(self, book_info): + def __init__(self, book_info, format=None): self.author = ", ".join(auth.readable() for auth in book_info.authors) self.title = book_info.title + if format is not None: + self.format = format def pretty_author(self): """Allows for decorating author's name.""" @@ -180,6 +183,11 @@ class Cover(object): def save(self, *args, **kwargs): return self.image().save(format=self.format, *args, **kwargs) + def output_file(self, *args, **kwargs): + imgstr = StringIO() + self.save(imgstr, *args, **kwargs) + return OutputFile.from_string(imgstr.getvalue()) + class WLCover(Cover): """Default Wolne Lektury cover generator.""" @@ -212,24 +220,21 @@ class WLCover(Cover): u'Współczesność': '#06393d', } - def __init__(self, book_info, image_cache=None): - super(WLCover, self).__init__(book_info) + def __init__(self, book_info, format=None, image_cache=None): + super(WLCover, self).__init__(book_info, format=format) self.kind = book_info.kind self.epoch = book_info.epoch if book_info.cover_url: - from urllib2 import urlopen - from StringIO import StringIO - url = book_info.cover_url bg_src = None if image_cache: from urllib import quote try: - bg_src = urlopen(image_cache + quote(url, safe="")) + bg_src = URLOpener().open(image_cache + quote(url, safe="")) except: pass if bg_src is None: - bg_src = urlopen(url) + bg_src = URLOpener().open(url) self.background_img = StringIO(bg_src.read()) bg_src.close() else: