# Add cover support, if any.
if cls.uses_cover:
if options.image_cache:
- transform_args['cover'] = lambda x: WLCover(x, image_cache = options.image_cache)
+ def cover_class(*args, **kwargs):
+ return WLCover(image_cache=options.image_cache, *args, **kwargs)
+ transform_args['cover'] = cover_class
elif not cls.cover_optional or options.with_cover:
transform_args['cover'] = WLCover
#
import re
import Image, ImageFont, ImageDraw, ImageFilter
-from librarian import get_resource
+from StringIO import StringIO
+from librarian import get_resource, OutputFile
class TextBox(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."""
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."""
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 librarian import ValidationError, NoDublinCore, ParseError, NoProvider
from librarian import RDFNS
+from librarian.cover import WLCover
from librarian import dcparser
from xml.parsers.expat import ExpatError
from librarian import fb2
return fb2.transform(self, *args, **kwargs)
+ def as_cover(self, cover_class=None, *args, **kwargs):
+ if cover_class is None:
+ cover_class = WLCover
+ return cover_class(self.book_info, *args, **kwargs).output_file()
+
def save_output_file(self, output_file, output_path=None,
output_dir_path=None, make_author_dir=False, ext=None):
if output_dir_path: