diff options
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | kcc.iss | 2 | ||||
-rw-r--r-- | kcc/__init__.py | 2 | ||||
-rwxr-xr-x | kcc/comic2ebook.py | 28 |
4 files changed, 19 insertions, 17 deletions
diff --git a/README.md b/README.md index 971a9e0..696c553 100644 --- a/README.md +++ b/README.md @@ -156,6 +156,10 @@ The app relies and includes the following scripts: * [Kobo Aura H2O](http://kcc.iosphe.re/Samples/Ubunchu-KoAH2O.kepub.epub) ## CHANGELOG +####4.6.2: +* Fixed critical MOBI header bug +* Fixed metadata encoding error + ####4.6.1: * Fixed KEPUB TOC generator * Added warning about too small input files diff --git a/kcc.iss b/kcc.iss index 10a26c8..5deb343 100644 --- a/kcc.iss +++ b/kcc.iss @@ -1,5 +1,5 @@ #define MyAppName "Kindle Comic Converter" -#define MyAppVersion "4.6.1" +#define MyAppVersion "4.6.2" #define MyAppPublisher "Ciro Mattia Gonano, Paweł Jastrzębski" #define MyAppURL "http://kcc.iosphe.re/" #define MyAppExeName "KCC.exe" diff --git a/kcc/__init__.py b/kcc/__init__.py index 6a54f0c..10c7f42 100644 --- a/kcc/__init__.py +++ b/kcc/__init__.py @@ -1,4 +1,4 @@ -__version__ = '4.6.1' +__version__ = '4.6.2' __license__ = 'ISC' __copyright__ = '2012-2015, Ciro Mattia Gonano <ciromattia@gmail.com>, Pawel Jastrzebski <pawelj@iosphe.re>' __docformat__ = 'restructuredtext en' diff --git a/kcc/comic2ebook.py b/kcc/comic2ebook.py index d8be58f..06a1c61 100755 --- a/kcc/comic2ebook.py +++ b/kcc/comic2ebook.py @@ -38,6 +38,7 @@ from PIL import Image from subprocess import STDOUT, PIPE from psutil import Popen, virtual_memory from scandir import walk +from html import escape try: from PyQt5 import QtCore except ImportError: @@ -313,18 +314,15 @@ def buildOPF(dstdir, title, filelist, cover=None): "<meta property=\"rendition:spread\">portrait</meta>\n", "<meta property=\"rendition:layout\">pre-paginated</meta>\n"]) if options.iskindle and options.profile != 'Custom': - f.writelines(["<meta property=\"RegionMagnification\">true</meta>\n", - "<meta property=\"region-mag\">true</meta>\n", - "<meta property=\"book-type\">comic</meta>\n", - "<meta property=\"zero-gutter\">true</meta>\n", - "<meta property=\"zero-margin\">true</meta>\n", - "<meta property=\"fixed-layout\">true</meta>\n", - "<meta property=\"orientation-lock\">portrait</meta>\n", - "<meta property=\"original-resolution\">", - str(deviceres[0]) + "x" + str(deviceres[1]) + "</meta>\n", - "<meta property=\"primary-writing-mode\">" + writingmode + "</meta>\n", - "<meta property=\"ke-border-color\">#ffffff</meta>\n", - "<meta property=\"ke-border-width\">0</meta>\n"]) + f.writelines(["<meta name=\"original-resolution\" content=\"", + str(deviceres[0]) + "x" + str(deviceres[1]) + "\"/>\n", + "<meta name=\"book-type\" content=\"comic\"/>\n", + "<meta name=\"RegionMagnification\" content=\"true\"/>\n", + "<meta name=\"primary-writing-mode\" content=\"" + writingmode + "\"/>\n", + "<meta name=\"zero-gutter\" content=\"true\"/>\n", + "<meta name=\"zero-margin\" content=\"true\"/>\n", + "<meta name=\"ke-border-color\" content=\"#ffffff\"/>\n", + "<meta name=\"ke-border-width\" content=\"0\"/>\n"]) f.writelines(["</metadata>\n<manifest>\n<item id=\"ncx\" href=\"toc.ncx\" ", "media-type=\"application/x-dtbncx+xml\"/>\n", "<item id=\"nav\" href=\"nav.xhtml\" ", @@ -746,7 +744,7 @@ def getComicInfo(path, originalPath): options.authors = [] if defaultTitle: if xml.data['Series']: - options.title = xml.data['Series'] + options.title = escape(xml.data['Series']) if xml.data['Volume']: titleSuffix += ' V' + xml.data['Volume'] if xml.data['Number']: @@ -754,7 +752,7 @@ def getComicInfo(path, originalPath): options.title += titleSuffix for field in ['Writers', 'Pencillers', 'Inkers', 'Colorists']: for person in xml.data[field]: - options.authors.append(person) + options.authors.append(escape(person)) if len(options.authors) > 0: options.authors = list(set(options.authors)) options.authors.sort() @@ -765,7 +763,7 @@ def getComicInfo(path, originalPath): if xml.data['Bookmarks']: options.chapters = xml.data['Bookmarks'] if xml.data['Summary']: - options.summary = xml.data['Summary'] + options.summary = escape(xml.data['Summary']) os.remove(xmlPath) |