Fixed indentation

This commit is contained in:
Veloman Yunkan 2022-10-21 16:37:06 +04:00
parent 9d2cc35447
commit 414d7ae4fe
1 changed files with 64 additions and 64 deletions

View File

@ -823,81 +823,81 @@ std::unique_ptr<Response> InternalServer::handle_search(const RequestContext& re
std::unique_ptr<Response> InternalServer::handle_search_request(const RequestContext& request) std::unique_ptr<Response> InternalServer::handle_search_request(const RequestContext& request)
{ {
auto searchInfo = getSearchInfo(request); auto searchInfo = getSearchInfo(request);
auto bookIds = searchInfo.getBookIds(); auto bookIds = searchInfo.getBookIds();
/* Make the search */ /* Make the search */
// Try to get a search from the searchInfo, else build it // Try to get a search from the searchInfo, else build it
auto searcher = mp_library->getSearcherByIds(bookIds); auto searcher = mp_library->getSearcherByIds(bookIds);
auto lock(searcher->getLock()); auto lock(searcher->getLock());
std::shared_ptr<zim::Search> search; std::shared_ptr<zim::Search> search;
try { try {
search = searchCache.getOrPut(searchInfo, search = searchCache.getOrPut(searchInfo,
[=](){ [=](){
return make_shared<zim::Search>(searcher->search(searchInfo.getZimQuery(m_verbose.load()))); return make_shared<zim::Search>(searcher->search(searchInfo.getZimQuery(m_verbose.load())));
}
);
} catch(std::runtime_error& e) {
// Searcher->search will throw a runtime error if there is no valid xapian database to do the search.
// (in case of zim file not containing a index)
const auto cssUrl = renderUrl(m_root, RESOURCE::templates::url_of_search_results_css);
HTTPErrorResponse response(*this, request, MHD_HTTP_NOT_FOUND,
"fulltext-search-unavailable",
"404-page-heading",
cssUrl);
response += nonParameterizedMessage("no-search-results");
// XXX: Now this has to be handled by the iframe-based viewer which
// XXX: has to resolve if the book selection resulted in a single book.
/*
if(bookIds.size() == 1) {
auto bookId = *bookIds.begin();
auto bookName = mp_nameMapper->getNameForId(bookId);
response += TaskbarInfo(bookName, mp_library->getArchiveById(bookId).get());
} }
*/ );
return response; } catch(std::runtime_error& e) {
} // Searcher->search will throw a runtime error if there is no valid xapian database to do the search.
// (in case of zim file not containing a index)
auto start = 1; const auto cssUrl = renderUrl(m_root, RESOURCE::templates::url_of_search_results_css);
try { HTTPErrorResponse response(*this, request, MHD_HTTP_NOT_FOUND,
start = request.get_argument<unsigned int>("start"); "fulltext-search-unavailable",
} catch (const std::exception&) {} "404-page-heading",
start = max(1, start); cssUrl);
response += nonParameterizedMessage("no-search-results");
auto pageLength = 25;
try {
pageLength = request.get_argument<unsigned int>("pageLength");
} catch (const std::exception&) {}
if (pageLength > MAX_SEARCH_LEN) {
pageLength = MAX_SEARCH_LEN;
}
if (pageLength == 0) {
pageLength = 25;
}
/* Get the results */
SearchRenderer renderer(search->getResults(start-1, pageLength), mp_nameMapper, mp_library, start,
search->getEstimatedMatches());
renderer.setSearchPattern(searchInfo.pattern);
renderer.setSearchBookQuery(searchInfo.bookFilterQuery);
renderer.setProtocolPrefix(m_root + "/content/");
renderer.setSearchProtocolPrefix(m_root + "/search");
renderer.setPageLength(pageLength);
if (request.get_requested_format() == "xml") {
return ContentResponse::build(*this, renderer.getXml(), "application/rss+xml; charset=utf-8");
}
auto response = ContentResponse::build(*this, renderer.getHtml(), "text/html; charset=utf-8");
// XXX: Now this has to be handled by the iframe-based viewer which // XXX: Now this has to be handled by the iframe-based viewer which
// XXX: has to resolve if the book selection resulted in a single book. // XXX: has to resolve if the book selection resulted in a single book.
/* /*
if(bookIds.size() == 1) { if(bookIds.size() == 1) {
auto bookId = *bookIds.begin(); auto bookId = *bookIds.begin();
auto bookName = mp_nameMapper->getNameForId(bookId); auto bookName = mp_nameMapper->getNameForId(bookId);
response->set_taskbar(bookName, mp_library->getArchiveById(bookId).get()); response += TaskbarInfo(bookName, mp_library->getArchiveById(bookId).get());
} }
*/ */
return std::move(response); return response;
}
auto start = 1;
try {
start = request.get_argument<unsigned int>("start");
} catch (const std::exception&) {}
start = max(1, start);
auto pageLength = 25;
try {
pageLength = request.get_argument<unsigned int>("pageLength");
} catch (const std::exception&) {}
if (pageLength > MAX_SEARCH_LEN) {
pageLength = MAX_SEARCH_LEN;
}
if (pageLength == 0) {
pageLength = 25;
}
/* Get the results */
SearchRenderer renderer(search->getResults(start-1, pageLength), mp_nameMapper, mp_library, start,
search->getEstimatedMatches());
renderer.setSearchPattern(searchInfo.pattern);
renderer.setSearchBookQuery(searchInfo.bookFilterQuery);
renderer.setProtocolPrefix(m_root + "/content/");
renderer.setSearchProtocolPrefix(m_root + "/search");
renderer.setPageLength(pageLength);
if (request.get_requested_format() == "xml") {
return ContentResponse::build(*this, renderer.getXml(), "application/rss+xml; charset=utf-8");
}
auto response = ContentResponse::build(*this, renderer.getHtml(), "text/html; charset=utf-8");
// XXX: Now this has to be handled by the iframe-based viewer which
// XXX: has to resolve if the book selection resulted in a single book.
/*
if(bookIds.size() == 1) {
auto bookId = *bookIds.begin();
auto bookName = mp_nameMapper->getNameForId(bookId);
response->set_taskbar(bookName, mp_library->getArchiveById(bookId).get());
}
*/
return std::move(response);
} }
std::unique_ptr<Response> InternalServer::handle_random(const RequestContext& request) std::unique_ptr<Response> InternalServer::handle_random(const RequestContext& request)