From fe0e38e1362fb7462969201ff7f22630390d0e1c Mon Sep 17 00:00:00 2001 From: Vinh Quang Tran Date: Sat, 10 Jun 2023 16:13:01 +0700 Subject: [PATCH] Override book's title if `Title` is set in XML (#532) * Allow overriding title if it is set in XML --- kindlecomicconverter/comic2ebook.py | 4 +++- kindlecomicconverter/metadata.py | 11 ++++++++--- requirements.txt | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/kindlecomicconverter/comic2ebook.py b/kindlecomicconverter/comic2ebook.py index b26c839e..be0b8bcc 100755 --- a/kindlecomicconverter/comic2ebook.py +++ b/kindlecomicconverter/comic2ebook.py @@ -691,7 +691,9 @@ def getComicInfo(path, originalpath): os.remove(xmlPath) return options.authors = [] - if defaultTitle: + if xml.data['Title']: + options.title = hescape(xml.data['Title']) + elif defaultTitle: if xml.data['Series']: options.title = hescape(xml.data['Series']) if xml.data['Volume']: diff --git a/kindlecomicconverter/metadata.py b/kindlecomicconverter/metadata.py index b431be17..9d606169 100644 --- a/kindlecomicconverter/metadata.py +++ b/kindlecomicconverter/metadata.py @@ -34,7 +34,8 @@ def __init__(self, source): 'Inkers': [], 'Colorists': [], 'Summary': '', - 'Bookmarks': []} + 'Bookmarks': [], + 'Title': ''} self.rawdata = None self.format = None if self.source.endswith('.xml') and os.path.exists(self.source): @@ -58,6 +59,8 @@ def parseXML(self): self.data['Number'] = self.rawdata.getElementsByTagName('Number')[0].firstChild.nodeValue if len(self.rawdata.getElementsByTagName('Summary')) != 0: self.data['Summary'] = self.rawdata.getElementsByTagName('Summary')[0].firstChild.nodeValue + if len(self.rawdata.getElementsByTagName('Title')) != 0: + self.data['Title'] = self.rawdata.getElementsByTagName('Title')[0].firstChild.nodeValue for field in ['Writer', 'Penciller', 'Inker', 'Colorist']: if len(self.rawdata.getElementsByTagName(field)) != 0: for person in self.rawdata.getElementsByTagName(field)[0].firstChild.nodeValue.split(', '): @@ -76,7 +79,8 @@ def saveXML(self): for row in (['Series', self.data['Series']], ['Volume', self.data['Volume']], ['Number', self.data['Number']], ['Writer', ', '.join(self.data['Writers'])], ['Penciller', ', '.join(self.data['Pencillers'])], ['Inker', ', '.join(self.data['Inkers'])], - ['Colorist', ', '.join(self.data['Colorists'])], ['Summary', self.data['Summary']]): + ['Colorist', ', '.join(self.data['Colorists'])], ['Summary', self.data['Summary']], + ['Title', self.data['Title']]): if self.rawdata.getElementsByTagName(row[0]): node = self.rawdata.getElementsByTagName(row[0])[0] if row[1]: @@ -97,7 +101,8 @@ def saveXML(self): for row in (['Series', self.data['Series']], ['Volume', self.data['Volume']], ['Number', self.data['Number']], ['Writer', ', '.join(self.data['Writers'])], ['Penciller', ', '.join(self.data['Pencillers'])], ['Inker', ', '.join(self.data['Inkers'])], - ['Colorist', ', '.join(self.data['Colorists'])], ['Summary', self.data['Summary']]): + ['Colorist', ', '.join(self.data['Colorists'])], ['Summary', self.data['Summary']], + ['Title', self.data['Title']]): if row[1]: main = doc.createElement(row[0]) root.appendChild(main) diff --git a/requirements.txt b/requirements.txt index 763b567d..7898699f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,4 +5,4 @@ python-slugify>=1.2.1 raven>=6.0.0 # PyQt5-tools mozjpeg-lossless-optimization>=1.1.2 -distro \ No newline at end of file +distro