Merge branch 'fix-2025355' of https://github.com/ping/calibre

This commit is contained in:
Kovid Goyal 2023-07-09 16:38:42 +05:30
commit b85735f767
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -4,7 +4,9 @@ __docformat__ = 'restructuredtext en'
import os import os
import shutil import shutil
import time
from contextlib import closing from contextlib import closing
from pathlib import Path
from mechanize import MozillaCookieJar from mechanize import MozillaCookieJar
from calibre import browser from calibre import browser
@ -101,17 +103,21 @@ class EbookDownload:
def _add(self, filename, gui, add_to_lib, tags): def _add(self, filename, gui, add_to_lib, tags):
if not add_to_lib or not filename: if not add_to_lib or not filename:
return return
ext = os.path.splitext(filename)[1][1:].lower()
from calibre.ebooks.metadata.worker import run_import_plugins
path = run_import_plugins((filename,), time.monotonic_ns(), str(Path(filename).parent))[0]
ext = os.path.splitext(path)[1][1:].lower()
if ext not in BOOK_EXTENSIONS: if ext not in BOOK_EXTENSIONS:
raise Exception(_('Not a support e-book format.')) raise Exception(_('Not a support e-book format.'))
from calibre.ebooks.metadata.meta import get_metadata from calibre.ebooks.metadata.meta import get_metadata
with open(filename, 'rb') as f: with open(path, 'rb') as f:
mi = get_metadata(f, ext, force_read_metadata=True) mi = get_metadata(f, ext, force_read_metadata=True)
mi.tags.extend(tags) mi.tags.extend(tags)
id = gui.library_view.model().db.create_book_entry(mi) id = gui.library_view.model().db.create_book_entry(mi)
gui.library_view.model().db.add_format_with_hooks(id, ext.upper(), filename, index_is_id=True) gui.library_view.model().db.add_format_with_hooks(id, ext.upper(), path, index_is_id=True)
gui.library_view.model().books_added(1) gui.library_view.model().books_added(1)
gui.library_view.model().count_changed() gui.library_view.model().count_changed()