From 7e26f3502d6b0574b73bceb44dd3e9352335160a Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Wed, 29 Jan 2020 18:00:17 +0100 Subject: [PATCH] Fix opds dumper/parser. Add missing attributes. --- src/book.cpp | 4 +++- src/opds_dumper.cpp | 5 +++++ test/library.cpp | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/book.cpp b/src/book.cpp index 3e530510a..234b6a73f 100644 --- a/src/book.cpp +++ b/src/book.cpp @@ -124,10 +124,12 @@ void Book::updateFromOpds(const pugi::xml_node& node, const std::string& urlHost m_id.erase(0, 9); } m_title = VALUE("title"); - m_description = VALUE("description"); + m_name = VALUE("name"); + m_description = VALUE("summary"); m_language = VALUE("language"); m_date = fromOpdsDate(VALUE("updated")); m_creator = node.child("author").child("name").child_value(); + m_publisher = node.child("publisher").child("name").child_value(); m_tags = VALUE("tags"); for(auto linkNode = node.child("link"); linkNode; linkNode = linkNode.next_sibling("link")) { diff --git a/src/opds_dumper.cpp b/src/opds_dumper.cpp index af3f1522d..ceefe0a8d 100644 --- a/src/opds_dumper.cpp +++ b/src/opds_dumper.cpp @@ -71,11 +71,13 @@ void OPDSDumper::setOpenSearchInfo(int totalResults, int startIndex, int count) pugi::xml_node OPDSDumper::handleBook(Book book, pugi::xml_node root_node) { auto entry_node = root_node.append_child("entry"); ADD_TEXT_ENTRY(entry_node, "title", book.getTitle()); + ADD_TEXT_ENTRY(entry_node, "name", book.getName()); ADD_TEXT_ENTRY(entry_node, "id", "urn:uuid:"+book.getId()); ADD_TEXT_ENTRY(entry_node, "icon", rootLocation + "/meta?name=favicon&content=" + book.getHumanReadableIdFromPath()); ADD_TEXT_ENTRY(entry_node, "updated", gen_date_from_yyyy_mm_dd(book.getDate())); ADD_TEXT_ENTRY(entry_node, "summary", book.getDescription()); ADD_TEXT_ENTRY(entry_node, "tags", book.getTags()); + ADD_TEXT_ENTRY(entry_node, "language", book.getLanguage()); auto content_node = entry_node.append_child("link"); content_node.append_attribute("type") = "text/html"; @@ -84,6 +86,9 @@ pugi::xml_node OPDSDumper::handleBook(Book book, pugi::xml_node root_node) { auto author_node = entry_node.append_child("author"); ADD_TEXT_ENTRY(author_node, "name", book.getCreator()); + auto publisher_node = entry_node.append_child("publisher"); + ADD_TEXT_ENTRY(publisher_node, "name", book.getPublisher()); + if (! book.getUrl().empty()) { auto acquisition_link = entry_node.append_child("link"); acquisition_link.append_attribute("rel") = "http://opds-spec.org/acquisition/open-access"; diff --git a/test/library.cpp b/test/library.cpp index 3f4921789..3f23df775 100644 --- a/test/library.cpp +++ b/test/library.cpp @@ -252,7 +252,7 @@ TEST_F(LibraryTest, filterCheck) EXPECT_EQ(bookIds.size(), 1U); bookIds = lib.filter(kiwix::Filter().query("Wiki")); - EXPECT_EQ(bookIds.size(), 3U); + EXPECT_EQ(bookIds.size(), 4U); bookIds = lib.filter(kiwix::Filter().query("Wiki").creator("Wiki")); EXPECT_EQ(bookIds.size(), 1U);