X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/5e225c00376442bb28231d98472935a79dc9c9a5..ccead8bf96df0005e75ea60de74b51d37b92d844:/src/catalogue/fields.py diff --git a/src/catalogue/fields.py b/src/catalogue/fields.py index 1a3a3b5d7..b1242e7e1 100644 --- a/src/catalogue/fields.py +++ b/src/catalogue/fields.py @@ -130,7 +130,15 @@ class BuildPdf(BuildEbook): class BuildEpub(BuildEbook): @staticmethod def transform(wldoc, fieldfile): - return wldoc.as_epub(cover=True) + return wldoc.as_epub(cover=True, ilustr_path=gallery_path(wldoc.book_info.url.slug)) + + +@BuildEbook.register('mobi') +@task(ignore_result=True) +class BuildMobi(BuildEbook): + @staticmethod + def transform(wldoc, fieldfile): + return wldoc.as_mobi(cover=True, ilustr_path=gallery_path(wldoc.book_info.url.slug)) @BuildEbook.register('html') @@ -145,7 +153,7 @@ class BuildHtml(BuildEbook): book = fieldfile.instance - html_output = self.transform(book.wldocument(), fieldfile) + html_output = self.transform(book.wldocument(parse_dublincore=False), fieldfile) # Delete old fragments, create from scratch if necessary. book.fragments.all().delete() @@ -211,7 +219,14 @@ class BuildHtml(BuildEbook): @staticmethod def transform(wldoc, fieldfile): - return wldoc.as_html(options={'gallery': "'%s'" % gallery_url(wldoc.book_info.url.slug)}) + # ugly, but we can't use wldoc.book_info here + from librarian import DCNS + url_elem = wldoc.edoc.getroot().find('.//' + DCNS('identifier.url')) + if url_elem is None: + gallery = '' + else: + gallery = gallery_url(slug=url_elem.text.rsplit('/', 1)[1]) + return wldoc.as_html(options={'gallery': "'%s'" % gallery}) @BuildEbook.register('cover_thumb')