diff --git a/kindlecomicconverter/comic2ebook.py b/kindlecomicconverter/comic2ebook.py index 55cf541..a9706d6 100755 --- a/kindlecomicconverter/comic2ebook.py +++ b/kindlecomicconverter/comic2ebook.py @@ -358,63 +358,63 @@ def buildOPF(dstdir, title, filelist, cover=None): pageside = "left" else: pageside = "right" + + # initial spread order forwards + page_spread_property_list = [] for entry in reflist: if options.righttoleft: if entry.endswith("-kcc-a"): - f.write( - "\n" % (entry, - pageSpreadProperty("center")) - ) + page_spread_property_list.append("center") pageside = "right" elif entry.endswith("-kcc-b"): - f.write( - "\n" % (entry, - pageSpreadProperty("right")) - ) + page_spread_property_list.append("right") pageside = "right" elif entry.endswith("-kcc-c"): - f.write( - "\n" % (entry, - pageSpreadProperty("left")) - ) + page_spread_property_list.append("left") pageside = "right" else: - f.write( - "\n" % (entry, - pageSpreadProperty(pageside)) - ) + page_spread_property_list.append(pageside) if pageside == "right": pageside = "left" else: pageside = "right" else: if entry.endswith("-kcc-a"): - f.write( - "\n" % (entry, - pageSpreadProperty("center")) - ) + page_spread_property_list.append("center") pageside = "left" elif entry.endswith("-kcc-b"): - f.write( - "\n" % (entry, - pageSpreadProperty("left")) - ) + page_spread_property_list.append("left") pageside = "left" elif entry.endswith("-kcc-c"): - f.write( - "\n" % (entry, - pageSpreadProperty("right")) - ) + page_spread_property_list.append("right") pageside = "left" else: - f.write( - "\n" % (entry, - pageSpreadProperty(pageside)) - ) + page_spread_property_list.append(pageside) if pageside == "right": pageside = "left" else: pageside = "right" + + # fix spread orders backward + spread_seen = False + for i in range(len(reflist) -1, -1, -1): + entry = reflist[i] + if not entry.endswith("-kcc"): + spread_seen = True + if options.righttoleft: + pageside = "left" + else: + pageside = "right" + elif spread_seen: + page_spread_property_list[i] = pageside + if pageside == "right": + pageside = "left" + else: + pageside = "right" + + for entry, prop in zip(reflist, page_spread_property_list): + f.write(f'\n') + f.write("\n\n") f.close() os.mkdir(os.path.join(dstdir, 'META-INF'))