Merge pull request #266 from kiwix/filter_by_tag

Allow to search the catalog by tags.
This commit is contained in:
Matthieu Gautier 2019-03-08 15:11:05 +01:00 committed by GitHub
commit 790bd03bd7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -698,6 +698,7 @@ static struct MHD_Response* handle_catalog(RequestContext* request)
} else if (url == "search") {
std::string query;
std::string language;
std::vector<std::string> tags;
size_t count(10);
size_t startIndex(0);
try {
@ -712,13 +713,19 @@ static struct MHD_Response* handle_catalog(RequestContext* request)
try {
startIndex = stoul(request->get_argument("start"));
} catch (...) {}
try {
tags.push_back(request->get_argument("tag"));
} catch (...) {}
opdsDumper.setTitle("Search result for " + query);
uuid = zim::Uuid::generate();
bookIdsToDump = library.listBooksIds(
kiwix::VALID|kiwix::LOCAL|kiwix::REMOTE,
kiwix::UNSORTED,
query,
language);
language,
"", // creator
"", // publisher
tags);
auto totalResults = bookIdsToDump.size();
bookIdsToDump.erase(bookIdsToDump.begin(), bookIdsToDump.begin()+startIndex);
if (count>0 && bookIdsToDump.size() > count) {