1
0
mirror of https://github.com/ciromattia/kcc synced 2025-12-13 01:36:27 +00:00

Revert "fix files with ' or " by using arg lists instead of strings (#581)" (#628)

This reverts commit 431862a2e9.
This commit is contained in:
Alex Xu
2023-11-28 08:20:14 -08:00
committed by GitHub
parent 2ffefee928
commit b528dab711
3 changed files with 50 additions and 37 deletions

View File

@@ -19,7 +19,6 @@
#
import os
import subprocess
import sys
from argparse import ArgumentParser
from time import strftime, gmtime
@@ -36,7 +35,7 @@ from natsort import natsorted
from slugify import slugify as slugify_ext
from PIL import Image
from subprocess import STDOUT, PIPE
from psutil import virtual_memory, disk_usage
from psutil import Popen, virtual_memory, disk_usage
from html import escape as hescape
try:
from PyQt5 import QtCore
@@ -1103,12 +1102,14 @@ def checkTools(source):
source = source.upper()
if source.endswith('.CB7') or source.endswith('.7Z') or source.endswith('.RAR') or source.endswith('.CBR') or \
source.endswith('.ZIP') or source.endswith('.CBZ'):
process = subprocess.run(['7z'], stdout=PIPE, stderr=STDOUT)
process = Popen('7z', stdout=PIPE, stderr=STDOUT, stdin=PIPE, shell=True)
process.communicate()
if process.returncode != 0 and process.returncode != 7:
print('ERROR: 7z is missing!')
sys.exit(1)
if options.format == 'MOBI':
kindleGenExitCode = subprocess.run(['kindlegen', '-locale', 'en'], stdout=PIPE, stderr=STDOUT)
kindleGenExitCode = Popen('kindlegen -locale en', stdout=PIPE, stderr=STDOUT, stdin=PIPE, shell=True)
kindleGenExitCode.communicate()
if kindleGenExitCode.returncode != 0:
print('ERROR: KindleGen is missing!')
sys.exit(1)
@@ -1265,9 +1266,10 @@ def makeMOBIWorker(item):
kindlegenError = ''
try:
if os.path.getsize(item) < 629145600:
output = subprocess.run(['kindlegen', '-dont_append_source', '-locale', 'en', item],
stdout=PIPE, stderr=STDOUT, encoding='UTF-8')
for line in output.stdout.splitlines():
output = Popen('kindlegen -dont_append_source -locale en "' + item + '"',
stdout=PIPE, stderr=STDOUT, stdin=PIPE, shell=True)
for line in output.stdout:
line = line.decode('utf-8')
# ERROR: Generic error
if "Error(" in line:
kindlegenErrorCode = 1
@@ -1278,6 +1280,7 @@ def makeMOBIWorker(item):
if kindlegenErrorCode > 0:
break
if ":I1036: Mobi file built successfully" in line:
output.communicate()
break
else:
# ERROR: EPUB too big