mirror of https://github.com/kiwix/libkiwix.git
URI-encoding of the root location part
Now the root location is URI-encoded too. In order to properly test this change the root location in the tests was changed from "/ROOT" to "/ROOT#?" (or "/ROOT%23%3F" in URI-encoded form), which is why this commit is so big.
This commit is contained in:
parent
97f0314fe6
commit
05a66ead6e
|
@ -430,7 +430,9 @@ InternalServer::InternalServer(Library* library,
|
||||||
searchCache(getEnvVar<int>("KIWIX_SEARCH_CACHE_SIZE", DEFAULT_CACHE_SIZE)),
|
searchCache(getEnvVar<int>("KIWIX_SEARCH_CACHE_SIZE", DEFAULT_CACHE_SIZE)),
|
||||||
suggestionSearcherCache(getEnvVar<int>("KIWIX_SUGGESTION_SEARCHER_CACHE_SIZE", std::max((unsigned int) (mp_library->getBookCount(true, true)*0.1), 1U))),
|
suggestionSearcherCache(getEnvVar<int>("KIWIX_SUGGESTION_SEARCHER_CACHE_SIZE", std::max((unsigned int) (mp_library->getBookCount(true, true)*0.1), 1U))),
|
||||||
m_customizedResources(new CustomizedResources)
|
m_customizedResources(new CustomizedResources)
|
||||||
{}
|
{
|
||||||
|
m_root = urlEncode(m_root);
|
||||||
|
}
|
||||||
|
|
||||||
InternalServer::~InternalServer() = default;
|
InternalServer::~InternalServer() = default;
|
||||||
|
|
||||||
|
@ -621,7 +623,7 @@ std::unique_ptr<Response> InternalServer::handle_request(const RequestContext& r
|
||||||
if (isEndpointUrl(url, "catch"))
|
if (isEndpointUrl(url, "catch"))
|
||||||
return handle_catch(request);
|
return handle_catch(request);
|
||||||
|
|
||||||
std::string contentUrl = urlEncode(m_root + "/content" + url);
|
std::string contentUrl = m_root + "/content" + urlEncode(url);
|
||||||
const std::string query = request.get_query();
|
const std::string query = request.get_query();
|
||||||
if ( ! query.empty() )
|
if ( ! query.empty() )
|
||||||
contentUrl += "?" + query;
|
contentUrl += "?" + query;
|
||||||
|
@ -1044,8 +1046,9 @@ ParameterizedMessage suggestSearchMsg(const std::string& searchURL, const std::s
|
||||||
std::unique_ptr<Response>
|
std::unique_ptr<Response>
|
||||||
InternalServer::build_redirect(const std::string& bookName, const zim::Item& item) const
|
InternalServer::build_redirect(const std::string& bookName, const zim::Item& item) const
|
||||||
{
|
{
|
||||||
const auto absPath = m_root + "/content/" + bookName + "/" + item.getPath();
|
const auto contentPath = "/content/" + bookName + "/" + item.getPath();
|
||||||
return Response::build_redirect(*this, kiwix::urlEncode(absPath));
|
const auto url = m_root + kiwix::urlEncode(contentPath);
|
||||||
|
return Response::build_redirect(*this, url);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<Response> InternalServer::handle_content(const RequestContext& request)
|
std::unique_ptr<Response> InternalServer::handle_content(const RequestContext& request)
|
||||||
|
|
|
@ -163,8 +163,8 @@ class InternalServer {
|
||||||
private: // data
|
private: // data
|
||||||
std::string m_addr;
|
std::string m_addr;
|
||||||
int m_port;
|
int m_port;
|
||||||
std::string m_root;
|
std::string m_root; // URI-encoded
|
||||||
std::string m_rootWithSeparator;
|
std::string m_rootWithSeparator; // URI-decoded
|
||||||
int m_nbThreads;
|
int m_nbThreads;
|
||||||
unsigned int m_multizimSearchLimit;
|
unsigned int m_multizimSearchLimit;
|
||||||
std::atomic_bool m_verbose;
|
std::atomic_bool m_verbose;
|
||||||
|
|
|
@ -52,12 +52,12 @@ RequestMethod str2RequestMethod(const std::string& method) {
|
||||||
} // unnamed namespace
|
} // unnamed namespace
|
||||||
|
|
||||||
RequestContext::RequestContext(struct MHD_Connection* connection,
|
RequestContext::RequestContext(struct MHD_Connection* connection,
|
||||||
const std::string& _rootLocation,
|
const std::string& _rootLocation, // URI-encoded
|
||||||
const std::string& unrootedUrl,
|
const std::string& unrootedUrl, // URI-decoded
|
||||||
const std::string& _method,
|
const std::string& _method,
|
||||||
const std::string& version) :
|
const std::string& version) :
|
||||||
rootLocation(_rootLocation),
|
rootLocation(_rootLocation),
|
||||||
full_url(_rootLocation + unrootedUrl),
|
full_url(_rootLocation + urlEncode(unrootedUrl)),
|
||||||
url(unrootedUrl),
|
url(unrootedUrl),
|
||||||
method(str2RequestMethod(_method)),
|
method(str2RequestMethod(_method)),
|
||||||
version(version),
|
version(version),
|
||||||
|
|
|
@ -57,8 +57,8 @@ class IndexError: public std::runtime_error {};
|
||||||
class RequestContext {
|
class RequestContext {
|
||||||
public: // functions
|
public: // functions
|
||||||
RequestContext(struct MHD_Connection* connection,
|
RequestContext(struct MHD_Connection* connection,
|
||||||
const std::string& rootLocation,
|
const std::string& rootLocation, // URI-encoded
|
||||||
const std::string& unrootedUrl,
|
const std::string& unrootedUrl, // URI-decoded
|
||||||
const std::string& method,
|
const std::string& method,
|
||||||
const std::string& version);
|
const std::string& version);
|
||||||
~RequestContext();
|
~RequestContext();
|
||||||
|
|
|
@ -200,7 +200,7 @@ HTTP404Response::HTTP404Response(const InternalServer& server,
|
||||||
|
|
||||||
HTTPErrorResponse& HTTP404Response::operator+(UrlNotFoundMsg /*unused*/)
|
HTTPErrorResponse& HTTP404Response::operator+(UrlNotFoundMsg /*unused*/)
|
||||||
{
|
{
|
||||||
const std::string requestUrl = m_request.get_full_url();
|
const std::string requestUrl = urlDecode(m_request.get_full_url(), false);
|
||||||
return *this + ParameterizedMessage("url-not-found", {{"url", requestUrl}});
|
return *this + ParameterizedMessage("url-not-found", {{"url", requestUrl}});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,7 +234,7 @@ HTTP400Response::HTTP400Response(const InternalServer& server,
|
||||||
|
|
||||||
HTTPErrorResponse& HTTP400Response::operator+(InvalidUrlMsg /*unused*/)
|
HTTPErrorResponse& HTTP400Response::operator+(InvalidUrlMsg /*unused*/)
|
||||||
{
|
{
|
||||||
std::string requestUrl = m_request.get_full_url();
|
std::string requestUrl = urlDecode(m_request.get_full_url(), false);
|
||||||
const auto query = m_request.get_query();
|
const auto query = m_request.get_query();
|
||||||
if (!query.empty()) {
|
if (!query.empty()) {
|
||||||
requestUrl += "?" + encodeDiples(query);
|
requestUrl += "?" + encodeDiples(query);
|
||||||
|
|
|
@ -73,7 +73,7 @@ std::string maskVariableOPDSFeedData(std::string s)
|
||||||
" <link rel=\"self\" href=\"\" type=\"application/atom+xml\" />\n" \
|
" <link rel=\"self\" href=\"\" type=\"application/atom+xml\" />\n" \
|
||||||
" <link rel=\"search\"" \
|
" <link rel=\"search\"" \
|
||||||
" type=\"application/opensearchdescription+xml\"" \
|
" type=\"application/opensearchdescription+xml\"" \
|
||||||
" href=\"/ROOT/catalog/searchdescription.xml\" />\n"
|
" href=\"/ROOT%23%3F/catalog/searchdescription.xml\" />\n"
|
||||||
|
|
||||||
#define CATALOG_ENTRY(UUID, TITLE, SUMMARY, LANG, NAME, CATEGORY, TAGS, EXTRA_LINK, CONTENT_NAME, FILE_NAME, LENGTH) \
|
#define CATALOG_ENTRY(UUID, TITLE, SUMMARY, LANG, NAME, CATEGORY, TAGS, EXTRA_LINK, CONTENT_NAME, FILE_NAME, LENGTH) \
|
||||||
" <entry>\n" \
|
" <entry>\n" \
|
||||||
|
@ -88,7 +88,7 @@ std::string maskVariableOPDSFeedData(std::string s)
|
||||||
" <tags>" TAGS "</tags>\n" \
|
" <tags>" TAGS "</tags>\n" \
|
||||||
" <articleCount>284</articleCount>\n" \
|
" <articleCount>284</articleCount>\n" \
|
||||||
" <mediaCount>2</mediaCount>\n" \
|
" <mediaCount>2</mediaCount>\n" \
|
||||||
" " EXTRA_LINK "<link type=\"text/html\" href=\"/ROOT/content/" CONTENT_NAME "\" />\n" \
|
" " EXTRA_LINK "<link type=\"text/html\" href=\"/ROOT%23%3F/content/" CONTENT_NAME "\" />\n" \
|
||||||
" <author>\n" \
|
" <author>\n" \
|
||||||
" <name>Wikipedia</name>\n" \
|
" <name>Wikipedia</name>\n" \
|
||||||
" </author>\n" \
|
" </author>\n" \
|
||||||
|
@ -126,7 +126,7 @@ std::string maskVariableOPDSFeedData(std::string s)
|
||||||
"wikipedia",\
|
"wikipedia",\
|
||||||
"public_tag_without_a_value;_private_tag_without_a_value;wikipedia;_category:wikipedia;_pictures:no;_videos:no;_details:no;_ftindex:yes",\
|
"public_tag_without_a_value;_private_tag_without_a_value;wikipedia;_category:wikipedia;_pictures:no;_videos:no;_details:no;_ftindex:yes",\
|
||||||
"<link rel=\"http://opds-spec.org/image/thumbnail\"\n" \
|
"<link rel=\"http://opds-spec.org/image/thumbnail\"\n" \
|
||||||
" href=\"/ROOT/catalog/v2/illustration/raycharles/?size=48\"\n" \
|
" href=\"/ROOT%23%3F/catalog/v2/illustration/raycharles/?size=48\"\n" \
|
||||||
" type=\"image/png;width=48;height=48;scale=1\"/>\n ", \
|
" type=\"image/png;width=48;height=48;scale=1\"/>\n ", \
|
||||||
CONTENT_NAME, \
|
CONTENT_NAME, \
|
||||||
"zimfile", \
|
"zimfile", \
|
||||||
|
@ -152,7 +152,7 @@ std::string maskVariableOPDSFeedData(std::string s)
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_root_xml)
|
TEST_F(LibraryServerTest, catalog_root_xml)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/root.xml");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/root.xml");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -170,7 +170,7 @@ TEST_F(LibraryServerTest, catalog_root_xml)
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_searchdescription_xml)
|
TEST_F(LibraryServerTest, catalog_searchdescription_xml)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/searchdescription.xml");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/searchdescription.xml");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(r->body,
|
EXPECT_EQ(r->body,
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
|
@ -181,14 +181,14 @@ TEST_F(LibraryServerTest, catalog_searchdescription_xml)
|
||||||
" xmlns:atom=\"http://www.w3.org/2005/Atom\"\n"
|
" xmlns:atom=\"http://www.w3.org/2005/Atom\"\n"
|
||||||
" xmlns:k=\"http://kiwix.org/opensearchextension/1.0\"\n"
|
" xmlns:k=\"http://kiwix.org/opensearchextension/1.0\"\n"
|
||||||
" indexOffset=\"0\"\n"
|
" indexOffset=\"0\"\n"
|
||||||
" template=\"/ROOT/catalog/search?q={searchTerms?}&lang={language?}&name={k:name?}&tag={k:tag?}¬ag={k:notag?}&maxsize={k:maxsize?}&count={count?}&start={startIndex?}\"/>\n"
|
" template=\"/ROOT%23%3F/catalog/search?q={searchTerms?}&lang={language?}&name={k:name?}&tag={k:tag?}¬ag={k:notag?}&maxsize={k:maxsize?}&count={count?}&start={startIndex?}\"/>\n"
|
||||||
"</OpenSearchDescription>\n"
|
"</OpenSearchDescription>\n"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_search_by_phrase)
|
TEST_F(LibraryServerTest, catalog_search_by_phrase)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?q=\"ray%20charles\"");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?q=\"ray%20charles\"");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -207,7 +207,7 @@ TEST_F(LibraryServerTest, catalog_search_by_phrase)
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_search_by_words)
|
TEST_F(LibraryServerTest, catalog_search_by_words)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?q=ray%20charles");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?q=ray%20charles");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -228,7 +228,7 @@ TEST_F(LibraryServerTest, catalog_search_by_words)
|
||||||
TEST_F(LibraryServerTest, catalog_prefix_search)
|
TEST_F(LibraryServerTest, catalog_prefix_search)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?q=description:ray%20description:charles");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?q=description:ray%20description:charles");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -245,7 +245,7 @@ TEST_F(LibraryServerTest, catalog_prefix_search)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?q=title:\"ray%20charles\"");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?q=title:\"ray%20charles\"");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -264,7 +264,7 @@ TEST_F(LibraryServerTest, catalog_prefix_search)
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_search_with_word_exclusion)
|
TEST_F(LibraryServerTest, catalog_search_with_word_exclusion)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?q=ray%20-uncategorized");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?q=ray%20-uncategorized");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -283,7 +283,7 @@ TEST_F(LibraryServerTest, catalog_search_with_word_exclusion)
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_search_by_tag)
|
TEST_F(LibraryServerTest, catalog_search_by_tag)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?tag=_category:jazz");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?tag=_category:jazz");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -301,7 +301,7 @@ TEST_F(LibraryServerTest, catalog_search_by_tag)
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_search_by_category)
|
TEST_F(LibraryServerTest, catalog_search_by_category)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?category=jazz");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?category=jazz");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -320,7 +320,7 @@ TEST_F(LibraryServerTest, catalog_search_by_category)
|
||||||
TEST_F(LibraryServerTest, catalog_search_by_language)
|
TEST_F(LibraryServerTest, catalog_search_by_language)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?lang=eng");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?lang=eng");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -337,7 +337,7 @@ TEST_F(LibraryServerTest, catalog_search_by_language)
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?lang=eng,fra");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?lang=eng,fra");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -358,7 +358,7 @@ TEST_F(LibraryServerTest, catalog_search_by_language)
|
||||||
TEST_F(LibraryServerTest, catalog_search_results_pagination)
|
TEST_F(LibraryServerTest, catalog_search_results_pagination)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?count=0");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?count=0");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -376,7 +376,7 @@ TEST_F(LibraryServerTest, catalog_search_results_pagination)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?count=1");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?count=1");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -392,7 +392,7 @@ TEST_F(LibraryServerTest, catalog_search_results_pagination)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?start=1&count=1");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?start=1&count=1");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -408,7 +408,7 @@ TEST_F(LibraryServerTest, catalog_search_results_pagination)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?start=100&count=10");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?start=100&count=10");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -426,20 +426,20 @@ TEST_F(LibraryServerTest, catalog_search_results_pagination)
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_v2_root)
|
TEST_F(LibraryServerTest, catalog_v2_root)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/root.xml");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/root.xml");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
const char expected_output[] = R"(<?xml version="1.0" encoding="UTF-8"?>
|
const char expected_output[] = R"(<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom"
|
<feed xmlns="http://www.w3.org/2005/Atom"
|
||||||
xmlns:opds="https://specs.opds.io/opds-1.2">
|
xmlns:opds="https://specs.opds.io/opds-1.2">
|
||||||
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
||||||
<link rel="self"
|
<link rel="self"
|
||||||
href="/ROOT/catalog/v2/root.xml"
|
href="/ROOT%23%3F/catalog/v2/root.xml"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||||
<link rel="start"
|
<link rel="start"
|
||||||
href="/ROOT/catalog/v2/root.xml"
|
href="/ROOT%23%3F/catalog/v2/root.xml"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||||
<link rel="search"
|
<link rel="search"
|
||||||
href="/ROOT/catalog/v2/searchdescription.xml"
|
href="/ROOT%23%3F/catalog/v2/searchdescription.xml"
|
||||||
type="application/opensearchdescription+xml"/>
|
type="application/opensearchdescription+xml"/>
|
||||||
<title>OPDS Catalog Root</title>
|
<title>OPDS Catalog Root</title>
|
||||||
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
||||||
|
@ -447,7 +447,7 @@ TEST_F(LibraryServerTest, catalog_v2_root)
|
||||||
<entry>
|
<entry>
|
||||||
<title>All entries</title>
|
<title>All entries</title>
|
||||||
<link rel="subsection"
|
<link rel="subsection"
|
||||||
href="/ROOT/catalog/v2/entries"
|
href="/ROOT%23%3F/catalog/v2/entries"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||||
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
||||||
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
||||||
|
@ -456,7 +456,7 @@ TEST_F(LibraryServerTest, catalog_v2_root)
|
||||||
<entry>
|
<entry>
|
||||||
<title>All entries (partial)</title>
|
<title>All entries (partial)</title>
|
||||||
<link rel="subsection"
|
<link rel="subsection"
|
||||||
href="/ROOT/catalog/v2/partial_entries"
|
href="/ROOT%23%3F/catalog/v2/partial_entries"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||||
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
||||||
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
||||||
|
@ -465,7 +465,7 @@ TEST_F(LibraryServerTest, catalog_v2_root)
|
||||||
<entry>
|
<entry>
|
||||||
<title>List of categories</title>
|
<title>List of categories</title>
|
||||||
<link rel="subsection"
|
<link rel="subsection"
|
||||||
href="/ROOT/catalog/v2/categories"
|
href="/ROOT%23%3F/catalog/v2/categories"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||||
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
||||||
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
||||||
|
@ -474,7 +474,7 @@ TEST_F(LibraryServerTest, catalog_v2_root)
|
||||||
<entry>
|
<entry>
|
||||||
<title>List of languages</title>
|
<title>List of languages</title>
|
||||||
<link rel="subsection"
|
<link rel="subsection"
|
||||||
href="/ROOT/catalog/v2/languages"
|
href="/ROOT%23%3F/catalog/v2/languages"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||||
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
||||||
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
||||||
|
@ -487,7 +487,7 @@ TEST_F(LibraryServerTest, catalog_v2_root)
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_v2_searchdescription_xml)
|
TEST_F(LibraryServerTest, catalog_v2_searchdescription_xml)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/searchdescription.xml");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/searchdescription.xml");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(r->body,
|
EXPECT_EQ(r->body,
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
|
@ -498,24 +498,24 @@ TEST_F(LibraryServerTest, catalog_v2_searchdescription_xml)
|
||||||
" xmlns:atom=\"http://www.w3.org/2005/Atom\"\n"
|
" xmlns:atom=\"http://www.w3.org/2005/Atom\"\n"
|
||||||
" xmlns:k=\"http://kiwix.org/opensearchextension/1.0\"\n"
|
" xmlns:k=\"http://kiwix.org/opensearchextension/1.0\"\n"
|
||||||
" indexOffset=\"0\"\n"
|
" indexOffset=\"0\"\n"
|
||||||
" template=\"/ROOT/catalog/v2/entries?q={searchTerms?}&lang={language?}&name={k:name?}&tag={k:tag?}&maxsize={k:maxsize?}&count={count?}&start={startIndex?}\"/>\n"
|
" template=\"/ROOT%23%3F/catalog/v2/entries?q={searchTerms?}&lang={language?}&name={k:name?}&tag={k:tag?}&maxsize={k:maxsize?}&count={count?}&start={startIndex?}\"/>\n"
|
||||||
"</OpenSearchDescription>\n"
|
"</OpenSearchDescription>\n"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_v2_categories)
|
TEST_F(LibraryServerTest, catalog_v2_categories)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/categories");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/categories");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
const char expected_output[] = R"(<?xml version="1.0" encoding="UTF-8"?>
|
const char expected_output[] = R"(<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom"
|
<feed xmlns="http://www.w3.org/2005/Atom"
|
||||||
xmlns:opds="https://specs.opds.io/opds-1.2">
|
xmlns:opds="https://specs.opds.io/opds-1.2">
|
||||||
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
||||||
<link rel="self"
|
<link rel="self"
|
||||||
href="/ROOT/catalog/v2/categories"
|
href="/ROOT%23%3F/catalog/v2/categories"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||||
<link rel="start"
|
<link rel="start"
|
||||||
href="/ROOT/catalog/v2/root.xml"
|
href="/ROOT%23%3F/catalog/v2/root.xml"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||||
<title>List of categories</title>
|
<title>List of categories</title>
|
||||||
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
||||||
|
@ -523,7 +523,7 @@ TEST_F(LibraryServerTest, catalog_v2_categories)
|
||||||
<entry>
|
<entry>
|
||||||
<title>jazz</title>
|
<title>jazz</title>
|
||||||
<link rel="subsection"
|
<link rel="subsection"
|
||||||
href="/ROOT/catalog/v2/entries?category=jazz"
|
href="/ROOT%23%3F/catalog/v2/entries?category=jazz"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||||
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
||||||
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
||||||
|
@ -532,7 +532,7 @@ TEST_F(LibraryServerTest, catalog_v2_categories)
|
||||||
<entry>
|
<entry>
|
||||||
<title>wikipedia</title>
|
<title>wikipedia</title>
|
||||||
<link rel="subsection"
|
<link rel="subsection"
|
||||||
href="/ROOT/catalog/v2/entries?category=wikipedia"
|
href="/ROOT%23%3F/catalog/v2/entries?category=wikipedia"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||||
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
||||||
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
||||||
|
@ -545,7 +545,7 @@ TEST_F(LibraryServerTest, catalog_v2_categories)
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_v2_languages)
|
TEST_F(LibraryServerTest, catalog_v2_languages)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/languages");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/languages");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
const char expected_output[] = R"(<?xml version="1.0" encoding="UTF-8"?>
|
const char expected_output[] = R"(<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<feed xmlns="http://www.w3.org/2005/Atom"
|
<feed xmlns="http://www.w3.org/2005/Atom"
|
||||||
|
@ -554,10 +554,10 @@ TEST_F(LibraryServerTest, catalog_v2_languages)
|
||||||
xmlns:thr="http://purl.org/syndication/thread/1.0">
|
xmlns:thr="http://purl.org/syndication/thread/1.0">
|
||||||
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
||||||
<link rel="self"
|
<link rel="self"
|
||||||
href="/ROOT/catalog/v2/languages"
|
href="/ROOT%23%3F/catalog/v2/languages"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||||
<link rel="start"
|
<link rel="start"
|
||||||
href="/ROOT/catalog/v2/root.xml"
|
href="/ROOT%23%3F/catalog/v2/root.xml"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
type="application/atom+xml;profile=opds-catalog;kind=navigation"/>
|
||||||
<title>List of languages</title>
|
<title>List of languages</title>
|
||||||
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
||||||
|
@ -567,7 +567,7 @@ TEST_F(LibraryServerTest, catalog_v2_languages)
|
||||||
<dc:language>eng</dc:language>
|
<dc:language>eng</dc:language>
|
||||||
<thr:count>1</thr:count>
|
<thr:count>1</thr:count>
|
||||||
<link rel="subsection"
|
<link rel="subsection"
|
||||||
href="/ROOT/catalog/v2/entries?lang=eng"
|
href="/ROOT%23%3F/catalog/v2/entries?lang=eng"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||||
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
||||||
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
||||||
|
@ -577,7 +577,7 @@ TEST_F(LibraryServerTest, catalog_v2_languages)
|
||||||
<dc:language>fra</dc:language>
|
<dc:language>fra</dc:language>
|
||||||
<thr:count>1</thr:count>
|
<thr:count>1</thr:count>
|
||||||
<link rel="subsection"
|
<link rel="subsection"
|
||||||
href="/ROOT/catalog/v2/entries?lang=fra"
|
href="/ROOT%23%3F/catalog/v2/entries?lang=fra"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||||
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
||||||
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
||||||
|
@ -587,7 +587,7 @@ TEST_F(LibraryServerTest, catalog_v2_languages)
|
||||||
<dc:language>rus</dc:language>
|
<dc:language>rus</dc:language>
|
||||||
<thr:count>1</thr:count>
|
<thr:count>1</thr:count>
|
||||||
<link rel="subsection"
|
<link rel="subsection"
|
||||||
href="/ROOT/catalog/v2/entries?lang=rus"
|
href="/ROOT%23%3F/catalog/v2/entries?lang=rus"
|
||||||
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
type="application/atom+xml;profile=opds-catalog;kind=acquisition"/>
|
||||||
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
<updated>YYYY-MM-DDThh:mm:ssZ</updated>
|
||||||
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
<id>12345678-90ab-cdef-1234-567890abcdef</id>
|
||||||
|
@ -606,13 +606,13 @@ TEST_F(LibraryServerTest, catalog_v2_languages)
|
||||||
" <id>12345678-90ab-cdef-1234-567890abcdef</id>\n" \
|
" <id>12345678-90ab-cdef-1234-567890abcdef</id>\n" \
|
||||||
"\n" \
|
"\n" \
|
||||||
" <link rel=\"self\"\n" \
|
" <link rel=\"self\"\n" \
|
||||||
" href=\"/ROOT/catalog/v2/" x "\"\n" \
|
" href=\"/ROOT%23%3F/catalog/v2/" x "\"\n" \
|
||||||
" type=\"application/atom+xml;profile=opds-catalog;kind=acquisition\"/>\n" \
|
" type=\"application/atom+xml;profile=opds-catalog;kind=acquisition\"/>\n" \
|
||||||
" <link rel=\"start\"\n" \
|
" <link rel=\"start\"\n" \
|
||||||
" href=\"/ROOT/catalog/v2/root.xml\"\n" \
|
" href=\"/ROOT%23%3F/catalog/v2/root.xml\"\n" \
|
||||||
" type=\"application/atom+xml;profile=opds-catalog;kind=navigation\"/>\n" \
|
" type=\"application/atom+xml;profile=opds-catalog;kind=navigation\"/>\n" \
|
||||||
" <link rel=\"up\"\n" \
|
" <link rel=\"up\"\n" \
|
||||||
" href=\"/ROOT/catalog/v2/root.xml\"\n" \
|
" href=\"/ROOT%23%3F/catalog/v2/root.xml\"\n" \
|
||||||
" type=\"application/atom+xml;profile=opds-catalog;kind=navigation\"/>\n" \
|
" type=\"application/atom+xml;profile=opds-catalog;kind=navigation\"/>\n" \
|
||||||
"\n" \
|
"\n" \
|
||||||
|
|
||||||
|
@ -624,7 +624,7 @@ TEST_F(LibraryServerTest, catalog_v2_languages)
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_v2_entries)
|
TEST_F(LibraryServerTest, catalog_v2_entries)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/entries");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
CATALOG_V2_ENTRIES_PREAMBLE("")
|
CATALOG_V2_ENTRIES_PREAMBLE("")
|
||||||
|
@ -641,7 +641,7 @@ TEST_F(LibraryServerTest, catalog_v2_entries)
|
||||||
TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_range)
|
TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_range)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/entries?start=1");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?start=1");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
CATALOG_V2_ENTRIES_PREAMBLE("?start=1")
|
CATALOG_V2_ENTRIES_PREAMBLE("?start=1")
|
||||||
|
@ -657,7 +657,7 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_range)
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/entries?count=2");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?count=2");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
CATALOG_V2_ENTRIES_PREAMBLE("?count=2")
|
CATALOG_V2_ENTRIES_PREAMBLE("?count=2")
|
||||||
|
@ -673,7 +673,7 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_range)
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/entries?start=1&count=1");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?start=1&count=1");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
CATALOG_V2_ENTRIES_PREAMBLE("?start=1&count=1")
|
CATALOG_V2_ENTRIES_PREAMBLE("?start=1&count=1")
|
||||||
|
@ -690,7 +690,7 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_range)
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_search_terms)
|
TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_search_terms)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/entries?q=\"ray%20charles\"");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?q=\"ray%20charles\"");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
CATALOG_V2_ENTRIES_PREAMBLE("?q=%22ray%20charles%22")
|
CATALOG_V2_ENTRIES_PREAMBLE("?q=%22ray%20charles%22")
|
||||||
|
@ -708,7 +708,7 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_search_terms)
|
||||||
TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_language)
|
TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_language)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/entries?lang=eng");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?lang=eng");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
CATALOG_V2_ENTRIES_PREAMBLE("?lang=eng")
|
CATALOG_V2_ENTRIES_PREAMBLE("?lang=eng")
|
||||||
|
@ -723,7 +723,7 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_language)
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/entries?lang=eng,fra");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entries?lang=eng,fra");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
CATALOG_V2_ENTRIES_PREAMBLE("?lang=eng%2Cfra")
|
CATALOG_V2_ENTRIES_PREAMBLE("?lang=eng%2Cfra")
|
||||||
|
@ -741,20 +741,20 @@ TEST_F(LibraryServerTest, catalog_v2_entries_filtered_by_language)
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_v2_individual_entry_access)
|
TEST_F(LibraryServerTest, catalog_v2_individual_entry_access)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/entry/raycharles");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entry/raycharles");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
RAY_CHARLES_CATALOG_ENTRY
|
RAY_CHARLES_CATALOG_ENTRY
|
||||||
);
|
);
|
||||||
|
|
||||||
const auto r1 = zfs1_->GET("/ROOT/catalog/v2/entry/non-existent-entry");
|
const auto r1 = zfs1_->GET("/ROOT%23%3F/catalog/v2/entry/non-existent-entry");
|
||||||
EXPECT_EQ(r1->status, 404);
|
EXPECT_EQ(r1->status, 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(LibraryServerTest, catalog_v2_partial_entries)
|
TEST_F(LibraryServerTest, catalog_v2_partial_entries)
|
||||||
{
|
{
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/partial_entries");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/partial_entries");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
CATALOG_V2_PARTIAL_ENTRIES_PREAMBLE("")
|
CATALOG_V2_PARTIAL_ENTRIES_PREAMBLE("")
|
||||||
|
@ -766,7 +766,7 @@ TEST_F(LibraryServerTest, catalog_v2_partial_entries)
|
||||||
" <title>Charles, Ray</title>\n"
|
" <title>Charles, Ray</title>\n"
|
||||||
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
||||||
" <link rel=\"alternate\"\n"
|
" <link rel=\"alternate\"\n"
|
||||||
" href=\"/ROOT/catalog/v2/entry/charlesray\"\n"
|
" href=\"/ROOT%23%3F/catalog/v2/entry/charlesray\"\n"
|
||||||
" type=\"application/atom+xml;type=entry;profile=opds-catalog\"/>\n"
|
" type=\"application/atom+xml;type=entry;profile=opds-catalog\"/>\n"
|
||||||
" </entry>\n"
|
" </entry>\n"
|
||||||
" <entry>\n"
|
" <entry>\n"
|
||||||
|
@ -774,7 +774,7 @@ TEST_F(LibraryServerTest, catalog_v2_partial_entries)
|
||||||
" <title>Ray Charles</title>\n"
|
" <title>Ray Charles</title>\n"
|
||||||
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
||||||
" <link rel=\"alternate\"\n"
|
" <link rel=\"alternate\"\n"
|
||||||
" href=\"/ROOT/catalog/v2/entry/raycharles\"\n"
|
" href=\"/ROOT%23%3F/catalog/v2/entry/raycharles\"\n"
|
||||||
" type=\"application/atom+xml;type=entry;profile=opds-catalog\"/>\n"
|
" type=\"application/atom+xml;type=entry;profile=opds-catalog\"/>\n"
|
||||||
" </entry>\n"
|
" </entry>\n"
|
||||||
" <entry>\n"
|
" <entry>\n"
|
||||||
|
@ -782,7 +782,7 @@ TEST_F(LibraryServerTest, catalog_v2_partial_entries)
|
||||||
" <title>Ray (uncategorized) Charles</title>\n"
|
" <title>Ray (uncategorized) Charles</title>\n"
|
||||||
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
" <updated>YYYY-MM-DDThh:mm:ssZ</updated>\n"
|
||||||
" <link rel=\"alternate\"\n"
|
" <link rel=\"alternate\"\n"
|
||||||
" href=\"/ROOT/catalog/v2/entry/raycharles_uncategorized\"\n"
|
" href=\"/ROOT%23%3F/catalog/v2/entry/raycharles_uncategorized\"\n"
|
||||||
" type=\"application/atom+xml;type=entry;profile=opds-catalog\"/>\n"
|
" type=\"application/atom+xml;type=entry;profile=opds-catalog\"/>\n"
|
||||||
" </entry>\n"
|
" </entry>\n"
|
||||||
"</feed>\n"
|
"</feed>\n"
|
||||||
|
@ -791,7 +791,7 @@ TEST_F(LibraryServerTest, catalog_v2_partial_entries)
|
||||||
|
|
||||||
#define EXPECT_SEARCH_RESULTS(SEARCH_TERM, RESULT_COUNT, OPDS_ENTRIES) \
|
#define EXPECT_SEARCH_RESULTS(SEARCH_TERM, RESULT_COUNT, OPDS_ENTRIES) \
|
||||||
{ \
|
{ \
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?q=" SEARCH_TERM); \
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?q=" SEARCH_TERM); \
|
||||||
EXPECT_EQ(r->status, 200); \
|
EXPECT_EQ(r->status, 200); \
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body), \
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body), \
|
||||||
OPDS_FEED_TAG \
|
OPDS_FEED_TAG \
|
||||||
|
@ -860,7 +860,7 @@ TEST_F(LibraryServerTest, catalog_search_excludes_hidden_tags)
|
||||||
TEST_F(LibraryServerTest, no_name_mapper_returned_catalog_use_uuid_in_link)
|
TEST_F(LibraryServerTest, no_name_mapper_returned_catalog_use_uuid_in_link)
|
||||||
{
|
{
|
||||||
resetServer(ZimFileServer::NO_NAME_MAPPER);
|
resetServer(ZimFileServer::NO_NAME_MAPPER);
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/search?tag=_category:jazz");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/search?tag=_category:jazz");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
OPDS_FEED_TAG
|
OPDS_FEED_TAG
|
||||||
|
@ -880,14 +880,14 @@ TEST_F(LibraryServerTest, no_name_mapper_returned_catalog_use_uuid_in_link)
|
||||||
TEST_F(LibraryServerTest, no_name_mapper_catalog_v2_individual_entry_access)
|
TEST_F(LibraryServerTest, no_name_mapper_catalog_v2_individual_entry_access)
|
||||||
{
|
{
|
||||||
resetServer(ZimFileServer::NO_NAME_MAPPER);
|
resetServer(ZimFileServer::NO_NAME_MAPPER);
|
||||||
const auto r = zfs1_->GET("/ROOT/catalog/v2/entry/raycharles");
|
const auto r = zfs1_->GET("/ROOT%23%3F/catalog/v2/entry/raycharles");
|
||||||
EXPECT_EQ(r->status, 200);
|
EXPECT_EQ(r->status, 200);
|
||||||
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
EXPECT_EQ(maskVariableOPDSFeedData(r->body),
|
||||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||||
RAY_CHARLES_CATALOG_ENTRY_NO_MAPPER
|
RAY_CHARLES_CATALOG_ENTRY_NO_MAPPER
|
||||||
);
|
);
|
||||||
|
|
||||||
const auto r1 = zfs1_->GET("/ROOT/catalog/v2/entry/non-existent-entry");
|
const auto r1 = zfs1_->GET("/ROOT%23%3F/catalog/v2/entry/non-existent-entry");
|
||||||
EXPECT_EQ(r1->status, 404);
|
EXPECT_EQ(r1->status, 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
602
test/server.cpp
602
test/server.cpp
File diff suppressed because it is too large
Load Diff
|
@ -196,7 +196,7 @@ struct SearchResult
|
||||||
|
|
||||||
const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Genius_%2B_Soul_%3D_Jazz",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Genius_%2B_Soul_%3D_Jazz",
|
||||||
/*title*/ "Genius + Soul = Jazz",
|
/*title*/ "Genius + Soul = Jazz",
|
||||||
/*snippet*/ R"SNIPPET(...Grammy Hall of Fame in 2011. It was re-issued in the UK, first in 1989 on the Castle Communications "Essential Records" label, and by Rhino Records in 1997 on a single CD together with Charles' 1970 My Kind of <b>Jazz</b>. In 2010, Concord Records released a deluxe edition comprising digitally remastered versions of Genius + Soul = <b>Jazz</b>, My Kind of <b>Jazz</b>, <b>Jazz</b> Number II, and My Kind of <b>Jazz</b> Part 3. Professional ratings Review scores Source Rating Allmusic link Warr.org link Encyclopedia of Popular Music...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...Grammy Hall of Fame in 2011. It was re-issued in the UK, first in 1989 on the Castle Communications "Essential Records" label, and by Rhino Records in 1997 on a single CD together with Charles' 1970 My Kind of <b>Jazz</b>. In 2010, Concord Records released a deluxe edition comprising digitally remastered versions of Genius + Soul = <b>Jazz</b>, My Kind of <b>Jazz</b>, <b>Jazz</b> Number II, and My Kind of <b>Jazz</b> Part 3. Professional ratings Review scores Source Rating Allmusic link Warr.org link Encyclopedia of Popular Music...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -204,7 +204,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Jazz_Number_II",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Jazz_Number_II",
|
||||||
/*title*/ "Jazz Number II",
|
/*title*/ "Jazz Number II",
|
||||||
/*snippet*/ R"SNIPPET(<b>Jazz</b> Number II <b>Jazz</b> Number II is a 1973 album by Ray Charles. It is a collection of <b>jazz</b>/soul instrumentals featuring Charles on piano backed by his Big Band. Professional ratings Review scores Source Rating Allmusic link <b>Jazz</b> Number II Studio album by Ray Charles Released January 1973 Recorded 1971-72 Studio Charles’ Tangerine/RPM Studios, Los Angeles, CA Genre Soul, <b>jazz</b> Length 39:02 Label Tangerine Producer Ray Charles Ray Charles chronology Through the Eyes of Love (1972) <b>Jazz</b> Number II......)SNIPPET",
|
/*snippet*/ R"SNIPPET(<b>Jazz</b> Number II <b>Jazz</b> Number II is a 1973 album by Ray Charles. It is a collection of <b>jazz</b>/soul instrumentals featuring Charles on piano backed by his Big Band. Professional ratings Review scores Source Rating Allmusic link <b>Jazz</b> Number II Studio album by Ray Charles Released January 1973 Recorded 1971-72 Studio Charles’ Tangerine/RPM Studios, Los Angeles, CA Genre Soul, <b>jazz</b> Length 39:02 Label Tangerine Producer Ray Charles Ray Charles chronology Through the Eyes of Love (1972) <b>Jazz</b> Number II......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -212,7 +212,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/My_Kind_of_Jazz_Part_3",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/My_Kind_of_Jazz_Part_3",
|
||||||
/*title*/ "My Kind of Jazz Part 3",
|
/*title*/ "My Kind of Jazz Part 3",
|
||||||
/*snippet*/ R"SNIPPET(My Kind of <b>Jazz</b> Part 3 My Kind of <b>Jazz</b> Part 3 is a 1975 album by Ray Charles released by Crossover Records. Concord Records re-issued the contents in digital form in 2009. Professional ratings Review scores Source Rating Allmusic link My Kind of <b>Jazz</b> Part 3 Studio album by Ray Charles Released October 1975 Recorded 1975 in Los Angeles, CA Genre Soul, <b>jazz</b> Length 38:13 Label Crossover Producer Ray Charles Ray Charles chronology Renaissance (1975) My Kind of <b>Jazz</b> Part 3 (1975) Live In Japan (1975)...)SNIPPET",
|
/*snippet*/ R"SNIPPET(My Kind of <b>Jazz</b> Part 3 My Kind of <b>Jazz</b> Part 3 is a 1975 album by Ray Charles released by Crossover Records. Concord Records re-issued the contents in digital form in 2009. Professional ratings Review scores Source Rating Allmusic link My Kind of <b>Jazz</b> Part 3 Studio album by Ray Charles Released October 1975 Recorded 1975 in Los Angeles, CA Genre Soul, <b>jazz</b> Length 38:13 Label Crossover Producer Ray Charles Ray Charles chronology Renaissance (1975) My Kind of <b>Jazz</b> Part 3 (1975) Live In Japan (1975)...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -220,7 +220,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/My_Kind_of_Jazz",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/My_Kind_of_Jazz",
|
||||||
/*title*/ "My Kind of Jazz",
|
/*title*/ "My Kind of Jazz",
|
||||||
/*snippet*/ R"SNIPPET(My Kind of <b>Jazz</b> My Kind of <b>Jazz</b> Studio album by Ray Charles Released April 1970 Recorded January 1-10, 1970 in Los Angeles, CA Genre <b>jazz</b> Length 30:20 Label Tangerine Producer Quincy Jones Ray Charles chronology Doing His Thing (1969) My Kind of <b>Jazz</b> (1970) Love Country Style (1970) Professional ratings Review scores Source Rating Allmusic link My Kind of <b>Jazz</b> is a 1970 album by Ray Charles....)SNIPPET",
|
/*snippet*/ R"SNIPPET(My Kind of <b>Jazz</b> My Kind of <b>Jazz</b> Studio album by Ray Charles Released April 1970 Recorded January 1-10, 1970 in Los Angeles, CA Genre <b>jazz</b> Length 30:20 Label Tangerine Producer Quincy Jones Ray Charles chronology Doing His Thing (1969) My Kind of <b>Jazz</b> (1970) Love Country Style (1970) Professional ratings Review scores Source Rating Allmusic link My Kind of <b>Jazz</b> is a 1970 album by Ray Charles....)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -228,7 +228,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Hank_Crawford",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Hank_Crawford",
|
||||||
/*title*/ "Hank Crawford",
|
/*title*/ "Hank Crawford",
|
||||||
/*snippet*/ R"SNIPPET(...bop, <b>jazz</b>-funk, soul <b>jazz</b> alto saxophonist, arranger and songwriter. Crawford was musical director for Ray Charles before embarking on a solo career releasing many well-regarded albums on Atlantic, CTI and Milestone. Hank Crawford Background information Birth name Bennie Ross Crawford, Jr Born (1934-12-21)December 21, 1934 Memphis, Tennessee, U.S. Died January 29, 2009(2009-01-29) (aged 74) Memphis, Tennessee, U.S. Genres R&B, Hard bop, <b>Jazz</b>-funk, Soul <b>jazz</b> Occupation(s) Saxophonist, Songwriter......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...bop, <b>jazz</b>-funk, soul <b>jazz</b> alto saxophonist, arranger and songwriter. Crawford was musical director for Ray Charles before embarking on a solo career releasing many well-regarded albums on Atlantic, CTI and Milestone. Hank Crawford Background information Birth name Bennie Ross Crawford, Jr Born (1934-12-21)December 21, 1934 Memphis, Tennessee, U.S. Died January 29, 2009(2009-01-29) (aged 74) Memphis, Tennessee, U.S. Genres R&B, Hard bop, <b>Jazz</b>-funk, Soul <b>jazz</b> Occupation(s) Saxophonist, Songwriter......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -236,7 +236,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Catchin'_Some_Rays%3A_The_Music_of_Ray_Charles",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Catchin'_Some_Rays%3A_The_Music_of_Ray_Charles",
|
||||||
/*title*/ "Catchin' Some Rays: The Music of Ray Charles",
|
/*title*/ "Catchin' Some Rays: The Music of Ray Charles",
|
||||||
/*snippet*/ R"SNIPPET(...<b>jazz</b> singer Roseanna Vitro, released in August 1997 on the Telarc <b>Jazz</b> label. Catchin' Some Rays: The Music of Ray Charles Studio album by Roseanna Vitro Released August 1997 Recorded March 26, 1997 at Sound on Sound, NYC April 4,1997 at Quad Recording Studios, NYC Genre Vocal <b>jazz</b> Length 61:00 Label Telarc <b>Jazz</b> CD-83419 Producer Paul Wickliffe Roseanna Vitro chronology Passion Dance (1996) Catchin' Some Rays: The Music of Ray Charles (1997) The Time of My Life: Roseanna Vitro Sings the Songs of......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>jazz</b> singer Roseanna Vitro, released in August 1997 on the Telarc <b>Jazz</b> label. Catchin' Some Rays: The Music of Ray Charles Studio album by Roseanna Vitro Released August 1997 Recorded March 26, 1997 at Sound on Sound, NYC April 4,1997 at Quad Recording Studios, NYC Genre Vocal <b>jazz</b> Length 61:00 Label Telarc <b>Jazz</b> CD-83419 Producer Paul Wickliffe Roseanna Vitro chronology Passion Dance (1996) Catchin' Some Rays: The Music of Ray Charles (1997) The Time of My Life: Roseanna Vitro Sings the Songs of......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -244,7 +244,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/That's_What_I_Say%3A_John_Scofield_Plays_the_Music_of_Ray_Charles",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/That's_What_I_Say%3A_John_Scofield_Plays_the_Music_of_Ray_Charles",
|
||||||
/*title*/ "That's What I Say: John Scofield Plays the Music of Ray Charles",
|
/*title*/ "That's What I Say: John Scofield Plays the Music of Ray Charles",
|
||||||
/*snippet*/ R"SNIPPET(That's What I Say: John Scofield Plays the Music of Ray Charles Studio album by John Scofield Released June 7, 2005 (2005-06-07) Recorded December 2004 Studio Avatar Studios, New York City Genre <b>Jazz</b> Length 65:21 Label Verve Producer Steve Jordan John Scofield chronology EnRoute: John Scofield Trio LIVE (2004) That's What I Say: John Scofield Plays the Music of Ray Charles (2005) Out Louder (2006) Professional ratings Review scores Source Rating Allmusic All About <b>Jazz</b> All About <b>Jazz</b>...)SNIPPET",
|
/*snippet*/ R"SNIPPET(That's What I Say: John Scofield Plays the Music of Ray Charles Studio album by John Scofield Released June 7, 2005 (2005-06-07) Recorded December 2004 Studio Avatar Studios, New York City Genre <b>Jazz</b> Length 65:21 Label Verve Producer Steve Jordan John Scofield chronology EnRoute: John Scofield Trio LIVE (2004) That's What I Say: John Scofield Plays the Music of Ray Charles (2005) Out Louder (2006) Professional ratings Review scores Source Rating Allmusic All About <b>Jazz</b> All About <b>Jazz</b>...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -252,7 +252,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Tribute_to_Uncle_Ray",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Tribute_to_Uncle_Ray",
|
||||||
/*title*/ "Tribute to Uncle Ray",
|
/*title*/ "Tribute to Uncle Ray",
|
||||||
/*snippet*/ R"SNIPPET(...Stevie Wonder" with the successful and popular Ray Charles who was also a blind African American musician. Like his debut, this album failed to generate hit singles as Motown struggled to find a sound to fit Wonder, who was just 12 when this album was released. Tribute to Uncle Ray Studio album by Little Stevie Wonder Released October 1962 Recorded 1962 Studio Studio A, Hitsville USA, Detroit Genre Soul, <b>jazz</b> Label Tamla Producer Henry Cosby, Clarence Paul Stevie Wonder chronology The <b>Jazz</b> Soul of Little Stevie (1962) Tribute to Uncle Ray (1962) Recorded Live: The 12 Year Old Genius (1963) Professional ratings Review scores Source Rating Allmusic...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...Stevie Wonder" with the successful and popular Ray Charles who was also a blind African American musician. Like his debut, this album failed to generate hit singles as Motown struggled to find a sound to fit Wonder, who was just 12 when this album was released. Tribute to Uncle Ray Studio album by Little Stevie Wonder Released October 1962 Recorded 1962 Studio Studio A, Hitsville USA, Detroit Genre Soul, <b>jazz</b> Label Tamla Producer Henry Cosby, Clarence Paul Stevie Wonder chronology The <b>Jazz</b> Soul of Little Stevie (1962) Tribute to Uncle Ray (1962) Recorded Live: The 12 Year Old Genius (1963) Professional ratings Review scores Source Rating Allmusic...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -260,7 +260,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/The_Best_of_Ray_Charles",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/The_Best_of_Ray_Charles",
|
||||||
/*title*/ "The Best of Ray Charles",
|
/*title*/ "The Best of Ray Charles",
|
||||||
/*snippet*/ R"SNIPPET(The Best of Ray Charles The Best of Ray Charles is a compilation album released in 1970 on the Atlantic <b>Jazz</b> label, featuring previously released instrumental (non-vocal) tracks recorded by Ray Charles between November 1956 and November 1958. The Best of Ray Charles Greatest hits album by Ray Charles Released 1970 Genre R&B, <b>Jazz</b> Length 34:06 Label Atlantic The instrumental, "Rockhouse" would later be covered, as "Ray's Rockhouse" (1985), by The Manhattan Transfer with lyrics by Jon Hendricks....)SNIPPET",
|
/*snippet*/ R"SNIPPET(The Best of Ray Charles The Best of Ray Charles is a compilation album released in 1970 on the Atlantic <b>Jazz</b> label, featuring previously released instrumental (non-vocal) tracks recorded by Ray Charles between November 1956 and November 1958. The Best of Ray Charles Greatest hits album by Ray Charles Released 1970 Genre R&B, <b>Jazz</b> Length 34:06 Label Atlantic The instrumental, "Rockhouse" would later be covered, as "Ray's Rockhouse" (1985), by The Manhattan Transfer with lyrics by Jon Hendricks....)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -268,7 +268,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/The_Genius_Hits_the_Road",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/The_Genius_Hits_the_Road",
|
||||||
/*title*/ "The Genius Hits the Road",
|
/*title*/ "The Genius Hits the Road",
|
||||||
/*snippet*/ R"SNIPPET(...a hit single, "Georgia on My Mind". The Genius Hits the Road Studio album by Ray Charles Released September 1960 Recorded March 25 and 29, 1960 in New York City Genre R&B, blues, <b>jazz</b> Length 33:37 Label ABC-Paramount 335 Producer Sid Feller Ray Charles chronology Genius + Soul = <b>Jazz</b> (1961) The Genius Hits the Road (1960) Dedicated to You (1961) Singles from The Genius Hits the Road "Georgia on My Mind" Released: September 1960 Professional ratings Review scores Source Rating Allmusic Warr.org...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...a hit single, "Georgia on My Mind". The Genius Hits the Road Studio album by Ray Charles Released September 1960 Recorded March 25 and 29, 1960 in New York City Genre R&B, blues, <b>jazz</b> Length 33:37 Label ABC-Paramount 335 Producer Sid Feller Ray Charles chronology Genius + Soul = <b>Jazz</b> (1961) The Genius Hits the Road (1960) Dedicated to You (1961) Singles from The Genius Hits the Road "Georgia on My Mind" Released: September 1960 Professional ratings Review scores Source Rating Allmusic Warr.org...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -276,7 +276,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Ray_Charles_at_Newport",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Ray_Charles_at_Newport",
|
||||||
/*title*/ "Ray Charles at Newport",
|
/*title*/ "Ray Charles at Newport",
|
||||||
/*snippet*/ R"SNIPPET(...Ray Charles at Newport is a 1958 live album of Ray Charles' July 5, 1958 performance at the Newport <b>Jazz</b> Festival. The detailed liner notes on the album were written by Kenneth Lee Karpe. All tracks from this Newport album, along with all tracks from his 1959 Herndon Stadium performance in Atlanta, were also released on the Atlantic compilation LP, Ray Charles Live. A later CD reissue of that compilation album included a previously unissued song from the 1958 Newport concert, "Swanee River Rock". Professional ratings Review scores Source Rating Allmusic link Discogs link Ray Charles at Newport Live album by Ray Charles Released November 1958 Recorded July 5, 1958 Venue Newport <b>Jazz</b> Festival, Newport, Rhode Island Genre R&B Length 40:28 Label Atlantic Producer Tom Dowd (engineer) Ray Charles chronology The Great Ray Charles (1957) Ray Charles at Newport (1958) Yes Indeed! (1958) Re-issue cover 1987 re-issue/compilation...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...Ray Charles at Newport is a 1958 live album of Ray Charles' July 5, 1958 performance at the Newport <b>Jazz</b> Festival. The detailed liner notes on the album were written by Kenneth Lee Karpe. All tracks from this Newport album, along with all tracks from his 1959 Herndon Stadium performance in Atlanta, were also released on the Atlantic compilation LP, Ray Charles Live. A later CD reissue of that compilation album included a previously unissued song from the 1958 Newport concert, "Swanee River Rock". Professional ratings Review scores Source Rating Allmusic link Discogs link Ray Charles at Newport Live album by Ray Charles Released November 1958 Recorded July 5, 1958 Venue Newport <b>Jazz</b> Festival, Newport, Rhode Island Genre R&B Length 40:28 Label Atlantic Producer Tom Dowd (engineer) Ray Charles chronology The Great Ray Charles (1957) Ray Charles at Newport (1958) Yes Indeed! (1958) Re-issue cover 1987 re-issue/compilation...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -284,7 +284,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Here_We_Go_Again%3A_Celebrating_the_Genius_of_Ray_Charles",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Here_We_Go_Again%3A_Celebrating_the_Genius_of_Ray_Charles",
|
||||||
/*title*/ "Here We Go Again: Celebrating the Genius of Ray Charles",
|
/*title*/ "Here We Go Again: Celebrating the Genius of Ray Charles",
|
||||||
/*snippet*/ R"SNIPPET(...and <b>jazz</b> trumpeter Wynton Marsalis. It was recorded during concerts at the Rose Theater in New York City, on February 9 and 10, 2009. The album received mixed reviews, in which the instrumentation of Marsalis' orchestra was praised by the critics. Here We Go Again: Celebrating the Genius of Ray Charles Live album by Willie Nelson and Wynton Marsalis Released March 29, 2011 (2011-03-29) Recorded February 9 –10 2009 Venue Rose Theater, New York Genre <b>Jazz</b>, country Length 61:49 Label Blue Note......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...and <b>jazz</b> trumpeter Wynton Marsalis. It was recorded during concerts at the Rose Theater in New York City, on February 9 and 10, 2009. The album received mixed reviews, in which the instrumentation of Marsalis' orchestra was praised by the critics. Here We Go Again: Celebrating the Genius of Ray Charles Live album by Willie Nelson and Wynton Marsalis Released March 29, 2011 (2011-03-29) Recorded February 9 –10 2009 Venue Rose Theater, New York Genre <b>Jazz</b>, country Length 61:49 Label Blue Note......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -292,7 +292,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Confession_Blues",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Confession_Blues",
|
||||||
/*title*/ "Confession Blues",
|
/*title*/ "Confession Blues",
|
||||||
/*snippet*/ R"SNIPPET(...<b>jazz</b> Length 2:31 Label Down Beat Records Songwriter(s) R. C. Robinson (Ray Charles) Charles moved to Seattle in 1948, where he formed The McSon Trio with guitarist G. D. "Gossie" McKee and bass player Milton S. Garret. In late 1948, Jack Lauderdale of Down Beat Records heard Charles play at the Seattle <b>jazz</b> club, The Rocking Chair. The next day, Lauderdale took Charles and his trio to a Seattle recording studio where they recorded "Confession Blues" and "I Love You, I Love You". In February......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>jazz</b> Length 2:31 Label Down Beat Records Songwriter(s) R. C. Robinson (Ray Charles) Charles moved to Seattle in 1948, where he formed The McSon Trio with guitarist G. D. "Gossie" McKee and bass player Milton S. Garret. In late 1948, Jack Lauderdale of Down Beat Records heard Charles play at the Seattle <b>jazz</b> club, The Rocking Chair. The next day, Lauderdale took Charles and his trio to a Seattle recording studio where they recorded "Confession Blues" and "I Love You, I Love You". In February......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -300,7 +300,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Genius_Loves_Company",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Genius_Loves_Company",
|
||||||
/*title*/ "Genius Loves Company",
|
/*title*/ "Genius Loves Company",
|
||||||
/*snippet*/ R"SNIPPET(...<b>jazz</b> and pop standards performed by Charles and several guest musicians, such as Natalie Cole, Elton John, James Taylor, Norah Jones, B.B. King, Gladys Knight, Diana Krall, Van Morrison, Willie Nelson and Bonnie Raitt. Genius Loves Company was the last album recorded and completed by Charles before his death in June 2004. Genius Loves Company Studio album by Ray Charles Released August 31, 2004 Recorded June 2003–March 2004 Genre Rhythm and blues, soul, country, blues, <b>jazz</b>, pop Length 54:03......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>jazz</b> and pop standards performed by Charles and several guest musicians, such as Natalie Cole, Elton John, James Taylor, Norah Jones, B.B. King, Gladys Knight, Diana Krall, Van Morrison, Willie Nelson and Bonnie Raitt. Genius Loves Company was the last album recorded and completed by Charles before his death in June 2004. Genius Loves Company Studio album by Ray Charles Released August 31, 2004 Recorded June 2003–March 2004 Genre Rhythm and blues, soul, country, blues, <b>jazz</b>, pop Length 54:03......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -308,7 +308,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Love_Country_Style",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Love_Country_Style",
|
||||||
/*title*/ "Love Country Style",
|
/*title*/ "Love Country Style",
|
||||||
/*snippet*/ R"SNIPPET(Love Country Style Love Country Style is a studio album by Ray Charles released in June 1970 on Charles' Tangerine Records label. Love Country Style Studio album by Ray Charles Released June 1970 Genre R&B Length 35:25 Label ABC/Tangerine Producer Joe Adams Ray Charles chronology My Kind of <b>Jazz</b> (1970) Love Country Style (1970) Volcanic Action of My Soul (1971) Professional ratings Review scores Source Rating Allmusic Christgau's Record Guide B...)SNIPPET",
|
/*snippet*/ R"SNIPPET(Love Country Style Love Country Style is a studio album by Ray Charles released in June 1970 on Charles' Tangerine Records label. Love Country Style Studio album by Ray Charles Released June 1970 Genre R&B Length 35:25 Label ABC/Tangerine Producer Joe Adams Ray Charles chronology My Kind of <b>Jazz</b> (1970) Love Country Style (1970) Volcanic Action of My Soul (1971) Professional ratings Review scores Source Rating Allmusic Christgau's Record Guide B...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -316,7 +316,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Doing_His_Thing",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Doing_His_Thing",
|
||||||
/*title*/ "Doing His Thing",
|
/*title*/ "Doing His Thing",
|
||||||
/*snippet*/ R"SNIPPET(Doing His Thing Doing His Thing is a 1969 studio album by Ray Charles, released by Tangerine Records. The cover artwork was by Lafayette Chew. Doing His Thing Studio album by Ray Charles Released May 1969 Recorded RPM Studios, Los Angeles, California Genre R&B, soul Length 32:33 Label ABC/Tangerine Producer Joe Adams Ray Charles chronology I'm All Yours Baby (1969) Doing His Thing (1969) My Kind of <b>Jazz</b> (1970)...)SNIPPET",
|
/*snippet*/ R"SNIPPET(Doing His Thing Doing His Thing is a 1969 studio album by Ray Charles, released by Tangerine Records. The cover artwork was by Lafayette Chew. Doing His Thing Studio album by Ray Charles Released May 1969 Recorded RPM Studios, Los Angeles, California Genre R&B, soul Length 32:33 Label ABC/Tangerine Producer Joe Adams Ray Charles chronology I'm All Yours Baby (1969) Doing His Thing (1969) My Kind of <b>Jazz</b> (1970)...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -324,7 +324,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/The_Inspiration_I_Feel",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/The_Inspiration_I_Feel",
|
||||||
/*title*/ "The Inspiration I Feel",
|
/*title*/ "The Inspiration I Feel",
|
||||||
/*snippet*/ R"SNIPPET(The Inspiration I Feel The Inspiration I Feel is an album by flautist Herbie Mann featuring tunes associated with Ray Charles recorded in 1968 and released on the Atlantic label. The Inspiration I Feel Studio album by Herbie Mann Released 1968 Recorded May 6 & 7, 1968 New York City Genre <b>Jazz</b> Length 34:28 Label Atlantic SD 1513 Producer Nesuhi Ertegun, Joel Dorn Herbie Mann chronology Windows Opened (1968) The Inspiration I Feel (1968) Memphis Underground (1968)...)SNIPPET",
|
/*snippet*/ R"SNIPPET(The Inspiration I Feel The Inspiration I Feel is an album by flautist Herbie Mann featuring tunes associated with Ray Charles recorded in 1968 and released on the Atlantic label. The Inspiration I Feel Studio album by Herbie Mann Released 1968 Recorded May 6 & 7, 1968 New York City Genre <b>Jazz</b> Length 34:28 Label Atlantic SD 1513 Producer Nesuhi Ertegun, Joel Dorn Herbie Mann chronology Windows Opened (1968) The Inspiration I Feel (1968) Memphis Underground (1968)...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -332,7 +332,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Milt_Turner",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Milt_Turner",
|
||||||
/*title*/ "Milt Turner",
|
/*title*/ "Milt Turner",
|
||||||
/*snippet*/ R"SNIPPET(...Turner After graduating from Pearl High School, he attended Tennessee State University, where he coincided with Hank Crawford, who he later recommended to join him in Ray Charles' band when he took over from William Peeples in the late 1950s. Milton Turner (1930-1993) was a <b>jazz</b> drummer. In 1962, he was a member of Phineas Newborn's trio with Leroy Vinnegar, on whose solo albums he would later appear, and in the early 1960s, Turner also recorded with Teddy Edwards. He never recorded as a leader....)SNIPPET",
|
/*snippet*/ R"SNIPPET(...Turner After graduating from Pearl High School, he attended Tennessee State University, where he coincided with Hank Crawford, who he later recommended to join him in Ray Charles' band when he took over from William Peeples in the late 1950s. Milton Turner (1930-1993) was a <b>jazz</b> drummer. In 1962, he was a member of Phineas Newborn's trio with Leroy Vinnegar, on whose solo albums he would later appear, and in the early 1960s, Turner also recorded with Teddy Edwards. He never recorded as a leader....)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -340,7 +340,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Rare_Genius",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Rare_Genius",
|
||||||
/*title*/ "Rare Genius",
|
/*title*/ "Rare Genius",
|
||||||
/*snippet*/ R"SNIPPET(...studio recordings and demos made in the 1970s, 1980s and 1990s together with some contemporary instrumental and backing vocal parts. Rare Genius: The Undiscovered Masters Remix album by Ray Charles Released 2010 Genre Soul Length 41:36 Label Concord Producer Ray Charles, John Burk Ray Charles chronology Ray Sings, Basie Swings (2006) Rare Genius: The Undiscovered Masters (2010) Professional ratings Review scores Source Rating Allmusic (link) PopMatters (link) All About <b>Jazz</b> (link) favorable...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...studio recordings and demos made in the 1970s, 1980s and 1990s together with some contemporary instrumental and backing vocal parts. Rare Genius: The Undiscovered Masters Remix album by Ray Charles Released 2010 Genre Soul Length 41:36 Label Concord Producer Ray Charles, John Burk Ray Charles chronology Ray Sings, Basie Swings (2006) Rare Genius: The Undiscovered Masters (2010) Professional ratings Review scores Source Rating Allmusic (link) PopMatters (link) All About <b>Jazz</b> (link) favorable...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -348,7 +348,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Tangerine_Records_(1962)",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Tangerine_Records_(1962)",
|
||||||
/*title*/ "Tangerine Records (1962)",
|
/*title*/ "Tangerine Records (1962)",
|
||||||
/*snippet*/ R"SNIPPET(...in 1962. ABC-Paramount Records promoted and distributed it. Early singles labels were orange and later became black, red and white. Many of the later recordings are now sought after in "Northern Soul" circles. In 1973 Charles left ABC, closed Tangerine and started Crossover Records. Ray Charles Enterprises owns the catalog. Tangerine Records Parent company ABC-Paramount Records Founded 1962 Founder Ray Charles Defunct 1973 Distributor(s) ABC-Paramount Records Genre R&B, soul music, <b>jazz</b> music...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...in 1962. ABC-Paramount Records promoted and distributed it. Early singles labels were orange and later became black, red and white. Many of the later recordings are now sought after in "Northern Soul" circles. In 1973 Charles left ABC, closed Tangerine and started Crossover Records. Ray Charles Enterprises owns the catalog. Tangerine Records Parent company ABC-Paramount Records Founded 1962 Founder Ray Charles Defunct 1973 Distributor(s) ABC-Paramount Records Genre R&B, soul music, <b>jazz</b> music...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -356,7 +356,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Ray_Sings%2C_Basie_Swings",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Ray_Sings%2C_Basie_Swings",
|
||||||
/*title*/ "Ray Sings, Basie Swings",
|
/*title*/ "Ray Sings, Basie Swings",
|
||||||
/*snippet*/ R"SNIPPET(...from 1973 with newly recorded instrumental tracks by the contemporary Count Basie Orchestra. Professional ratings Review scores Source Rating AllMusic Ray Sings, Basie Swings Compilation album by Ray Charles, Count Basie Orchestra Released October 3, 2006 (2006-10-03) Recorded Mid-1970s, February - May 2006 Studio Los Angeles Genre Soul, <b>jazz</b>, Swing Label Concord/Hear Music Producer Gregg Field Ray Charles chronology Genius & Friends (2005) Ray Sings, Basie Swings (2006) Rare Genius: The Undiscovered Masters (2010)...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...from 1973 with newly recorded instrumental tracks by the contemporary Count Basie Orchestra. Professional ratings Review scores Source Rating AllMusic Ray Sings, Basie Swings Compilation album by Ray Charles, Count Basie Orchestra Released October 3, 2006 (2006-10-03) Recorded Mid-1970s, February - May 2006 Studio Los Angeles Genre Soul, <b>jazz</b>, Swing Label Concord/Hear Music Producer Gregg Field Ray Charles chronology Genius & Friends (2005) Ray Sings, Basie Swings (2006) Rare Genius: The Undiscovered Masters (2010)...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -364,7 +364,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/I_Remember_Brother_Ray",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/I_Remember_Brother_Ray",
|
||||||
/*title*/ "I Remember Brother Ray",
|
/*title*/ "I Remember Brother Ray",
|
||||||
/*snippet*/ R"SNIPPET(...is an album by saxophonist David "Fathead" Newman, paying tribute to his bandleader and mentor Ray Charles, which was recorded in 2004 and released on the HighNote label the following year. I Remember Brother Ray Studio album by David "Fathead" Newman Released January 11, 2005 Recorded August 14, 2004 Studio Van Gelder Studio, Englewood Cliffs, NJ Genre <b>Jazz</b> Length 50:39 Label HighNote HCD 7135 Producer David "Fathead" Newman, Houston Person David "Fathead" Newman chronology Song for the New Man (2004) I Remember Brother Ray (2005) Cityscape (2006)...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...is an album by saxophonist David "Fathead" Newman, paying tribute to his bandleader and mentor Ray Charles, which was recorded in 2004 and released on the HighNote label the following year. I Remember Brother Ray Studio album by David "Fathead" Newman Released January 11, 2005 Recorded August 14, 2004 Studio Van Gelder Studio, Englewood Cliffs, NJ Genre <b>Jazz</b> Length 50:39 Label HighNote HCD 7135 Producer David "Fathead" Newman, Houston Person David "Fathead" Newman chronology Song for the New Man (2004) I Remember Brother Ray (2005) Cityscape (2006)...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -372,7 +372,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Light_Out_of_Darkness_(A_Tribute_to_Ray_Charles)",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Light_Out_of_Darkness_(A_Tribute_to_Ray_Charles)",
|
||||||
/*title*/ "Light Out of Darkness (A Tribute to Ray Charles)",
|
/*title*/ "Light Out of Darkness (A Tribute to Ray Charles)",
|
||||||
/*snippet*/ R"SNIPPET(...to Ray Charles) is a 1993 studio album by Shirley Horn, recorded in tribute to Ray Charles. Light Out of Darkness (A Tribute to Ray Charles) Studio album by Shirley Horn Released 1993 Recorded April 30 and May 1–3, 1993, Clinton Recording Studios, New York City Genre Vocal <b>jazz</b> Length 62:53 Label Verve Producer Shirley Horn, Sheila Mathis, Richard Seidel, Lynn Butterer Shirley Horn chronology Here's to Life (1992) Light Out of Darkness (A Tribute to Ray Charles) (1993) I Love You, Paris (1994)...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...to Ray Charles) is a 1993 studio album by Shirley Horn, recorded in tribute to Ray Charles. Light Out of Darkness (A Tribute to Ray Charles) Studio album by Shirley Horn Released 1993 Recorded April 30 and May 1–3, 1993, Clinton Recording Studios, New York City Genre Vocal <b>jazz</b> Length 62:53 Label Verve Producer Shirley Horn, Sheila Mathis, Richard Seidel, Lynn Butterer Shirley Horn chronology Here's to Life (1992) Light Out of Darkness (A Tribute to Ray Charles) (1993) I Love You, Paris (1994)...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -380,7 +380,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Soul_Meeting",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Soul_Meeting",
|
||||||
/*title*/ "Soul Meeting",
|
/*title*/ "Soul Meeting",
|
||||||
/*snippet*/ R"SNIPPET(...in 1957 and released in 1961 on Atlantic Records. The album was later re-issued together with the other Charles–Jackson recording, Soul Brothers, on a 2 CD compilation together with other 'bonus' tracks from the same recording sessions. Professional ratings Review scores Source Rating Down Beat (Original Lp release) AllMusic link Soul Meeting Studio album by Ray Charles, Milt Jackson Released 1961 Recorded April 10, 1958 Genre R&B, <b>jazz</b> Length 37:43 Label Atlantic Producer Tom Dowd Ray Charles chronology The Genius Sings the Blues (1961) Soul Meeting (1961) The Genius After Hours (1961) Alternative cover compilation CD re-issue...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...in 1957 and released in 1961 on Atlantic Records. The album was later re-issued together with the other Charles–Jackson recording, Soul Brothers, on a 2 CD compilation together with other 'bonus' tracks from the same recording sessions. Professional ratings Review scores Source Rating Down Beat (Original Lp release) AllMusic link Soul Meeting Studio album by Ray Charles, Milt Jackson Released 1961 Recorded April 10, 1958 Genre R&B, <b>jazz</b> Length 37:43 Label Atlantic Producer Tom Dowd Ray Charles chronology The Genius Sings the Blues (1961) Soul Meeting (1961) The Genius After Hours (1961) Alternative cover compilation CD re-issue...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -388,7 +388,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Ray_Charles_in_Concert",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Ray_Charles_in_Concert",
|
||||||
/*title*/ "Ray Charles in Concert",
|
/*title*/ "Ray Charles in Concert",
|
||||||
/*snippet*/ R"SNIPPET(...between 1958 and 1975. In Concert Compilation album by Ray Charles Released 2003 Recorded Newport <b>Jazz</b> Festival (1958 July 5), Herndon Stadium Atlanta (1959 May 19), Sportpalast Berlin (1962 March 6), Shrine Auditorium Los Angeles (1964 September 20), Tokyo (1975 November 27) and Yokohama (1975 November 30) Genre R&B, soul Length 2 hours Label Rhino Handmade Producer Nesuhi Ertegun (Newport), Zenas Sears (Atlanta), Norman Granz (Berlin), Sid Feller (Los Angeles) and Ray Charles (Tokyo / Yokohama)...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...between 1958 and 1975. In Concert Compilation album by Ray Charles Released 2003 Recorded Newport <b>Jazz</b> Festival (1958 July 5), Herndon Stadium Atlanta (1959 May 19), Sportpalast Berlin (1962 March 6), Shrine Auditorium Los Angeles (1964 September 20), Tokyo (1975 November 27) and Yokohama (1975 November 30) Genre R&B, soul Length 2 hours Label Rhino Handmade Producer Nesuhi Ertegun (Newport), Zenas Sears (Atlanta), Norman Granz (Berlin), Sid Feller (Los Angeles) and Ray Charles (Tokyo / Yokohama)...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -396,7 +396,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Sticks_and_Stones_(Titus_Turner_song)",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Sticks_and_Stones_(Titus_Turner_song)",
|
||||||
/*title*/ "Sticks and Stones (Titus Turner song)",
|
/*title*/ "Sticks and Stones (Titus Turner song)",
|
||||||
/*snippet*/ R"SNIPPET(...in a 1960 version by Ray Charles, who added the Latin drum part. It was his first R&B hit with ABC-Paramount, followed in 1961 with "Hit The Road Jack". The song was also covered by Jerry Lee Lewis, The Zombies, Wanda Jackson and The Kingsmen, as well as Joe Cocker on Mad Dogs and Englishmen, and Elvis Costello in 1994 on the extended play version of Kojak Variety. In 1997, <b>jazz</b> singer Roseanna Vitro included the tune in her tribute to Charles, Catchin’ Some Rays: The Music of Ray Charles....)SNIPPET",
|
/*snippet*/ R"SNIPPET(...in a 1960 version by Ray Charles, who added the Latin drum part. It was his first R&B hit with ABC-Paramount, followed in 1961 with "Hit The Road Jack". The song was also covered by Jerry Lee Lewis, The Zombies, Wanda Jackson and The Kingsmen, as well as Joe Cocker on Mad Dogs and Englishmen, and Elvis Costello in 1994 on the extended play version of Kojak Variety. In 1997, <b>jazz</b> singer Roseanna Vitro included the tune in her tribute to Charles, Catchin’ Some Rays: The Music of Ray Charles....)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -404,7 +404,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Do_the_Twist!_with_Ray_Charles",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Do_the_Twist!_with_Ray_Charles",
|
||||||
/*title*/ "Do the Twist! with Ray Charles",
|
/*title*/ "Do the Twist! with Ray Charles",
|
||||||
/*snippet*/ R"SNIPPET(...peaked at #11. Do the Twist! with Ray Charles Greatest hits album by Ray Charles Released 1961 Recorded 1954-1960 Genre R&B, Soul, <b>Jazz</b> Length 32:39 Label Atlantic Ray Charles chronology The Genius Sings the Blues (1961) Do the Twist! with Ray Charles (1961) Soul Meeting (1961) Professional ratings Review scores Source Rating Allmusic (link) The Rolling Stone Record Guide In 1963, the album got a new cover and was renamed The Greatest Ray Charles. Track listing and catalog number (Atlantic 8054) remained the same....)SNIPPET",
|
/*snippet*/ R"SNIPPET(...peaked at #11. Do the Twist! with Ray Charles Greatest hits album by Ray Charles Released 1961 Recorded 1954-1960 Genre R&B, Soul, <b>Jazz</b> Length 32:39 Label Atlantic Ray Charles chronology The Genius Sings the Blues (1961) Do the Twist! with Ray Charles (1961) Soul Meeting (1961) Professional ratings Review scores Source Rating Allmusic (link) The Rolling Stone Record Guide In 1963, the album got a new cover and was renamed The Greatest Ray Charles. Track listing and catalog number (Atlantic 8054) remained the same....)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -412,7 +412,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/The_Great_Ray_Charles",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/The_Great_Ray_Charles",
|
||||||
/*title*/ "The Great Ray Charles",
|
/*title*/ "The Great Ray Charles",
|
||||||
/*snippet*/ R"SNIPPET(...<b>jazz</b> album. Later CD re-issues often include as a bonus, six of eight tracks from The Genius After Hours. The original cover was by Marvin Israel. Professional ratings Review scores Source Rating Allmusic The Great Ray Charles Studio album by Ray Charles Released August 1957 Recorded April 30 - November 26, 1956 in New York City Genre Bebop Length 37:37 Label Atlantic Producer Ahmet Ertegün, Jerry Wexler Ray Charles chronology Ray Charles (or, Hallelujah I Love Her So) (1957) The Great Ray......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>jazz</b> album. Later CD re-issues often include as a bonus, six of eight tracks from The Genius After Hours. The original cover was by Marvin Israel. Professional ratings Review scores Source Rating Allmusic The Great Ray Charles Studio album by Ray Charles Released August 1957 Recorded April 30 - November 26, 1956 in New York City Genre Bebop Length 37:37 Label Atlantic Producer Ahmet Ertegün, Jerry Wexler Ray Charles chronology Ray Charles (or, Hallelujah I Love Her So) (1957) The Great Ray......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -420,7 +420,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Ray_Charles_Live",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Ray_Charles_Live",
|
||||||
/*title*/ "Ray Charles Live",
|
/*title*/ "Ray Charles Live",
|
||||||
/*snippet*/ R"SNIPPET(...<b>Jazz</b> Festival in 1958 and at Herndon Stadium in Atlanta in 1959, respectively). Later CD re-issues of this compilation include an additional, previously unreleased, track from the 1958 Newport concert, "Swanee River Rock." Live Live album by Ray Charles Released 1973 Recorded July 5, 1958 / May 28, 1959 Genre Soul, R&B Length 71:55 Label Atlantic 503 Producer Nesuhi Ertegün / Zenas Sears Ray Charles chronology From the Pages of My Mind (1986) Live (1973) Just Between Us (1988) Professional......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>Jazz</b> Festival in 1958 and at Herndon Stadium in Atlanta in 1959, respectively). Later CD re-issues of this compilation include an additional, previously unreleased, track from the 1958 Newport concert, "Swanee River Rock." Live Live album by Ray Charles Released 1973 Recorded July 5, 1958 / May 28, 1959 Genre Soul, R&B Length 71:55 Label Atlantic 503 Producer Nesuhi Ertegün / Zenas Sears Ray Charles chronology From the Pages of My Mind (1986) Live (1973) Just Between Us (1988) Professional......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -428,7 +428,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Blue_Funk_(Ray_Charles_song)",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Blue_Funk_(Ray_Charles_song)",
|
||||||
/*title*/ "Soul Brothers",
|
/*title*/ "Soul Brothers",
|
||||||
/*snippet*/ R"SNIPPET(...on the original LP releases. Soul Brothers Studio album by Ray Charles, Milt Jackson Released June 1958 Recorded September 12, 1957 (Tracks 1-2) and April 10, 1958 (Tracks 3-7), in New York City Genre R&B, <b>jazz</b> Length 38:42 Label Atlantic, Studio One Producer Nesuhi Ertegun Ray Charles chronology Yes Indeed! (1958) Soul Brothers (1958) What'd I Say (1959) alternate release cover compilation CD / re-issue Professional ratings Review scores Source Rating AllMusic Down Beat (Original Lp release)...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...on the original LP releases. Soul Brothers Studio album by Ray Charles, Milt Jackson Released June 1958 Recorded September 12, 1957 (Tracks 1-2) and April 10, 1958 (Tracks 3-7), in New York City Genre R&B, <b>jazz</b> Length 38:42 Label Atlantic, Studio One Producer Nesuhi Ertegun Ray Charles chronology Yes Indeed! (1958) Soul Brothers (1958) What'd I Say (1959) alternate release cover compilation CD / re-issue Professional ratings Review scores Source Rating AllMusic Down Beat (Original Lp release)...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -436,7 +436,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Soul_Brothers",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Soul_Brothers",
|
||||||
/*title*/ "Soul Brothers",
|
/*title*/ "Soul Brothers",
|
||||||
/*snippet*/ R"SNIPPET(...and the eleventh studio album by Milt Jackson and released by Atlantic Records in 1958. The album was later re-issued in a 2 CD compilation together with the other Charles–Jackson album Soul Meeting and included additional tracks from the same recording sessions not present on the original LP releases. Soul Brothers Studio album by Ray Charles, Milt Jackson Released June 1958 Recorded September 12, 1957 (Tracks 1-2) and April 10, 1958 (Tracks 3-7), in New York City Genre R&B, <b>jazz</b> Length 38:42 Label Atlantic, Studio One Producer Nesuhi Ertegun Ray Charles chronology Yes Indeed! (1958) Soul Brothers (1958) What'd I Say (1959) alternate release cover compilation CD / re-issue Professional ratings Review scores Source Rating AllMusic Down Beat (Original Lp release)...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...and the eleventh studio album by Milt Jackson and released by Atlantic Records in 1958. The album was later re-issued in a 2 CD compilation together with the other Charles–Jackson album Soul Meeting and included additional tracks from the same recording sessions not present on the original LP releases. Soul Brothers Studio album by Ray Charles, Milt Jackson Released June 1958 Recorded September 12, 1957 (Tracks 1-2) and April 10, 1958 (Tracks 3-7), in New York City Genre R&B, <b>jazz</b> Length 38:42 Label Atlantic, Studio One Producer Nesuhi Ertegun Ray Charles chronology Yes Indeed! (1958) Soul Brothers (1958) What'd I Say (1959) alternate release cover compilation CD / re-issue Professional ratings Review scores Source Rating AllMusic Down Beat (Original Lp release)...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -444,7 +444,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Ray_Charles_and_Betty_Carter",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Ray_Charles_and_Betty_Carter",
|
||||||
/*title*/ "Ray Charles and Betty Carter",
|
/*title*/ "Ray Charles and Betty Carter",
|
||||||
/*snippet*/ R"SNIPPET(...Betty Carter Studio album by Ray Charles and Betty Carter Released August 1961 Recorded August 23, 1960 - June 14, 1961 Genre <b>Jazz</b> Length 41:38 Label ABC Producer Sid Feller Ray Charles chronology Dedicated to You (1961) Ray Charles and Betty Carter (1961) The Genius Sings the Blues (1961) Betty Carter chronology The Modern Sound of Betty Carter (1960) Ray Charles and Betty Carter (1961) 'Round Midnight (1962) Alternative cover / re-issue 1998 Rhino CD re-issue with Dedicated to You Professional ratings Review scores Source Rating Allmusic...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...Betty Carter Studio album by Ray Charles and Betty Carter Released August 1961 Recorded August 23, 1960 - June 14, 1961 Genre <b>Jazz</b> Length 41:38 Label ABC Producer Sid Feller Ray Charles chronology Dedicated to You (1961) Ray Charles and Betty Carter (1961) The Genius Sings the Blues (1961) Betty Carter chronology The Modern Sound of Betty Carter (1960) Ray Charles and Betty Carter (1961) 'Round Midnight (1962) Alternative cover / re-issue 1998 Rhino CD re-issue with Dedicated to You Professional ratings Review scores Source Rating Allmusic...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -452,7 +452,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Ingredients_in_a_Recipe_for_Soul",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Ingredients_in_a_Recipe_for_Soul",
|
||||||
/*title*/ "Ingredients in a Recipe for Soul",
|
/*title*/ "Ingredients in a Recipe for Soul",
|
||||||
/*snippet*/ R"SNIPPET(...6, 1960–April 28, 1963 Genre R&B, soul, country soul, vocal <b>jazz</b> Label ABC 465 Producer Sid Feller Ray Charles chronology Modern Sounds in Country and Western Music, Vol. 2 (1962) Ingredients in a Recipe for Soul (1963) Sweet & Sour Tears (1964) Alternative cover 1997 Rhino CD re-issue with Have a Smile with Me In 1990, the album was released on compact disc by DCC with four bonus tracks. In 1997, it was packaged together with 1964's Have a Smile with Me on a two-for-one CD reissue on Rhino with historical liner notes. Professional ratings Review scores......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...6, 1960–April 28, 1963 Genre R&B, soul, country soul, vocal <b>jazz</b> Label ABC 465 Producer Sid Feller Ray Charles chronology Modern Sounds in Country and Western Music, Vol. 2 (1962) Ingredients in a Recipe for Soul (1963) Sweet & Sour Tears (1964) Alternative cover 1997 Rhino CD re-issue with Have a Smile with Me In 1990, the album was released on compact disc by DCC with four bonus tracks. In 1997, it was packaged together with 1964's Have a Smile with Me on a two-for-one CD reissue on Rhino with historical liner notes. Professional ratings Review scores......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -460,7 +460,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/The_Genius_Sings_the_Blues",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/The_Genius_Sings_the_Blues",
|
||||||
/*title*/ "The Genius Sings the Blues",
|
/*title*/ "The Genius Sings the Blues",
|
||||||
/*snippet*/ R"SNIPPET(...<b>jazz</b>, and southern R&B. The photo for the album cover was taken by renowned photographer Lee Friedlander. The Genius Sings the Blues was reissued in 2003 by Rhino Entertainment with liner notes by Billy Taylor. The Genius Sings the Blues Compilation album by Ray Charles Released October 1961 Recorded 1952–1960 Genre Rhythm and blues, piano blues, soul Length 34:19 Label Atlantic SD-8052 Producer Ahmet Ertegün, Jerry Wexler Ray Charles chronology Ray Charles and Betty Carter (1961) The Genius......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>jazz</b>, and southern R&B. The photo for the album cover was taken by renowned photographer Lee Friedlander. The Genius Sings the Blues was reissued in 2003 by Rhino Entertainment with liner notes by Billy Taylor. The Genius Sings the Blues Compilation album by Ray Charles Released October 1961 Recorded 1952–1960 Genre Rhythm and blues, piano blues, soul Length 34:19 Label Atlantic SD-8052 Producer Ahmet Ertegün, Jerry Wexler Ray Charles chronology Ray Charles and Betty Carter (1961) The Genius......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -468,7 +468,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/The_Genius_of_Ray_Charles",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/The_Genius_of_Ray_Charles",
|
||||||
/*title*/ "The Genius of Ray Charles",
|
/*title*/ "The Genius of Ray Charles",
|
||||||
/*snippet*/ R"SNIPPET(...the sixth studio album by American recording artist Ray Charles, released in 1959 by Atlantic Records. The album eschewed the soul sound of his 1950s recordings, which fused <b>jazz</b>, gospel, and blues, for swinging pop with big band arrangements. It comprises a first half of big band songs and a second half of string-backed ballads. The Genius of Ray Charles sold fewer than 500,000 copies and charted at number 17 on the Billboard 200. "Let the Good Times Roll" and "Don't Let the Sun Catch You Cryin'" were released as singles in 1959. The Genius of Ray Charles Studio album by Ray Charles Released October 1959 Recorded May 6 and June 23, 1959 at 6 West Recording in New......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...the sixth studio album by American recording artist Ray Charles, released in 1959 by Atlantic Records. The album eschewed the soul sound of his 1950s recordings, which fused <b>jazz</b>, gospel, and blues, for swinging pop with big band arrangements. It comprises a first half of big band songs and a second half of string-backed ballads. The Genius of Ray Charles sold fewer than 500,000 copies and charted at number 17 on the Billboard 200. "Let the Good Times Roll" and "Don't Let the Sun Catch You Cryin'" were released as singles in 1959. The Genius of Ray Charles Studio album by Ray Charles Released October 1959 Recorded May 6 and June 23, 1959 at 6 West Recording in New......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -476,7 +476,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Ray_Charles_in_Person",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Ray_Charles_in_Person",
|
||||||
/*title*/ "Ray Charles in Person",
|
/*title*/ "Ray Charles in Person",
|
||||||
/*snippet*/ R"SNIPPET(...night in Atlanta, Georgia at Morris Brown College's Herndon Stadium. All tracks from this album together with those from Ray Charles at Newport were also released on the 1987 Atlantic compilation CD, Ray Charles Live. Ray Charles: In Person Live album by Ray Charles Released July 1960 Recorded May 28, 1959 Genre R&B Length 29:19 Label Atlantic Producer Harris Zenas Ray Charles chronology The Genius of Ray Charles (1959) Ray Charles: In Person (1960) Genius + Soul = <b>Jazz</b> (1961) Re-issue cover 1987 re-issue / compilation Professional ratings Review scores Source Rating Allmusic The album was recorded by the concert sponsor, radio station WAOK. The station's lead disk jockey, Zenas "Daddy" Sears, recorded the album from the audience using a single microphone. The album is noted for its technical excellence in balancing band, singer, and audience, and also for its documentation of the jazzy R&B Ray Charles sound prior to his great crossover success....)SNIPPET",
|
/*snippet*/ R"SNIPPET(...night in Atlanta, Georgia at Morris Brown College's Herndon Stadium. All tracks from this album together with those from Ray Charles at Newport were also released on the 1987 Atlantic compilation CD, Ray Charles Live. Ray Charles: In Person Live album by Ray Charles Released July 1960 Recorded May 28, 1959 Genre R&B Length 29:19 Label Atlantic Producer Harris Zenas Ray Charles chronology The Genius of Ray Charles (1959) Ray Charles: In Person (1960) Genius + Soul = <b>Jazz</b> (1961) Re-issue cover 1987 re-issue / compilation Professional ratings Review scores Source Rating Allmusic The album was recorded by the concert sponsor, radio station WAOK. The station's lead disk jockey, Zenas "Daddy" Sears, recorded the album from the audience using a single microphone. The album is noted for its technical excellence in balancing band, singer, and audience, and also for its documentation of the jazzy R&B Ray Charles sound prior to his great crossover success....)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -484,7 +484,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Don't_Let_the_Sun_Catch_You_Cryin'",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Don't_Let_the_Sun_Catch_You_Cryin'",
|
||||||
/*title*/ "Don't Let the Sun Catch You Cryin'",
|
/*title*/ "Don't Let the Sun Catch You Cryin'",
|
||||||
/*snippet*/ R"SNIPPET(...R&B Sides" and No. 95 on the Billboard Hot 100. It was also recorded by Jackie DeShannon on her 1965 album This is Jackie De Shannon, Paul McCartney on his 1990 live album Tripping the Live Fantastic, Jex Saarelaht and Kate Ceberano on their album Open the Door - Live at Mietta's (1992) and <b>jazz</b> singer Roseanna Vitro on her 1997 album Catchin’ Some Rays: The Music of Ray Charles. Karin Krog and Steve Kuhn include it on their 2005 album, Together Again. Steve Alaimo released a version in 1963...)SNIPPET",
|
/*snippet*/ R"SNIPPET(...R&B Sides" and No. 95 on the Billboard Hot 100. It was also recorded by Jackie DeShannon on her 1965 album This is Jackie De Shannon, Paul McCartney on his 1990 live album Tripping the Live Fantastic, Jex Saarelaht and Kate Ceberano on their album Open the Door - Live at Mietta's (1992) and <b>jazz</b> singer Roseanna Vitro on her 1997 album Catchin’ Some Rays: The Music of Ray Charles. Karin Krog and Steve Kuhn include it on their 2005 album, Together Again. Steve Alaimo released a version in 1963...)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -492,7 +492,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/I_Don't_Need_No_Doctor",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/I_Don't_Need_No_Doctor",
|
||||||
/*title*/ "I Don't Need No Doctor",
|
/*title*/ "I Don't Need No Doctor",
|
||||||
/*snippet*/ R"SNIPPET(...<b>jazz</b> guitar player John Scofield recorded a version for his album That's What I Say: John Scofield Plays the Music of Ray Charles in 2005, featuring the blues guitarist John Mayer on additional guitar and vocals. Mayer covered the song again with his band during his tour in summer 2007. A recorded live version from a Los Angeles show during that tour is available on Mayer's CD/DVD release Where the Light Is. A Ray Charles tribute album also provided the impetus for <b>jazz</b> singer Roseanna Vitro's......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>jazz</b> guitar player John Scofield recorded a version for his album That's What I Say: John Scofield Plays the Music of Ray Charles in 2005, featuring the blues guitarist John Mayer on additional guitar and vocals. Mayer covered the song again with his band during his tour in summer 2007. A recorded live version from a Los Angeles show during that tour is available on Mayer's CD/DVD release Where the Light Is. A Ray Charles tribute album also provided the impetus for <b>jazz</b> singer Roseanna Vitro's......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -500,7 +500,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/If_You_Go_Away",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/If_You_Go_Away",
|
||||||
/*title*/ "If You Go Away",
|
/*title*/ "If You Go Away",
|
||||||
/*snippet*/ R"SNIPPET(...<b>Jazz</b> Length 3:49 Label Epic Records Songwriter(s) Jacques Brel, Rod McKuen Producer(s) Bob Morgan Damita Jo singles chronology "Gotta Travel On" (1965) "If You Go Away" (1966) "Walk Away" (1967) Damita Jo reached #10 on the Adult Contemporary chart and #68 on the Billboard Hot 100 in 1966 for her version of the song. Terry Jacks recorded a version of the song which was released as a single in 1974 and reached #29 on the Adult Contemporary chart, #68 on the Billboard Hot 100, and went to #8 in......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>Jazz</b> Length 3:49 Label Epic Records Songwriter(s) Jacques Brel, Rod McKuen Producer(s) Bob Morgan Damita Jo singles chronology "Gotta Travel On" (1965) "If You Go Away" (1966) "Walk Away" (1967) Damita Jo reached #10 on the Adult Contemporary chart and #68 on the Billboard Hot 100 in 1966 for her version of the song. Terry Jacks recorded a version of the song which was released as a single in 1974 and reached #29 on the Adult Contemporary chart, #68 on the Billboard Hot 100, and went to #8 in......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -508,7 +508,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Anthology_(Ray_Charles_album)",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Anthology_(Ray_Charles_album)",
|
||||||
/*title*/ "Anthology (Ray Charles album)",
|
/*title*/ "Anthology (Ray Charles album)",
|
||||||
/*snippet*/ R"SNIPPET(...Charles' '60s and '70s ABC-Paramount material", while Rhino Records, the issuing label, refers to it in the liner notes as "the compact disc edition of Ray Charles' Greatest Hits", alluding to the two Rhino LPs issued the same year. It is one of the first CDs to be released by Rhino. Anthology Greatest hits album by Ray Charles Released 1988 Recorded 1960-1972 Genre R&B soul <b>jazz</b> piano blues Length 67:25 (original), 66:18 (re-release) Label Rhino Producer Ray Charles Steve Hoffman Richard Foos Ray Charles chronology Just Between Us (1988) Anthology (1988) Would You Believe? (1990) Posthumous cover Professional ratings Review scores Source Rating AllMusic Charles, who retained the master rights (currently controlled by his estate since his June 2004 passing) to his ABC-Paramount recordings, supervised a remixing of the 20 songs on this compilation especially for this......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...Charles' '60s and '70s ABC-Paramount material", while Rhino Records, the issuing label, refers to it in the liner notes as "the compact disc edition of Ray Charles' Greatest Hits", alluding to the two Rhino LPs issued the same year. It is one of the first CDs to be released by Rhino. Anthology Greatest hits album by Ray Charles Released 1988 Recorded 1960-1972 Genre R&B soul <b>jazz</b> piano blues Length 67:25 (original), 66:18 (re-release) Label Rhino Producer Ray Charles Steve Hoffman Richard Foos Ray Charles chronology Just Between Us (1988) Anthology (1988) Would You Believe? (1990) Posthumous cover Professional ratings Review scores Source Rating AllMusic Charles, who retained the master rights (currently controlled by his estate since his June 2004 passing) to his ABC-Paramount recordings, supervised a remixing of the 20 songs on this compilation especially for this......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -516,7 +516,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Ray_Charles",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Ray_Charles",
|
||||||
/*title*/ "Ray Charles",
|
/*title*/ "Ray Charles",
|
||||||
/*snippet*/ R"SNIPPET(...1960s Background information Birth name Ray Charles Robinson Born (1930-09-23)September 23, 1930 Albany, Georgia, U.S. Died June 10, 2004(2004-06-10) (aged 73) Beverly Hills, California, U.S. Genres R&B soul blues gospel country <b>jazz</b> rock and roll Occupation(s) musician singer songwriter composer Instruments Vocals piano Years active 1947–2004 Labels Atlantic ABC Tangerine Warner Bros. Swing Time Concord Columbia Flashback Associated acts The Raelettes USA for Africa Billy Joel Gladys Knight Website raycharles.com Charles pioneered the soul music genre during the 1950s by combining blues, rhythm and blues, and gospel styles into the music he recorded for Atlantic. He contributed to the integration of country music......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...1960s Background information Birth name Ray Charles Robinson Born (1930-09-23)September 23, 1930 Albany, Georgia, U.S. Died June 10, 2004(2004-06-10) (aged 73) Beverly Hills, California, U.S. Genres R&B soul blues gospel country <b>jazz</b> rock and roll Occupation(s) musician singer songwriter composer Instruments Vocals piano Years active 1947–2004 Labels Atlantic ABC Tangerine Warner Bros. Swing Time Concord Columbia Flashback Associated acts The Raelettes USA for Africa Billy Joel Gladys Knight Website raycharles.com Charles pioneered the soul music genre during the 1950s by combining blues, rhythm and blues, and gospel styles into the music he recorded for Atlantic. He contributed to the integration of country music......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -524,7 +524,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/The_Pages_of_My_Mind",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/The_Pages_of_My_Mind",
|
||||||
/*title*/ "Ray Charles",
|
/*title*/ "Ray Charles",
|
||||||
/*snippet*/ R"SNIPPET(...<b>jazz</b> rock and roll Occupation(s) musician singer songwriter composer Instruments Vocals piano Years active 1947–2004 Labels Atlantic ABC Tangerine Warner Bros. Swing Time Concord Columbia Flashback Associated acts The Raelettes USA for Africa Billy Joel Gladys Knight Website raycharles.com Charles pioneered the soul music genre during the 1950s by combining blues, rhythm and blues, and gospel styles into the music he recorded for Atlantic. He contributed to the integration of country music......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>jazz</b> rock and roll Occupation(s) musician singer songwriter composer Instruments Vocals piano Years active 1947–2004 Labels Atlantic ABC Tangerine Warner Bros. Swing Time Concord Columbia Flashback Associated acts The Raelettes USA for Africa Billy Joel Gladys Knight Website raycharles.com Charles pioneered the soul music genre during the 1950s by combining blues, rhythm and blues, and gospel styles into the music he recorded for Atlantic. He contributed to the integration of country music......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -532,7 +532,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Here_We_Go_Again_(Ray_Charles_song)",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Here_We_Go_Again_(Ray_Charles_song)",
|
||||||
/*title*/ "Here We Go Again (Ray Charles song)",
|
/*title*/ "Here We Go Again (Ray Charles song)",
|
||||||
/*snippet*/ R"SNIPPET(...was first covered in an instrumental <b>jazz</b> format, and many of the more recent covers have been sung as duets, such as one with Willie Nelson and Norah Jones with Wynton Marsalis accompanying. The song was released on their 2011 tribute album Here We Go Again: Celebrating the Genius of Ray Charles. The song lent its name to Red Steagall's 2007 album as well. Cover versions have appeared on compilation albums by a number of artists, even some who did not release "Here We Go Again" as a single....)SNIPPET",
|
/*snippet*/ R"SNIPPET(...was first covered in an instrumental <b>jazz</b> format, and many of the more recent covers have been sung as duets, such as one with Willie Nelson and Norah Jones with Wynton Marsalis accompanying. The song was released on their 2011 tribute album Here We Go Again: Celebrating the Genius of Ray Charles. The song lent its name to Red Steagall's 2007 album as well. Cover versions have appeared on compilation albums by a number of artists, even some who did not release "Here We Go Again" as a single....)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -540,7 +540,7 @@ const std::vector<SearchResult> LARGE_SEARCH_RESULTS = {
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Modern_Sounds_in_Country_and_Western_Music",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Modern_Sounds_in_Country_and_Western_Music",
|
||||||
/*title*/ "Modern Sounds in Country and Western Music",
|
/*title*/ "Modern Sounds in Country and Western Music",
|
||||||
/*snippet*/ R"SNIPPET(...<b>jazz</b>. Charles produced the album with Sid Feller, who helped the singer select songs to record, and performed alongside saxophonist Hank Crawford, a string section conducted by Marty Paich, and a big band arranged by Gil Fuller and Gerald Wilson. Modern Sounds in Country and Western Music was an immediate critical and commercial success. The album and its four hit singles brought Charles greater mainstream notice and recognition in the pop market, as well as airplay on both R&B and country radio......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>jazz</b>. Charles produced the album with Sid Feller, who helped the singer select songs to record, and performed alongside saxophonist Hank Crawford, a string section conducted by Marty Paich, and a big band arranged by Gil Fuller and Gerald Wilson. Modern Sounds in Country and Western Music was an immediate critical and commercial success. The album and its four hit singles brought Charles greater mainstream notice and recognition in the pop market, as well as airplay on both R&B and country radio......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -690,7 +690,7 @@ struct TestData
|
||||||
|
|
||||||
static std::string makeUrl(const std::string& query, int start, size_t resultsPerPage)
|
static std::string makeUrl(const std::string& query, int start, size_t resultsPerPage)
|
||||||
{
|
{
|
||||||
std::string url = "/ROOT/search?" + query;
|
std::string url = "/ROOT%23%3F/search?" + query;
|
||||||
|
|
||||||
if ( start >= 0 ) {
|
if ( start >= 0 ) {
|
||||||
url += "&start=" + std::to_string(start);
|
url += "&start=" + std::to_string(start);
|
||||||
|
@ -815,7 +815,7 @@ struct TestData
|
||||||
<opensearch:totalResults>RESULTCOUNT</opensearch:totalResults>
|
<opensearch:totalResults>RESULTCOUNT</opensearch:totalResults>
|
||||||
<opensearch:startIndex>FIRSTRESULT</opensearch:startIndex>
|
<opensearch:startIndex>FIRSTRESULT</opensearch:startIndex>
|
||||||
<opensearch:itemsPerPage>ITEMCOUNT</opensearch:itemsPerPage>
|
<opensearch:itemsPerPage>ITEMCOUNT</opensearch:itemsPerPage>
|
||||||
<atom:link rel="search" type="application/opensearchdescription+xml" href="/ROOT/search/searchdescription.xml"/>
|
<atom:link rel="search" type="application/opensearchdescription+xml" href="/ROOT%23%3F/search/searchdescription.xml"/>
|
||||||
<opensearch:Query role="request"
|
<opensearch:Query role="request"
|
||||||
searchTerms="PATTERN"LANGQUERY
|
searchTerms="PATTERN"LANGQUERY
|
||||||
startIndex="FIRSTRESULT"
|
startIndex="FIRSTRESULT"
|
||||||
|
@ -938,7 +938,7 @@ TEST(ServerSearchTest, searchResults)
|
||||||
/* firstResultIndex */ 1,
|
/* firstResultIndex */ 1,
|
||||||
/* results */ {
|
/* results */ {
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/We_Gonna_Move_to_the_Outskirts_of_Town",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/We_Gonna_Move_to_the_Outskirts_of_Town",
|
||||||
/*title*/ "We Gonna Move to the Outskirts of Town",
|
/*title*/ "We Gonna Move to the Outskirts of Town",
|
||||||
/*snippet*/ R"SNIPPET(...to the Outskirts of Town "We Gonna Move to the Outskirts of Town" is a country blues song recorded September 3, 1936 by Casey Bill Weldon (voice and guitar). The song has been covered by many other musicians, most often under the title "I'm Gonna Move to the Outskirts of Town", and sometimes simply Outskirts of Town. All recordings seem to credit Weldon as songwriter, often as Weldon or as Will Weldon or as William Weldon. Some cover versions give credit also to Andy <b>Razaf</b> and/or to Roy Jacobs....)SNIPPET",
|
/*snippet*/ R"SNIPPET(...to the Outskirts of Town "We Gonna Move to the Outskirts of Town" is a country blues song recorded September 3, 1936 by Casey Bill Weldon (voice and guitar). The song has been covered by many other musicians, most often under the title "I'm Gonna Move to the Outskirts of Town", and sometimes simply Outskirts of Town. All recordings seem to credit Weldon as songwriter, often as Weldon or as Will Weldon or as William Weldon. Some cover versions give credit also to Andy <b>Razaf</b> and/or to Roy Jacobs....)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -956,7 +956,7 @@ TEST(ServerSearchTest, searchResults)
|
||||||
/* firstResultIndex */ 1,
|
/* firstResultIndex */ 1,
|
||||||
/* results */ {
|
/* results */ {
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Eleanor_Rigby",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Eleanor_Rigby",
|
||||||
/*title*/ "Eleanor Rigby",
|
/*title*/ "Eleanor Rigby",
|
||||||
/*snippet*/ R"SNIPPET(...-side "<b>Yellow</b> Submarine" (double A-side) Released 5 August 1966 (1966-08-05) Format 7-inch single Recorded 28–29 April & 6 June 1966 Studio EMI, London Genre Baroque pop, art rock Length 2:08 Label Parlophone (UK), Capitol (US) Songwriter(s) Lennon–McCartney Producer(s) George Martin The Beatles singles chronology "Paperback Writer" (1966) "Eleanor Rigby" / "<b>Yellow</b> Submarine" (1966) "Strawberry Fields Forever" / "Penny Lane" (1967) Music video "Eleanor Rigby" on YouTube The song continued the......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...-side "<b>Yellow</b> Submarine" (double A-side) Released 5 August 1966 (1966-08-05) Format 7-inch single Recorded 28–29 April & 6 June 1966 Studio EMI, London Genre Baroque pop, art rock Length 2:08 Label Parlophone (UK), Capitol (US) Songwriter(s) Lennon–McCartney Producer(s) George Martin The Beatles singles chronology "Paperback Writer" (1966) "Eleanor Rigby" / "<b>Yellow</b> Submarine" (1966) "Strawberry Fields Forever" / "Penny Lane" (1967) Music video "Eleanor Rigby" on YouTube The song continued the......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -964,7 +964,7 @@ TEST(ServerSearchTest, searchResults)
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/If_You_Go_Away",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/If_You_Go_Away",
|
||||||
/*title*/ "If You Go Away",
|
/*title*/ "If You Go Away",
|
||||||
/*snippet*/ R"SNIPPET(...standard and has been recorded by many artists, including Greta Keller, for whom some say McKuen wrote the lyrics. "If You Go Away" Single by Damita Jo from the album If You Go Away B-side "<b>Yellow</b> Days" Released 1966 Genre Jazz Length 3:49 Label Epic Records Songwriter(s) Jacques Brel, Rod McKuen Producer(s) Bob Morgan Damita Jo singles chronology "Gotta Travel On" (1965) "If You Go Away" (1966) "Walk Away" (1967) Damita Jo reached #10 on the Adult Contemporary chart and #68 on the Billboard Hot 100 in 1966 for her version of the song. Terry Jacks recorded a version of the song which was released as a single in 1974 and reached #29 on the Adult Contemporary chart, #68 on the......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...standard and has been recorded by many artists, including Greta Keller, for whom some say McKuen wrote the lyrics. "If You Go Away" Single by Damita Jo from the album If You Go Away B-side "<b>Yellow</b> Days" Released 1966 Genre Jazz Length 3:49 Label Epic Records Songwriter(s) Jacques Brel, Rod McKuen Producer(s) Bob Morgan Damita Jo singles chronology "Gotta Travel On" (1965) "If You Go Away" (1966) "Walk Away" (1967) Damita Jo reached #10 on the Adult Contemporary chart and #68 on the Billboard Hot 100 in 1966 for her version of the song. Terry Jacks recorded a version of the song which was released as a single in 1974 and reached #29 on the Adult Contemporary chart, #68 on the......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -982,7 +982,7 @@ TEST(ServerSearchTest, searchResults)
|
||||||
/* firstResultIndex */ 1,
|
/* firstResultIndex */ 1,
|
||||||
/* results */ {
|
/* results */ {
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Eleanor_Rigby",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Eleanor_Rigby",
|
||||||
/*title*/ "Eleanor Rigby",
|
/*title*/ "Eleanor Rigby",
|
||||||
/*snippet*/ R"SNIPPET(...-side "<b>Yellow</b> Submarine" (double A-side) Released 5 August 1966 (1966-08-05) Format 7-inch single Recorded 28–29 April & 6 June 1966 Studio EMI, London Genre Baroque pop, art rock Length 2:08 Label Parlophone (UK), Capitol (US) Songwriter(s) Lennon–McCartney Producer(s) George Martin The Beatles singles chronology "Paperback Writer" (1966) "Eleanor Rigby" / "<b>Yellow</b> Submarine" (1966) "Strawberry Fields Forever" / "Penny Lane" (1967) Music video "Eleanor Rigby" on YouTube The song continued the......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...-side "<b>Yellow</b> Submarine" (double A-side) Released 5 August 1966 (1966-08-05) Format 7-inch single Recorded 28–29 April & 6 June 1966 Studio EMI, London Genre Baroque pop, art rock Length 2:08 Label Parlophone (UK), Capitol (US) Songwriter(s) Lennon–McCartney Producer(s) George Martin The Beatles singles chronology "Paperback Writer" (1966) "Eleanor Rigby" / "<b>Yellow</b> Submarine" (1966) "Strawberry Fields Forever" / "Penny Lane" (1967) Music video "Eleanor Rigby" on YouTube The song continued the......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -990,7 +990,7 @@ TEST(ServerSearchTest, searchResults)
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/If_You_Go_Away",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/If_You_Go_Away",
|
||||||
/*title*/ "If You Go Away",
|
/*title*/ "If You Go Away",
|
||||||
/*snippet*/ R"SNIPPET(...standard and has been recorded by many artists, including Greta Keller, for whom some say McKuen wrote the lyrics. "If You Go Away" Single by Damita Jo from the album If You Go Away B-side "<b>Yellow</b> Days" Released 1966 Genre Jazz Length 3:49 Label Epic Records Songwriter(s) Jacques Brel, Rod McKuen Producer(s) Bob Morgan Damita Jo singles chronology "Gotta Travel On" (1965) "If You Go Away" (1966) "Walk Away" (1967) Damita Jo reached #10 on the Adult Contemporary chart and #68 on the Billboard Hot 100 in 1966 for her version of the song. Terry Jacks recorded a version of the song which was released as a single in 1974 and reached #29 on the Adult Contemporary chart, #68 on the......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...standard and has been recorded by many artists, including Greta Keller, for whom some say McKuen wrote the lyrics. "If You Go Away" Single by Damita Jo from the album If You Go Away B-side "<b>Yellow</b> Days" Released 1966 Genre Jazz Length 3:49 Label Epic Records Songwriter(s) Jacques Brel, Rod McKuen Producer(s) Bob Morgan Damita Jo singles chronology "Gotta Travel On" (1965) "If You Go Away" (1966) "Walk Away" (1967) Damita Jo reached #10 on the Adult Contemporary chart and #68 on the Billboard Hot 100 in 1966 for her version of the song. Terry Jacks recorded a version of the song which was released as a single in 1974 and reached #29 on the Adult Contemporary chart, #68 on the......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -1008,7 +1008,7 @@ TEST(ServerSearchTest, searchResults)
|
||||||
/* firstResultIndex */ 1,
|
/* firstResultIndex */ 1,
|
||||||
/* results */ {
|
/* results */ {
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/Eleanor_Rigby",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/Eleanor_Rigby",
|
||||||
/*title*/ "Eleanor Rigby",
|
/*title*/ "Eleanor Rigby",
|
||||||
/*snippet*/ R"SNIPPET(...-side "<b>Yellow</b> Submarine" (double A-side) Released 5 August 1966 (1966-08-05) Format 7-inch single Recorded 28–29 April & 6 June 1966 Studio EMI, London Genre Baroque pop, art rock Length 2:08 Label Parlophone (UK), Capitol (US) Songwriter(s) Lennon–McCartney Producer(s) George Martin The Beatles singles chronology "Paperback Writer" (1966) "Eleanor Rigby" / "<b>Yellow</b> Submarine" (1966) "Strawberry Fields Forever" / "Penny Lane" (1967) Music video "Eleanor Rigby" on YouTube The song continued the......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...-side "<b>Yellow</b> Submarine" (double A-side) Released 5 August 1966 (1966-08-05) Format 7-inch single Recorded 28–29 April & 6 June 1966 Studio EMI, London Genre Baroque pop, art rock Length 2:08 Label Parlophone (UK), Capitol (US) Songwriter(s) Lennon–McCartney Producer(s) George Martin The Beatles singles chronology "Paperback Writer" (1966) "Eleanor Rigby" / "<b>Yellow</b> Submarine" (1966) "Strawberry Fields Forever" / "Penny Lane" (1967) Music video "Eleanor Rigby" on YouTube The song continued the......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -1016,7 +1016,7 @@ TEST(ServerSearchTest, searchResults)
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/If_You_Go_Away",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/If_You_Go_Away",
|
||||||
/*title*/ "If You Go Away",
|
/*title*/ "If You Go Away",
|
||||||
/*snippet*/ R"SNIPPET(...standard and has been recorded by many artists, including Greta Keller, for whom some say McKuen wrote the lyrics. "If You Go Away" Single by Damita Jo from the album If You Go Away B-side "<b>Yellow</b> Days" Released 1966 Genre Jazz Length 3:49 Label Epic Records Songwriter(s) Jacques Brel, Rod McKuen Producer(s) Bob Morgan Damita Jo singles chronology "Gotta Travel On" (1965) "If You Go Away" (1966) "Walk Away" (1967) Damita Jo reached #10 on the Adult Contemporary chart and #68 on the Billboard Hot 100 in 1966 for her version of the song. Terry Jacks recorded a version of the song which was released as a single in 1974 and reached #29 on the Adult Contemporary chart, #68 on the......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...standard and has been recorded by many artists, including Greta Keller, for whom some say McKuen wrote the lyrics. "If You Go Away" Single by Damita Jo from the album If You Go Away B-side "<b>Yellow</b> Days" Released 1966 Genre Jazz Length 3:49 Label Epic Records Songwriter(s) Jacques Brel, Rod McKuen Producer(s) Bob Morgan Damita Jo singles chronology "Gotta Travel On" (1965) "If You Go Away" (1966) "Walk Away" (1967) Damita Jo reached #10 on the Adult Contemporary chart and #68 on the Billboard Hot 100 in 1966 for her version of the song. Terry Jacks recorded a version of the song which was released as a single in 1974 and reached #29 on the Adult Contemporary chart, #68 on the......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -1323,7 +1323,7 @@ TEST(ServerSearchTest, searchResults)
|
||||||
/* firstResultIndex */ 1,
|
/* firstResultIndex */ 1,
|
||||||
/* results */ {
|
/* results */ {
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/If_You_Go_Away",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/If_You_Go_Away",
|
||||||
/*title*/ "If You Go Away",
|
/*title*/ "If You Go Away",
|
||||||
/*snippet*/ R"SNIPPET(...<b>Travel</b> On" (1965) "If You Go Away" (1966) "Walk Away" (1967) Damita Jo reached #10 on the Adult Contemporary chart and #68 on the Billboard Hot 100 in 1966 for her version of the song. Terry Jacks recorded a version of the song which was released as a single in 1974 and reached #29 on the Adult Contemporary chart, #68 on the Billboard Hot 100, and went to #8 in the UK. The complex melody is partly derivative of classical music - the poignant "But if you stay..." passage comes from Franz Liszt's......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>Travel</b> On" (1965) "If You Go Away" (1966) "Walk Away" (1967) Damita Jo reached #10 on the Adult Contemporary chart and #68 on the Billboard Hot 100 in 1966 for her version of the song. Terry Jacks recorded a version of the song which was released as a single in 1974 and reached #29 on the Adult Contemporary chart, #68 on the Billboard Hot 100, and went to #8 in the UK. The complex melody is partly derivative of classical music - the poignant "But if you stay..." passage comes from Franz Liszt's......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -1331,7 +1331,7 @@ TEST(ServerSearchTest, searchResults)
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/example/Wikibooks.html",
|
/*link*/ "/ROOT%23%3F/content/example/Wikibooks.html",
|
||||||
/*title*/ "Wikibooks",
|
/*title*/ "Wikibooks",
|
||||||
/*snippet*/ R"SNIPPET(...<b>Travel</b> guide Wikidata Knowledge database Commons Media repository Meta Coordination MediaWiki MediaWiki software Phabricator MediaWiki bug tracker Wikimedia Labs MediaWiki development The Wikimedia Foundation is a non-profit organization that depends on your voluntarism and donations to operate. If you find Wikibooks or other projects hosted by the Wikimedia Foundation useful, please volunteer or make a donation. Your donations primarily helps to purchase server equipment, launch new projects......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>Travel</b> guide Wikidata Knowledge database Commons Media repository Meta Coordination MediaWiki MediaWiki software Phabricator MediaWiki bug tracker Wikimedia Labs MediaWiki development The Wikimedia Foundation is a non-profit organization that depends on your voluntarism and donations to operate. If you find Wikibooks or other projects hosted by the Wikimedia Foundation useful, please volunteer or make a donation. Your donations primarily helps to purchase server equipment, launch new projects......)SNIPPET",
|
||||||
/*bookTitle*/ "Wikibooks",
|
/*bookTitle*/ "Wikibooks",
|
||||||
|
@ -1350,7 +1350,7 @@ TEST(ServerSearchTest, searchResults)
|
||||||
/* firstResultIndex */ 1,
|
/* firstResultIndex */ 1,
|
||||||
/* results */ {
|
/* results */ {
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/zimfile/A/If_You_Go_Away",
|
/*link*/ "/ROOT%23%3F/content/zimfile/A/If_You_Go_Away",
|
||||||
/*title*/ "If You Go Away",
|
/*title*/ "If You Go Away",
|
||||||
/*snippet*/ R"SNIPPET(...<b>Travel</b> On" (1965) "If You Go Away" (1966) "Walk Away" (1967) Damita Jo reached #10 on the Adult Contemporary chart and #68 on the Billboard Hot 100 in 1966 for her version of the song. Terry Jacks recorded a version of the song which was released as a single in 1974 and reached #29 on the Adult Contemporary chart, #68 on the Billboard Hot 100, and went to #8 in the UK. The complex melody is partly derivative of classical music - the poignant "But if you stay..." passage comes from Franz Liszt's......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>Travel</b> On" (1965) "If You Go Away" (1966) "Walk Away" (1967) Damita Jo reached #10 on the Adult Contemporary chart and #68 on the Billboard Hot 100 in 1966 for her version of the song. Terry Jacks recorded a version of the song which was released as a single in 1974 and reached #29 on the Adult Contemporary chart, #68 on the Billboard Hot 100, and went to #8 in the UK. The complex melody is partly derivative of classical music - the poignant "But if you stay..." passage comes from Franz Liszt's......)SNIPPET",
|
||||||
/*bookTitle*/ "Ray Charles",
|
/*bookTitle*/ "Ray Charles",
|
||||||
|
@ -1358,7 +1358,7 @@ TEST(ServerSearchTest, searchResults)
|
||||||
),
|
),
|
||||||
|
|
||||||
SEARCH_RESULT(
|
SEARCH_RESULT(
|
||||||
/*link*/ "/ROOT/content/example/Wikibooks.html",
|
/*link*/ "/ROOT%23%3F/content/example/Wikibooks.html",
|
||||||
/*title*/ "Wikibooks",
|
/*title*/ "Wikibooks",
|
||||||
/*snippet*/ R"SNIPPET(...<b>Travel</b> guide Wikidata Knowledge database Commons Media repository Meta Coordination MediaWiki MediaWiki software Phabricator MediaWiki bug tracker Wikimedia Labs MediaWiki development The Wikimedia Foundation is a non-profit organization that depends on your voluntarism and donations to operate. If you find Wikibooks or other projects hosted by the Wikimedia Foundation useful, please volunteer or make a donation. Your donations primarily helps to purchase server equipment, launch new projects......)SNIPPET",
|
/*snippet*/ R"SNIPPET(...<b>Travel</b> guide Wikidata Knowledge database Commons Media repository Meta Coordination MediaWiki MediaWiki software Phabricator MediaWiki bug tracker Wikimedia Labs MediaWiki development The Wikimedia Foundation is a non-profit organization that depends on your voluntarism and donations to operate. If you find Wikibooks or other projects hosted by the Wikimedia Foundation useful, please volunteer or make a donation. Your donations primarily helps to purchase server equipment, launch new projects......)SNIPPET",
|
||||||
/*bookTitle*/ "Wikibooks",
|
/*bookTitle*/ "Wikibooks",
|
||||||
|
@ -1524,7 +1524,7 @@ TEST(ServerSearchTest, searchInMultilanguageBookSetIsDenied)
|
||||||
for ( const auto& q : testQueries ) {
|
for ( const auto& q : testQueries ) {
|
||||||
{
|
{
|
||||||
// HTML mode
|
// HTML mode
|
||||||
const std::string url = "/ROOT/search?" + q;
|
const std::string url = "/ROOT%23%3F/search?" + q;
|
||||||
const auto r = zfs.GET(url.c_str());
|
const auto r = zfs.GET(url.c_str());
|
||||||
const TestContext ctx{ {"url", url} };
|
const TestContext ctx{ {"url", url} };
|
||||||
EXPECT_EQ(r->status, 400) << ctx;
|
EXPECT_EQ(r->status, 400) << ctx;
|
||||||
|
@ -1533,7 +1533,7 @@ TEST(ServerSearchTest, searchInMultilanguageBookSetIsDenied)
|
||||||
|
|
||||||
{
|
{
|
||||||
// XML mode
|
// XML mode
|
||||||
const std::string url = "/ROOT/search?" + q + "&format=xml";
|
const std::string url = "/ROOT%23%3F/search?" + q + "&format=xml";
|
||||||
const auto r = zfs.GET(url.c_str());
|
const auto r = zfs.GET(url.c_str());
|
||||||
const TestContext ctx{ {"url", url} };
|
const TestContext ctx{ {"url", url} };
|
||||||
EXPECT_EQ(r->status, 400) << ctx;
|
EXPECT_EQ(r->status, 400) << ctx;
|
||||||
|
|
|
@ -131,7 +131,7 @@ void ZimFileServer::run(int serverPort, std::string indexTemplateString)
|
||||||
nameMapper.reset(new kiwix::HumanReadableNameMapper(library, false));
|
nameMapper.reset(new kiwix::HumanReadableNameMapper(library, false));
|
||||||
}
|
}
|
||||||
server.reset(new kiwix::Server(&library, nameMapper.get()));
|
server.reset(new kiwix::Server(&library, nameMapper.get()));
|
||||||
server->setRoot("ROOT");
|
server->setRoot("ROOT#?");
|
||||||
server->setAddress(address);
|
server->setAddress(address);
|
||||||
server->setPort(serverPort);
|
server->setPort(serverPort);
|
||||||
server->setNbThreads(2);
|
server->setNbThreads(2);
|
||||||
|
|
Loading…
Reference in New Issue