Handling of <dc:issued> in OPDS import

This commit is contained in:
Veloman Yunkan 2022-02-21 22:57:23 +04:00 committed by Matthieu Gautier
parent 42ee14c8f5
commit ae2d7d20dc
2 changed files with 8 additions and 3 deletions

View File

@ -161,7 +161,9 @@ void Book::updateFromOpds(const pugi::xml_node& node, const std::string& urlHost
m_language = VALUE("language"); m_language = VALUE("language");
m_creator = node.child("author").child("name").child_value(); m_creator = node.child("author").child("name").child_value();
m_publisher = node.child("publisher").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_name = VALUE("name");
m_flavour = VALUE("flavour"); m_flavour = VALUE("flavour");
m_tags = VALUE("tags"); m_tags = VALUE("tags");

View File

@ -22,7 +22,9 @@
const char * sampleOpdsStream = R"( const char * sampleOpdsStream = R"(
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:opds="http://opds-spec.org/2010/catalog"> <feed xmlns="http://www.w3.org/2005/Atom"
xmlns:dc="http://purl.org/dc/terms/"
xmlns:opds="http://opds-spec.org/2010/catalog">
<id>00000000-0000-0000-0000-000000000000</id> <id>00000000-0000-0000-0000-000000000000</id>
<entry> <entry>
<title>Encyclopédie de la Tunisie</title> <title>Encyclopédie de la Tunisie</title>
@ -31,6 +33,7 @@ const char * sampleOpdsStream = R"(
<id>urn:uuid:0c45160e-f917-760a-9159-dfe3c53cdcdd</id> <id>urn:uuid:0c45160e-f917-760a-9159-dfe3c53cdcdd</id>
<icon>/meta?name=favicon&amp;content=wikipedia_fr_tunisie_novid_2018-10</icon> <icon>/meta?name=favicon&amp;content=wikipedia_fr_tunisie_novid_2018-10</icon>
<updated>2018-10-08T00:00::00:Z</updated> <updated>2018-10-08T00:00::00:Z</updated>
<dc:issued>8 Oct 2018</dc:issued>
<language>fra</language> <language>fra</language>
<summary>Le meilleur de Wikipédia sur la Tunisie</summary> <summary>Le meilleur de Wikipédia sur la Tunisie</summary>
<tags>wikipedia;novid;_ftindex</tags> <tags>wikipedia;novid;_ftindex</tags>
@ -246,7 +249,7 @@ TEST(LibraryOpdsImportTest, allInOne)
EXPECT_EQ(book1.getName(), "wikipedia_fr_tunisie_novid_2018-10"); EXPECT_EQ(book1.getName(), "wikipedia_fr_tunisie_novid_2018-10");
EXPECT_EQ(book1.getFlavour(), "unforgettable"); EXPECT_EQ(book1.getFlavour(), "unforgettable");
EXPECT_EQ(book1.getLanguage(), "fra"); 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.getDescription(), "Le meilleur de Wikipédia sur la Tunisie");
EXPECT_EQ(book1.getCreator(), "Wikipedia"); EXPECT_EQ(book1.getCreator(), "Wikipedia");
EXPECT_EQ(book1.getPublisher(), "Wikipedia Publishing House"); EXPECT_EQ(book1.getPublisher(), "Wikipedia Publishing House");