From 675038040072170364b9a84c5226a94e03fb3e4f Mon Sep 17 00:00:00 2001 From: Arthur Tazhitdinov Date: Mon, 15 Dec 2025 20:00:54 +0300 Subject: [PATCH] Refactor TOC parsing logic to streamline cover image and NCX item retrieval --- lib/Epub/Epub.cpp | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/lib/Epub/Epub.cpp b/lib/Epub/Epub.cpp index 675486f..a59b32f 100644 --- a/lib/Epub/Epub.cpp +++ b/lib/Epub/Epub.cpp @@ -70,30 +70,13 @@ bool Epub::parseContentOpf(const std::string& contentOpfFilePath) { // Grab data from opfParser into epub title = opfParser.title; if (!opfParser.coverItemId.empty() && opfParser.items.count(opfParser.coverItemId) > 0) { - coverImageItem = opfParser.items.at(opfParser.coverItemId); - } - constexpr const char* NCX_MEDIA_TYPE = "application/x-dtbncx+xml"; - - for (const auto& [id, manifestItem] : opfParser.items) { - (void)id; - if (manifestItem.mediaType == NCX_MEDIA_TYPE) { - tocNcxItem = manifestItem.href; - break; - } + coverImageItem = opfParser.items.at(opfParser.coverItemId).href; } - if (tocNcxItem.empty() && !opfParser.tocNcxPath.empty()) { + if (!opfParser.tocNcxPath.empty()) { tocNcxItem = opfParser.tocNcxPath; } - if (tocNcxItem.empty()) { - if (opfParser.items.count("ncx")) { - tocNcxItem = opfParser.items.at("ncx").href; - } else if (opfParser.items.count("ncxtoc")) { - tocNcxItem = opfParser.items.at("ncxtoc").href; - } - } - for (auto& spineRef : opfParser.spineRefs) { if (opfParser.items.count(spineRef)) { spine.emplace_back(spineRef, opfParser.items.at(spineRef).href);