diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index 8f628942b..99be804ae 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -666,8 +666,6 @@ InternalServer::search_catalog(const RequestContext& request, { auto filter = kiwix::Filter().valid(true).local(true); string query(""); - size_t count(10); - size_t startIndex(0); try { query = request.get_argument("q"); filter.query(query); @@ -684,12 +682,6 @@ InternalServer::search_catalog(const RequestContext& request, try { filter.lang(request.get_argument("lang")); } catch (const std::out_of_range&) {} - try { - count = extractFromString(request.get_argument("count")); - } catch (...) {} - try { - startIndex = extractFromString(request.get_argument("start")); - } catch (...) {} try { filter.acceptTags(kiwix::split(request.get_argument("tag"), ";")); } catch (...) {} @@ -699,6 +691,14 @@ InternalServer::search_catalog(const RequestContext& request, opdsDumper.setTitle("Search result for " + query); std::vector bookIdsToDump = mp_library->filter(filter); const auto totalResults = bookIdsToDump.size(); + size_t count(10); + size_t startIndex(0); + try { + count = extractFromString(request.get_argument("count")); + } catch (...) {} + try { + startIndex = extractFromString(request.get_argument("start")); + } catch (...) {} const auto s = std::min(startIndex, totalResults); bookIdsToDump.erase(bookIdsToDump.begin(), bookIdsToDump.begin()+s); if (count>0 && bookIdsToDump.size() > count) {