From f41007989bb6b04f8eca4aba6665a434eed76661 Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Sat, 24 Jun 2023 20:10:41 +0400 Subject: [PATCH] Fool-proof checking of book illustration presence Now (in a library.xml flow) a book is considered to contain an illustration only if both "faviconMimeType" and "favicon" attributes are set to non-empty values. --- src/book.cpp | 9 +++++---- test/library_server.cpp | 4 +--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/book.cpp b/src/book.cpp index 316645cc..55d38df4 100644 --- a/src/book.cpp +++ b/src/book.cpp @@ -117,11 +117,12 @@ void Book::updateFromXml(const pugi::xml_node& node, const std::string& baseDir) m_articleCount = strtoull(ATTR("articleCount"), 0, 0); m_mediaCount = strtoull(ATTR("mediaCount"), 0, 0); m_size = strtoull(ATTR("size"), 0, 0) << 10; - std::string favicon_mimetype = ATTR("faviconMimeType"); - if (! favicon_mimetype.empty()) { + const std::string faviconMimeType = ATTR("faviconMimeType"); + const std::string faviconBase64EncodedData = ATTR("favicon"); + if ( !faviconMimeType.empty() && !faviconBase64EncodedData.empty() ) { const auto favicon = std::make_shared(); - favicon->data = base64_decode(ATTR("favicon")); - favicon->mimeType = favicon_mimetype; + favicon->data = base64_decode(faviconBase64EncodedData); + favicon->mimeType = faviconMimeType; favicon->url = ATTR("faviconUrl"); m_illustrations.assign(1, favicon); } diff --git a/test/library_server.cpp b/test/library_server.cpp index 251e2928..2274ccf4 100644 --- a/test/library_server.cpp +++ b/test/library_server.cpp @@ -144,9 +144,7 @@ std::string maskVariableOPDSFeedData(std::string s) "wikipedia_ru_ray_charles",\ "",\ "public_tag_with_a_value:value_of_a_public_tag;_private_tag_with_a_value:value_of_a_private_tag;wikipedia;_pictures:no;_videos:no;_details:no",\ - "\n ", \ + "",\ "zimfile", \ "zimfile", \ "125952"\