diff --git a/include/book.h b/include/book.h index f0ac10aea..ce228d19a 100644 --- a/include/book.h +++ b/include/book.h @@ -24,6 +24,7 @@ #include #include #include +#include "common.h" namespace pugi { class xml_node; @@ -68,7 +69,7 @@ class Book ~Book(); bool update(const Book& other); - void update(const Reader& reader); + DEPRECATED void update(const Reader& reader); void update(const zim::Archive& archive); void updateFromXml(const pugi::xml_node& node, const std::string& baseDir); void updateFromOpds(const pugi::xml_node& node, const std::string& urlHost); @@ -95,9 +96,9 @@ class Book const uint64_t& getArticleCount() const { return m_articleCount; } const uint64_t& getMediaCount() const { return m_mediaCount; } const uint64_t& getSize() const { return m_size; } - const std::string& getFavicon() const; - const std::string& getFaviconUrl() const; - const std::string& getFaviconMimeType() const; + DEPRECATED const std::string& getFavicon() const; + DEPRECATED const std::string& getFaviconUrl() const; + DEPRECATED const std::string& getFaviconMimeType() const; Illustrations getIllustrations() const; std::shared_ptr getIllustration(unsigned int size) const; diff --git a/src/libxml_dumper.cpp b/src/libxml_dumper.cpp index db03a2005..6dc884d24 100644 --- a/src/libxml_dumper.cpp +++ b/src/libxml_dumper.cpp @@ -60,10 +60,13 @@ void LibXMLDumper::handleBook(Book book, pugi::xml_node root_node) { ADD_ATTR_NOT_EMPTY(entry_node, "name", book.getName()); ADD_ATTR_NOT_EMPTY(entry_node, "flavour", book.getFlavour()); ADD_ATTR_NOT_EMPTY(entry_node, "tags", book.getTags()); - ADD_ATTR_NOT_EMPTY(entry_node, "faviconMimeType", book.getFaviconMimeType()); - ADD_ATTR_NOT_EMPTY(entry_node, "faviconUrl", book.getFaviconUrl()); - if (!book.getFavicon().empty()) - ADD_ATTRIBUTE(entry_node, "favicon", base64_encode(book.getFavicon())); + try { + auto defaultIllustration = book.getIllustration(48); + ADD_ATTR_NOT_EMPTY(entry_node, "faviconMimeType", defaultIllustration->mimeType); + ADD_ATTR_NOT_EMPTY(entry_node, "faviconUrl", defaultIllustration->url); + if (!defaultIllustration->getData().empty()) + ADD_ATTRIBUTE(entry_node, "favicon", base64_encode(defaultIllustration->getData())); + } catch(...) {} } else { ADD_ATTRIBUTE(entry_node, "origId", book.getOrigId()); } diff --git a/test/book.cpp b/test/book.cpp index 2de31cfe5..4ed2df77a 100644 --- a/test/book.cpp +++ b/test/book.cpp @@ -52,9 +52,10 @@ TEST(BookTest, updateFromXMLTest) EXPECT_EQ(book.getArticleCount(), 123456U); EXPECT_EQ(book.getMediaCount(), 234567U); EXPECT_EQ(book.getSize(), 345678U*1024U); - EXPECT_EQ(book.getFavicon(), "fake-book-favicon-data"); - EXPECT_EQ(book.getFaviconMimeType(), "text/plain"); - EXPECT_EQ(book.getFaviconUrl(), "http://who.org/zara.fav"); + auto defaultIllustration = book.getIllustration(48); + EXPECT_EQ(defaultIllustration->getData(), "fake-book-favicon-data"); + EXPECT_EQ(defaultIllustration->mimeType, "text/plain"); + EXPECT_EQ(defaultIllustration->url, "http://who.org/zara.fav"); } TEST(BookTest, updateFromXMLCategoryHandlingTest) @@ -175,8 +176,10 @@ TEST(BookTest, updateTest) EXPECT_EQ(newBook.getTags(), book.getTags()); EXPECT_EQ(newBook.getCategory(), book.getCategory()); EXPECT_EQ(newBook.getName(), book.getName()); - EXPECT_EQ(newBook.getFavicon(), book.getFavicon()); - EXPECT_EQ(newBook.getFaviconMimeType(), book.getFaviconMimeType()); + auto defaultIllustration = book.getIllustration(48); + auto newDefaultIllustration = newBook.getIllustration(48); + EXPECT_EQ(newDefaultIllustration->getData(), defaultIllustration->getData()); + EXPECT_EQ(newDefaultIllustration->mimeType, defaultIllustration->mimeType); } namespace