from django.db.models.fields.files import FieldFile
from catalogue import app_settings
from catalogue.constants import LANGUAGES_3TO2
-from catalogue.utils import remove_zip, truncate_html_words
+from catalogue.utils import remove_zip, truncate_html_words, gallery_path, gallery_url
from celery.task import Task, task
from celery.utils.log import get_task_logger
from waiter.utils import clear_cache
class BuildPdf(BuildEbook):
@staticmethod
def transform(wldoc, fieldfile):
- return wldoc.as_pdf(morefloats=settings.LIBRARIAN_PDF_MOREFLOATS, cover=True)
+ return wldoc.as_pdf(morefloats=settings.LIBRARIAN_PDF_MOREFLOATS, cover=True,
+ ilustr_path=gallery_path(wldoc.book_info.url.slug))
def build(self, fieldfile):
BuildEbook.build(self, fieldfile)
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')
book = fieldfile.instance
- html_output = self.transform(
- book.wldocument(parse_dublincore=False),
- fieldfile)
+ html_output = self.transform(book.wldocument(), fieldfile)
# Delete old fragments, create from scratch if necessary.
book.fragments.all().delete()
return True
return False
+ @staticmethod
+ def transform(wldoc, fieldfile):
+ return wldoc.as_html(options={'gallery': "'%s'" % gallery_url(wldoc.book_info.url.slug)})
+
@BuildEbook.register('cover_thumb')
@task(ignore_result=True)