mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
TXTZ Import: Add metadata.opf file to archive when importing if present or create it if not present.
This commit is contained in:
parent
cc3c0468a2
commit
a25a236f32
@ -8,6 +8,7 @@ from calibre.customize import FileTypePlugin, MetadataReaderPlugin, \
|
|||||||
MetadataWriterPlugin, PreferencesPlugin, InterfaceActionBase
|
MetadataWriterPlugin, PreferencesPlugin, InterfaceActionBase
|
||||||
from calibre.constants import numeric_version
|
from calibre.constants import numeric_version
|
||||||
from calibre.ebooks.metadata.archive import ArchiveExtract, get_cbz_metadata
|
from calibre.ebooks.metadata.archive import ArchiveExtract, get_cbz_metadata
|
||||||
|
from calibre.ebooks.metadata.opf2 import metadata_to_opf
|
||||||
from calibre.ebooks.oeb.base import OEB_IMAGES
|
from calibre.ebooks.oeb.base import OEB_IMAGES
|
||||||
|
|
||||||
# To archive plugins {{{
|
# To archive plugins {{{
|
||||||
@ -134,7 +135,18 @@ class TXT2TXTZ(FileTypePlugin):
|
|||||||
import zipfile
|
import zipfile
|
||||||
of = self.temporary_file('_plugin_txt2txtz.txtz')
|
of = self.temporary_file('_plugin_txt2txtz.txtz')
|
||||||
txtz = zipfile.ZipFile(of.name, 'w')
|
txtz = zipfile.ZipFile(of.name, 'w')
|
||||||
|
# Add selected TXT file to archive.
|
||||||
txtz.write(path_to_ebook, os.path.basename(path_to_ebook), zipfile.ZIP_DEFLATED)
|
txtz.write(path_to_ebook, os.path.basename(path_to_ebook), zipfile.ZIP_DEFLATED)
|
||||||
|
# metadat.opf
|
||||||
|
if os.path.exists(os.path.join(base_dir, 'metadata.opf')):
|
||||||
|
txtz.write(os.path.join(base_dir, 'metadata.opf'), 'metadata.opf', zipfile.ZIP_DEFLATED)
|
||||||
|
else:
|
||||||
|
from calibre.ebooks.metadata.txt import get_metadata
|
||||||
|
with open(path_to_ebook, 'rb') as ebf:
|
||||||
|
mi = get_metadata(ebf)
|
||||||
|
opf = metadata_to_opf(mi)
|
||||||
|
txtz.writestr('metadata.opf', opf, zipfile.ZIP_DEFLATED)
|
||||||
|
# images
|
||||||
for image in images:
|
for image in images:
|
||||||
txtz.write(os.path.join(base_dir, image), image)
|
txtz.write(os.path.join(base_dir, image), image)
|
||||||
txtz.close()
|
txtz.close()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user