mirror of
https://github.com/ciromattia/kcc
synced 2026-07-23 21:23:10 +00:00
Replaced shutil.make_archive
This commit is contained in:
+20
-7
@@ -29,8 +29,9 @@ import re
|
|||||||
import stat
|
import stat
|
||||||
import string
|
import string
|
||||||
import unicodedata
|
import unicodedata
|
||||||
|
import zipfile
|
||||||
from tempfile import mkdtemp
|
from tempfile import mkdtemp
|
||||||
from shutil import move, copyfile, copytree, rmtree, make_archive
|
from shutil import move, copyfile, copytree, rmtree
|
||||||
from optparse import OptionParser, OptionGroup
|
from optparse import OptionParser, OptionGroup
|
||||||
from multiprocessing import Pool, freeze_support
|
from multiprocessing import Pool, freeze_support
|
||||||
from xml.dom.minidom import parse
|
from xml.dom.minidom import parse
|
||||||
@@ -258,7 +259,7 @@ def buildOPF(dstdir, title, filelist, cover=None):
|
|||||||
"<dc:language>en-US</dc:language>\n",
|
"<dc:language>en-US</dc:language>\n",
|
||||||
"<dc:identifier id=\"BookID\" opf:scheme=\"UUID\">", options.uuid, "</dc:identifier>\n"])
|
"<dc:identifier id=\"BookID\" opf:scheme=\"UUID\">", options.uuid, "</dc:identifier>\n"])
|
||||||
for author in options.authors:
|
for author in options.authors:
|
||||||
f.writelines(["<dc:Creator>", author.encode('utf-8'), "</dc:Creator>\n"])
|
f.writelines(["<dc:creator>", author.encode('utf-8'), "</dc:creator>\n"])
|
||||||
f.writelines(["<meta name=\"generator\" content=\"KindleComicConverter-" + __version__ + "\"/>\n",
|
f.writelines(["<meta name=\"generator\" content=\"KindleComicConverter-" + __version__ + "\"/>\n",
|
||||||
"<meta name=\"RegionMagnification\" content=\"true\"/>\n",
|
"<meta name=\"RegionMagnification\" content=\"true\"/>\n",
|
||||||
"<meta name=\"region-mag\" content=\"true\"/>\n",
|
"<meta name=\"region-mag\" content=\"true\"/>\n",
|
||||||
@@ -305,9 +306,6 @@ def buildOPF(dstdir, title, filelist, cover=None):
|
|||||||
f.write("</spine>\n<guide>\n</guide>\n</package>\n")
|
f.write("</spine>\n<guide>\n</guide>\n</package>\n")
|
||||||
f.close()
|
f.close()
|
||||||
os.mkdir(os.path.join(dstdir, 'META-INF'))
|
os.mkdir(os.path.join(dstdir, 'META-INF'))
|
||||||
f = open(os.path.join(dstdir, 'mimetype'), 'w')
|
|
||||||
f.write('application/epub+zip')
|
|
||||||
f.close()
|
|
||||||
f = open(os.path.join(dstdir, 'META-INF', 'container.xml'), 'w')
|
f = open(os.path.join(dstdir, 'META-INF', 'container.xml'), 'w')
|
||||||
f.writelines(["<?xml version=\"1.0\"?>\n",
|
f.writelines(["<?xml version=\"1.0\"?>\n",
|
||||||
"<container version=\"1.0\" xmlns=\"urn:oasis:names:tc:opendocument:xmlns:container\">\n",
|
"<container version=\"1.0\" xmlns=\"urn:oasis:names:tc:opendocument:xmlns:container\">\n",
|
||||||
@@ -886,6 +884,21 @@ def detectCorruption(tmpPath, orgPath):
|
|||||||
raise RuntimeError('Image file %s is corrupted.' % pathOrg)
|
raise RuntimeError('Image file %s is corrupted.' % pathOrg)
|
||||||
|
|
||||||
|
|
||||||
|
def makeZIP(zipFilename, baseDir, isEPUB=False):
|
||||||
|
zipFilename = os.path.abspath(zipFilename) + '.zip'
|
||||||
|
zipOutput = zipfile.ZipFile(zipFilename, 'w', zipfile.ZIP_DEFLATED)
|
||||||
|
if isEPUB:
|
||||||
|
zipOutput.writestr('mimetype', 'application/epub+zip', zipfile.ZIP_STORED)
|
||||||
|
for dirpath, dirnames, filenames in os.walk(baseDir):
|
||||||
|
for name in filenames:
|
||||||
|
path = os.path.normpath(os.path.join(dirpath, name))
|
||||||
|
aPath = os.path.normpath(os.path.join(dirpath.replace(baseDir, ''), name))
|
||||||
|
if os.path.isfile(path):
|
||||||
|
zipOutput.write(path, aPath)
|
||||||
|
zipOutput.close()
|
||||||
|
return zipFilename
|
||||||
|
|
||||||
|
|
||||||
def Copyright():
|
def Copyright():
|
||||||
print ('comic2ebook v%(__version__)s. '
|
print ('comic2ebook v%(__version__)s. '
|
||||||
'Written 2013 by Ciro Mattia Gonano and Pawel Jastrzebski.' % globals())
|
'Written 2013 by Ciro Mattia Gonano and Pawel Jastrzebski.' % globals())
|
||||||
@@ -1007,7 +1020,7 @@ def main(argv=None, qtGUI=None):
|
|||||||
filepath.append(getOutputFilename(args[0], options.output, '.cbz', ' ' + str(tomeNumber)))
|
filepath.append(getOutputFilename(args[0], options.output, '.cbz', ' ' + str(tomeNumber)))
|
||||||
else:
|
else:
|
||||||
filepath.append(getOutputFilename(args[0], options.output, '.cbz', ''))
|
filepath.append(getOutputFilename(args[0], options.output, '.cbz', ''))
|
||||||
make_archive(tome + '_comic', 'zip', tome + '/OEBPS/Images')
|
makeZIP(tome + '_comic', tome + '/OEBPS/Images')
|
||||||
else:
|
else:
|
||||||
print "\nCreating EPUB structure..."
|
print "\nCreating EPUB structure..."
|
||||||
genEpubStruct(tome)
|
genEpubStruct(tome)
|
||||||
@@ -1016,7 +1029,7 @@ def main(argv=None, qtGUI=None):
|
|||||||
filepath.append(getOutputFilename(args[0], options.output, '.epub', ' ' + str(tomeNumber)))
|
filepath.append(getOutputFilename(args[0], options.output, '.epub', ' ' + str(tomeNumber)))
|
||||||
else:
|
else:
|
||||||
filepath.append(getOutputFilename(args[0], options.output, '.epub', ''))
|
filepath.append(getOutputFilename(args[0], options.output, '.epub', ''))
|
||||||
make_archive(tome + '_comic', 'zip', tome)
|
makeZIP(tome + '_comic', tome, True)
|
||||||
move(tome + '_comic.zip', filepath[-1])
|
move(tome + '_comic.zip', filepath[-1])
|
||||||
rmtree(tome, True)
|
rmtree(tome, True)
|
||||||
if GUI:
|
if GUI:
|
||||||
|
|||||||
Reference in New Issue
Block a user