From 95608aa8620447f77a40209693b5c71f59b4ee54 Mon Sep 17 00:00:00 2001 From: Losses Don Date: Sun, 21 Jun 2020 13:29:16 +0800 Subject: [PATCH] Update the strategy of finding covers. related to issue #1085 --- src/packaging.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/packaging.js b/src/packaging.js index d5af2dc81..396b5d4b9 100644 --- a/src/packaging.js +++ b/src/packaging.js @@ -256,23 +256,23 @@ class Packaging { findCoverPath(packageXml){ var pkg = qs(packageXml, "package"); var epubVersion = pkg.getAttribute("version"); - - if (epubVersion === "2.0") { - var metaCover = qsp(packageXml, "meta", {"name":"cover"}); - if (metaCover) { - var coverId = metaCover.getAttribute("content"); - // var cover = packageXml.querySelector("item[id='" + coverId + "']"); - var cover = packageXml.getElementById(coverId); - return cover ? cover.getAttribute("href") : ""; - } - else { - return false; - } + + // Try parsing cover with epub 3. + // var node = packageXml.querySelector("item[properties='cover-image']"); + var node = qsp(packageXml, "item", {"properties":"cover-image"}); + if (node) return node.getAttribute("href"); + + // Fallback to epub 2. + var metaCover = qsp(packageXml, "meta", {"name":"cover"}); + + if (metaCover) { + var coverId = metaCover.getAttribute("content"); + // var cover = packageXml.querySelector("item[id='" + coverId + "']"); + var cover = packageXml.getElementById(coverId); + return cover ? cover.getAttribute("href") : ""; } else { - // var node = packageXml.querySelector("item[properties='cover-image']"); - var node = qsp(packageXml, "item", {"properties":"cover-image"}); - return node ? node.getAttribute("href") : ""; + return false; } }