diff --git a/include/book.h b/include/book.h index 8d137f302..2baeab921 100644 --- a/include/book.h +++ b/include/book.h @@ -98,7 +98,7 @@ class Book std::string m_id; std::string m_downloadId; std::string m_path; - bool m_pathValid; + bool m_pathValid = false; std::string m_title; std::string m_description; std::string m_language; @@ -110,10 +110,10 @@ class Book std::string m_flavour; std::string m_tags; std::string m_origId; - uint64_t m_articleCount; - uint64_t m_mediaCount; - bool m_readOnly; - uint64_t m_size; + uint64_t m_articleCount = 0; + uint64_t m_mediaCount = 0; + bool m_readOnly = false; + uint64_t m_size = 0; mutable std::string m_favicon; std::string m_faviconUrl; std::string m_faviconMimeType; diff --git a/src/book.cpp b/src/book.cpp index d8e90d7ca..beb3b5eba 100644 --- a/src/book.cpp +++ b/src/book.cpp @@ -156,6 +156,8 @@ void Book::updateFromOpds(const pugi::xml_node& node, const std::string& urlHost m_name = VALUE("name"); m_flavour = VALUE("flavour"); m_tags = VALUE("tags"); + m_articleCount = strtoull(VALUE("articleCount"), 0, 0); + m_mediaCount = strtoull(VALUE("mediaCount"), 0, 0); for(auto linkNode = node.child("link"); linkNode; linkNode = linkNode.next_sibling("link")) { std::string rel = linkNode.attribute("rel").value(); diff --git a/src/opds_dumper.cpp b/src/opds_dumper.cpp index dd584e29f..115ba4c38 100644 --- a/src/opds_dumper.cpp +++ b/src/opds_dumper.cpp @@ -78,6 +78,8 @@ pugi::xml_node OPDSDumper::handleBook(Book book, pugi::xml_node root_node) { ADD_TEXT_ENTRY(entry_node, "name", book.getName()); ADD_TEXT_ENTRY(entry_node, "flavour", book.getFlavour()); ADD_TEXT_ENTRY(entry_node, "tags", book.getTags()); + ADD_TEXT_ENTRY(entry_node, "articleCount", to_string(book.getArticleCount())); + ADD_TEXT_ENTRY(entry_node, "mediaCount", to_string(book.getMediaCount())); ADD_TEXT_ENTRY(entry_node, "icon", rootLocation + "/meta?name=favicon&content=" + book.getHumanReadableIdFromPath()); auto content_node = entry_node.append_child("link");