mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Viewer: Dont generate covers for books that dont have a cover
This commit is contained in:
parent
b20f1d3fd7
commit
989e4de74c
@ -204,7 +204,7 @@ class Container(ContainerBase):
|
||||
|
||||
tweak_mode = True
|
||||
|
||||
def __init__(self, path_to_ebook, tdir, log=None, book_hash=None, save_bookmark_data=False, book_metadata=None, allow_no_cover=False):
|
||||
def __init__(self, path_to_ebook, tdir, log=None, book_hash=None, save_bookmark_data=False, book_metadata=None, allow_no_cover=True):
|
||||
log = log or default_log
|
||||
self.allow_no_cover = allow_no_cover
|
||||
book_fmt, opfpath, input_fmt = extract_book(path_to_ebook, tdir, log=log)
|
||||
|
@ -221,7 +221,10 @@ class DB:
|
||||
store_as_text = xhr.responseType is 'text' or not xhr.responseType
|
||||
fname = file_store_name(book, name)
|
||||
needs_encoding = not store_as_text and not self.supports_blobs
|
||||
book.stored_files[fname] = {'encoded':needs_encoding, 'mimetype':book.manifest.files[name].mimetype, 'store_as_text':store_as_text}
|
||||
mt = book.manifest.files[name]?.mimetype
|
||||
if not mt and is_cover:
|
||||
mt = 'image/jpeg'
|
||||
book.stored_files[fname] = {'encoded':needs_encoding, 'mimetype':mt, 'store_as_text':store_as_text}
|
||||
if is_cover:
|
||||
self.store_cover(book, needs_encoding, xhr.response, name, fname, proceed)
|
||||
else:
|
||||
|
@ -290,6 +290,16 @@ class ReadUI:
|
||||
progress_track = {}
|
||||
pbar.setAttribute('max', total + '')
|
||||
raster_cover_name = book.manifest.raster_cover_name
|
||||
if not raster_cover_name:
|
||||
nnum = 1
|
||||
base = 'raster-cover-image-{}.jpg'
|
||||
inserted_name = base.format(nnum)
|
||||
while inserted_name in files_left:
|
||||
nnum += 1
|
||||
inserted_name = base.format(nnum)
|
||||
raster_cover_name = inserted_name
|
||||
files_left.add(raster_cover_name)
|
||||
|
||||
raster_cover_size = 0
|
||||
|
||||
def update_progress():
|
||||
@ -338,7 +348,7 @@ class ReadUI:
|
||||
if this is raster_cover_name and not cover_total_updated:
|
||||
raster_cover_size = ftotal
|
||||
cover_total_updated = True
|
||||
total = total - files[raster_cover_name].size + raster_cover_size
|
||||
total = total - (files[raster_cover_name]?.size or 0) + raster_cover_size
|
||||
pbar.setAttribute('max', total + '')
|
||||
progress_track[this] = loaded
|
||||
update_progress()
|
||||
@ -346,7 +356,7 @@ class ReadUI:
|
||||
def start_download(fname, path):
|
||||
xhr = ajax(path, on_complete.bind(fname), on_progress=on_progress.bind(fname), query=query, progress_totals_needed=fname is raster_cover_name)
|
||||
xhr.responseType = 'text'
|
||||
if not book.manifest.files[fname].is_virtualized:
|
||||
if not book.manifest.files[fname]?.is_virtualized:
|
||||
xhr.responseType = 'blob' if self.db.supports_blobs else 'arraybuffer'
|
||||
xhr.send()
|
||||
self.downloads_in_progress.append(xhr)
|
||||
|
Loading…
x
Reference in New Issue
Block a user