from sortify import sortify
from os import unlink
+import search
+
TAG_CATEGORIES = (
('author', _('author')),
('epoch', _('epoch')),
for b in books]
result = create_zip.delay(paths,
getattr(settings, "ALL_%s_ZIP" % format_.upper()))
+ return result.wait()
def zip_audiobooks(self):
bm = BookMedia.objects.filter(book=self, type='mp3')
result = create_zip.delay(paths, self.slug)
return result.wait()
+ def search_index(self):
+ if settings.SEARCH_INDEX_PARALLEL:
+ if instance(settings.SEARCH_INDEX_PARALLEL, int):
+ idx = search.ReusableIndex(threads=4)
+ else:
+ idx = search.ReusableIndex()
+ else:
+ idx = search.Index()
+
+ idx.open()
+ try:
+ idx.index_book(self)
+ finally:
+ idx.close()
+
@classmethod
def from_xml_file(cls, xml_file, **kwargs):
# use librarian to parse meta-data
@classmethod
def from_text_and_meta(cls, raw_file, book_info, overwrite=False,
- build_epub=True, build_txt=True, build_pdf=True, build_mobi=True):
+ build_epub=True, build_txt=True, build_pdf=True, build_mobi=True,
+ search_index=True):
import re
# check for parts before we do anything
if not settings.NO_BUILD_MOBI and build_mobi:
book.build_mobi()
+ if not settings.NO_SEARCH_INDEX and search_index:
+ book.search_index()
+
book_descendants = list(book.children.all())
# add l-tag to descendants and their fragments
# delete unnecessary EPUB files