From ae2d7d20dccf5befbb9cada75c282c8edc675ed0 Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Mon, 21 Feb 2022 22:57:23 +0400 Subject: [PATCH] Handling of in OPDS import --- src/book.cpp | 4 +++- test/library.cpp | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/book.cpp b/src/book.cpp index 17201e33a..c49ab2f19 100644 --- a/src/book.cpp +++ b/src/book.cpp @@ -161,7 +161,9 @@ void Book::updateFromOpds(const pugi::xml_node& node, const std::string& urlHost m_language = VALUE("language"); m_creator = node.child("author").child("name").child_value(); m_publisher = node.child("publisher").child("name").child_value(); - m_date = fromOpdsDate(VALUE("updated")); + const std::string dcIssuedDate = VALUE("dc:issued"); + m_date = dcIssuedDate.empty() ? VALUE("updated") : dcIssuedDate; + m_date = fromOpdsDate(m_date); m_name = VALUE("name"); m_flavour = VALUE("flavour"); m_tags = VALUE("tags"); diff --git a/test/library.cpp b/test/library.cpp index ab6ed2683..133b284ac 100644 --- a/test/library.cpp +++ b/test/library.cpp @@ -22,7 +22,9 @@ const char * sampleOpdsStream = R"( - + 00000000-0000-0000-0000-000000000000 Encyclopédie de la Tunisie @@ -31,6 +33,7 @@ const char * sampleOpdsStream = R"( urn:uuid:0c45160e-f917-760a-9159-dfe3c53cdcdd /meta?name=favicon&content=wikipedia_fr_tunisie_novid_2018-10 2018-10-08T00:00::00:Z + 8 Oct 2018 fra Le meilleur de Wikipédia sur la Tunisie wikipedia;novid;_ftindex @@ -246,7 +249,7 @@ TEST(LibraryOpdsImportTest, allInOne) EXPECT_EQ(book1.getName(), "wikipedia_fr_tunisie_novid_2018-10"); EXPECT_EQ(book1.getFlavour(), "unforgettable"); EXPECT_EQ(book1.getLanguage(), "fra"); - EXPECT_EQ(book1.getDate(), "2018-10-08"); + EXPECT_EQ(book1.getDate(), "8 Oct 2018"); EXPECT_EQ(book1.getDescription(), "Le meilleur de Wikipédia sur la Tunisie"); EXPECT_EQ(book1.getCreator(), "Wikipedia"); EXPECT_EQ(book1.getPublisher(), "Wikipedia Publishing House");