mirror of https://github.com/kiwix/libkiwix.git
Extracted get_search_filter()
This commit is contained in:
parent
208dece7e3
commit
4aa3c792aa
|
@ -660,15 +660,14 @@ std::unique_ptr<Response> InternalServer::handle_catalog(const RequestContext& r
|
||||||
return std::move(response);
|
return std::move(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string>
|
namespace
|
||||||
InternalServer::search_catalog(const RequestContext& request,
|
{
|
||||||
kiwix::OPDSDumper& opdsDumper)
|
|
||||||
|
Filter get_search_filter(const RequestContext& request)
|
||||||
{
|
{
|
||||||
auto filter = kiwix::Filter().valid(true).local(true);
|
auto filter = kiwix::Filter().valid(true).local(true);
|
||||||
string query("<Empty query>");
|
|
||||||
try {
|
try {
|
||||||
query = request.get_argument("q");
|
filter.query(request.get_argument("q"));
|
||||||
filter.query(query);
|
|
||||||
} catch (const std::out_of_range&) {}
|
} catch (const std::out_of_range&) {}
|
||||||
try {
|
try {
|
||||||
filter.maxSize(extractFromString<unsigned long>(request.get_argument("maxsize")));
|
filter.maxSize(extractFromString<unsigned long>(request.get_argument("maxsize")));
|
||||||
|
@ -688,7 +687,20 @@ InternalServer::search_catalog(const RequestContext& request,
|
||||||
try {
|
try {
|
||||||
filter.rejectTags(kiwix::split(request.get_argument("notag"), ";"));
|
filter.rejectTags(kiwix::split(request.get_argument("notag"), ";"));
|
||||||
} catch (...) {}
|
} catch (...) {}
|
||||||
opdsDumper.setTitle("Search result for " + query);
|
return filter;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // unnamed namespace
|
||||||
|
|
||||||
|
std::vector<std::string>
|
||||||
|
InternalServer::search_catalog(const RequestContext& request,
|
||||||
|
kiwix::OPDSDumper& opdsDumper)
|
||||||
|
{
|
||||||
|
const auto filter = get_search_filter(request);
|
||||||
|
const std::string q = filter.hasQuery()
|
||||||
|
? filter.getQuery()
|
||||||
|
: "<Empty query>";
|
||||||
|
opdsDumper.setTitle("Search result for " + q);
|
||||||
std::vector<std::string> bookIdsToDump = mp_library->filter(filter);
|
std::vector<std::string> bookIdsToDump = mp_library->filter(filter);
|
||||||
const auto totalResults = bookIdsToDump.size();
|
const auto totalResults = bookIdsToDump.size();
|
||||||
size_t count(10);
|
size_t count(10);
|
||||||
|
|
Loading…
Reference in New Issue