fixup! Add catalog filtering using ZIM aliasname

This commit is contained in:
Nikhil Tanwar 2022-09-01 21:17:49 +05:30 committed by Kelson
parent 956c597e80
commit 8a3a0b08c2
3 changed files with 8 additions and 2 deletions

View File

@ -54,6 +54,7 @@ class HumanReadableNameMapper : public NameMapper {
virtual ~HumanReadableNameMapper() = default; virtual ~HumanReadableNameMapper() = default;
virtual std::string getNameForId(const std::string& id) const; virtual std::string getNameForId(const std::string& id) const;
virtual std::string getIdForName(const std::string& name) const; virtual std::string getIdForName(const std::string& name) const;
static std::string removeDateFromBookId(const std::string& bookId);
}; };
class UpdatableNameMapper : public NameMapper { class UpdatableNameMapper : public NameMapper {

View File

@ -28,6 +28,7 @@
#include "tools/stringTools.h" #include "tools/stringTools.h"
#include "tools/otherTools.h" #include "tools/otherTools.h"
#include "tools/concurrent_cache.h" #include "tools/concurrent_cache.h"
#include "name_mapper.h"
#include <pugixml.hpp> #include <pugixml.hpp>
#include <algorithm> #include <algorithm>
@ -462,7 +463,7 @@ void Library::updateBookDB(const Book& book)
indexer.index_text(normalizeText(book.getName()), 1, "XN"); indexer.index_text(normalizeText(book.getName()), 1, "XN");
indexer.index_text(normalizeText(book.getCategory()), 1, "XC"); indexer.index_text(normalizeText(book.getCategory()), 1, "XC");
const auto bookName = book.getHumanReadableIdFromPath(); const auto bookName = book.getHumanReadableIdFromPath();
const auto aliasName = replaceRegex(bookName, "", "_[[:digit:]]{4}-[[:digit:]]{2}$"); const auto aliasName = HumanReadableNameMapper::removeDateFromBookId(bookName);
indexer.index_text(normalizeText(aliasName), 1, "XF"); indexer.index_text(normalizeText(aliasName), 1, "XF");
for ( const auto& tag : split(normalizeText(book.getTags()), ";") ) { for ( const auto& tag : split(normalizeText(book.getTags()), ";") ) {

View File

@ -34,7 +34,7 @@ HumanReadableNameMapper::HumanReadableNameMapper(kiwix::Library& library, bool w
if (!withAlias) if (!withAlias)
continue; continue;
auto aliasName = replaceRegex(bookName, "", "_[[:digit:]]{4}-[[:digit:]]{2}$"); auto aliasName = removeDateFromBookId(bookName);
if (aliasName == bookName) { if (aliasName == bookName) {
continue; continue;
} }
@ -51,6 +51,10 @@ HumanReadableNameMapper::HumanReadableNameMapper(kiwix::Library& library, bool w
} }
} }
std::string HumanReadableNameMapper::removeDateFromBookId(const std::string& bookId) {
return replaceRegex(bookId, "", "_[[:digit:]]{4}-[[:digit:]]{2}$");
}
std::string HumanReadableNameMapper::getNameForId(const std::string& id) const { std::string HumanReadableNameMapper::getNameForId(const std::string& id) const {
return m_idToName.at(id); return m_idToName.at(id);
} }