Deprecated Book::getLanguage()

Introduced `Book::getCommaSeparatedLanguages()` instead.
This commit is contained in:
Veloman Yunkan 2023-03-02 17:12:36 +04:00 committed by Matthieu Gautier
parent 2550306052
commit eb002ae306
7 changed files with 15 additions and 10 deletions

View File

@ -79,7 +79,8 @@ class Book
bool isPathValid() const { return m_pathValid; } bool isPathValid() const { return m_pathValid; }
const std::string& getTitle() const { return m_title; } const std::string& getTitle() const { return m_title; }
const std::string& getDescription() const { return m_description; } const std::string& getDescription() const { return m_description; }
const std::string& getLanguage() const { return m_language; } DEPRECATED const std::string& getLanguage() const { return m_language; }
const std::string& getCommaSeparatedLanguages() const { return m_language; }
const std::vector<std::string> getLanguages() const; const std::vector<std::string> getLanguages() const;
const std::string& getCreator() const { return m_creator; } const std::string& getCreator() const { return m_creator; }
const std::string& getPublisher() const { return m_publisher; } const std::string& getPublisher() const { return m_publisher; }

View File

@ -54,7 +54,7 @@ void LibXMLDumper::handleBook(Book book, pugi::xml_node root_node) {
if (book.getOrigId().empty()) { if (book.getOrigId().empty()) {
ADD_ATTR_NOT_EMPTY(entry_node, "title", book.getTitle()); ADD_ATTR_NOT_EMPTY(entry_node, "title", book.getTitle());
ADD_ATTR_NOT_EMPTY(entry_node, "description", book.getDescription()); ADD_ATTR_NOT_EMPTY(entry_node, "description", book.getDescription());
ADD_ATTR_NOT_EMPTY(entry_node, "language", book.getLanguage()); ADD_ATTR_NOT_EMPTY(entry_node, "language", book.getCommaSeparatedLanguages());
ADD_ATTR_NOT_EMPTY(entry_node, "creator", book.getCreator()); ADD_ATTR_NOT_EMPTY(entry_node, "creator", book.getCreator());
ADD_ATTR_NOT_EMPTY(entry_node, "publisher", book.getPublisher()); ADD_ATTR_NOT_EMPTY(entry_node, "publisher", book.getPublisher());
ADD_ATTR_NOT_EMPTY(entry_node, "name", book.getName()); ADD_ATTR_NOT_EMPTY(entry_node, "name", book.getName());
@ -97,7 +97,7 @@ void LibXMLDumper::handleBookmark(Bookmark bookmark, pugi::xml_node root_node) {
auto book = library->getBookByIdThreadSafe(bookmark.getBookId()); auto book = library->getBookByIdThreadSafe(bookmark.getBookId());
ADD_TEXT_ENTRY(book_node, "id", book.getId()); ADD_TEXT_ENTRY(book_node, "id", book.getId());
ADD_TEXT_ENTRY(book_node, "title", book.getTitle()); ADD_TEXT_ENTRY(book_node, "title", book.getTitle());
ADD_TEXT_ENTRY(book_node, "language", book.getLanguage()); ADD_TEXT_ENTRY(book_node, "language", book.getCommaSeparatedLanguages());
ADD_TEXT_ENTRY(book_node, "date", book.getDate()); ADD_TEXT_ENTRY(book_node, "date", book.getDate());
} catch (...) { } catch (...) {
ADD_TEXT_ENTRY(book_node, "id", bookmark.getBookId()); ADD_TEXT_ENTRY(book_node, "id", bookmark.getBookId());

View File

@ -238,7 +238,7 @@ std::string Manager::addBookFromPathAndGetId(const std::string& pathToOpen,
} }
if (!checkMetaData if (!checkMetaData
|| (checkMetaData && !book.getTitle().empty() && !book.getLanguage().empty() || (!book.getTitle().empty() && !book.getLanguages().empty()
&& !book.getDate().empty())) { && !book.getDate().empty())) {
book.setUrl(url); book.setUrl(url);
manipulator->addBookToLibrary(book); manipulator->addBookToLibrary(book);

View File

@ -81,7 +81,7 @@ std::string fullEntryXML(const Book& book, const std::string& rootLocation, cons
{"name", book.getName()}, {"name", book.getName()},
{"title", book.getTitle()}, {"title", book.getTitle()},
{"description", book.getDescription()}, {"description", book.getDescription()},
{"language", book.getLanguage()}, {"language", book.getCommaSeparatedLanguages()},
{"content_id", urlEncode(contentId)}, {"content_id", urlEncode(contentId)},
{"updated", bookDate}, // XXX: this should be the entry update datetime {"updated", bookDate}, // XXX: this should be the entry update datetime
{"book_date", bookDate}, {"book_date", bookDate},

View File

@ -203,14 +203,14 @@ TEST(BookTest, getLanguages)
{ {
const kiwix::Book book = makeBook(R"(id="abcd" language="fra")"); const kiwix::Book book = makeBook(R"(id="abcd" language="fra")");
EXPECT_EQ(book.getLanguage(), "fra"); EXPECT_EQ(book.getCommaSeparatedLanguages(), "fra");
EXPECT_EQ(book.getLanguages(), Langs{ "fra" }); EXPECT_EQ(book.getLanguages(), Langs{ "fra" });
} }
{ {
const kiwix::Book book = makeBook(R"(id="abcd" language="eng,ong,ing")"); const kiwix::Book book = makeBook(R"(id="abcd" language="eng,ong,ing")");
EXPECT_EQ(book.getLanguage(), "eng,ong,ing"); EXPECT_EQ(book.getCommaSeparatedLanguages(), "eng,ong,ing");
EXPECT_EQ(book.getLanguages(), Langs({ "eng", "ong", "ing" })); EXPECT_EQ(book.getLanguages(), Langs({ "eng", "ong", "ing" }));
} }
} }

View File

@ -234,6 +234,8 @@ const char sampleLibraryXML[] = R"(
namespace namespace
{ {
typedef std::vector<std::string> Langs;
TEST(LibraryOpdsImportTest, allInOne) TEST(LibraryOpdsImportTest, allInOne)
{ {
kiwix::Library lib; kiwix::Library lib;
@ -248,7 +250,8 @@ TEST(LibraryOpdsImportTest, allInOne)
EXPECT_EQ(book1.getTitle(), "Encyclopédie de la Tunisie"); EXPECT_EQ(book1.getTitle(), "Encyclopédie de la Tunisie");
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.getLanguages(), Langs{ "fra" });
EXPECT_EQ(book1.getCommaSeparatedLanguages(), "fra");
EXPECT_EQ(book1.getDate(), "8 Oct 2018"); 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");
@ -272,7 +275,8 @@ TEST(LibraryOpdsImportTest, allInOne)
EXPECT_EQ(book2.getTitle(), "TED talks - Business"); EXPECT_EQ(book2.getTitle(), "TED talks - Business");
EXPECT_EQ(book2.getName(), ""); EXPECT_EQ(book2.getName(), "");
EXPECT_EQ(book2.getFlavour(), ""); EXPECT_EQ(book2.getFlavour(), "");
EXPECT_EQ(book2.getLanguage(), "eng"); EXPECT_EQ(book2.getLanguages(), Langs{ "eng" });
EXPECT_EQ(book2.getCommaSeparatedLanguages(), "eng");
EXPECT_EQ(book2.getDate(), "2018-07-23"); EXPECT_EQ(book2.getDate(), "2018-07-23");
EXPECT_EQ(book2.getDescription(), "Ideas worth spreading"); EXPECT_EQ(book2.getDescription(), "Ideas worth spreading");
EXPECT_EQ(book2.getCreator(), "TED"); EXPECT_EQ(book2.getCreator(), "TED");

View File

@ -57,7 +57,7 @@ TEST(ManagerTest, readXml)
EXPECT_EQ("https://example.com/zimfiles/unittest.zim", book.getUrl()); EXPECT_EQ("https://example.com/zimfiles/unittest.zim", book.getUrl());
EXPECT_EQ("Unit Test", book.getTitle()); EXPECT_EQ("Unit Test", book.getTitle());
EXPECT_EQ("Wikipedia articles about unit testing", book.getDescription()); EXPECT_EQ("Wikipedia articles about unit testing", book.getDescription());
EXPECT_EQ("eng", book.getLanguage()); EXPECT_EQ("eng", book.getCommaSeparatedLanguages());
EXPECT_EQ("Wikipedia", book.getCreator()); EXPECT_EQ("Wikipedia", book.getCreator());
EXPECT_EQ("Kiwix", book.getPublisher()); EXPECT_EQ("Kiwix", book.getPublisher());
EXPECT_EQ("2020-03-31", book.getDate()); EXPECT_EQ("2020-03-31", book.getDate());