mirror of
https://github.com/kiwix/kiwix-tools.git
synced 2026-01-28 15:52:54 -05:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
472de06e6d | ||
|
|
51a4a4e8ef | ||
|
|
6e310c7147 | ||
|
|
790bd03bd7 | ||
|
|
15c6252db4 | ||
|
|
6fd22dec61 | ||
|
|
c332c123fe | ||
|
|
e4eafd7459 | ||
|
|
16a29127a1 | ||
|
|
7fa0579ea1 | ||
|
|
978dc47865 | ||
|
|
b7793f6e75 | ||
|
|
8095ae9ea8 |
23
Changelog
23
Changelog
@@ -1,3 +1,26 @@
|
||||
kiwix-tools 1.1.0
|
||||
=================
|
||||
|
||||
kiwix-serve
|
||||
-----------
|
||||
|
||||
* Fix bug about handling of absolute url in old zim file.
|
||||
* All the catalog to be searched by tags.
|
||||
|
||||
kiwix-tools 1.0.0
|
||||
=================
|
||||
|
||||
* [CI] Use the new deps archive xz
|
||||
* Move version 1.0.0. There is no need to stay in pre 1.0 version.
|
||||
|
||||
kiwix-serve
|
||||
-----------
|
||||
|
||||
* Correctly implement redirection.
|
||||
kiwix-serve now return a 302 http status code instead of resolving the
|
||||
redirection internally and return the content.
|
||||
|
||||
|
||||
kiwix-tools 0.9.0
|
||||
=================
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
project('kiwix-tools', 'cpp',
|
||||
version : '0.9.0',
|
||||
version : '1.1.0',
|
||||
license : 'GPL',
|
||||
default_options: ['c_std=c11', 'cpp_std=c++11', 'werror=true'])
|
||||
|
||||
@@ -11,7 +11,7 @@ if static_linkage
|
||||
endif
|
||||
|
||||
thread_dep = dependency('threads')
|
||||
kiwixlib_dep = dependency('kiwix', version:'>=4.0.0', static:static_linkage)
|
||||
kiwixlib_dep = dependency('kiwix', version:'>=4.1.0', static:static_linkage)
|
||||
microhttpd_dep = dependency('libmicrohttpd', static:static_linkage)
|
||||
z_dep = dependency('zlib', static:static_linkage)
|
||||
|
||||
|
||||
@@ -698,6 +698,7 @@ static struct MHD_Response* handle_catalog(RequestContext* request)
|
||||
} else if (url == "search") {
|
||||
std::string query;
|
||||
std::string language;
|
||||
std::vector<std::string> tags;
|
||||
size_t count(10);
|
||||
size_t startIndex(0);
|
||||
try {
|
||||
@@ -712,13 +713,19 @@ static struct MHD_Response* handle_catalog(RequestContext* request)
|
||||
try {
|
||||
startIndex = stoul(request->get_argument("start"));
|
||||
} catch (...) {}
|
||||
try {
|
||||
tags.push_back(request->get_argument("tag"));
|
||||
} catch (...) {}
|
||||
opdsDumper.setTitle("Search result for " + query);
|
||||
uuid = zim::Uuid::generate();
|
||||
bookIdsToDump = library.listBooksIds(
|
||||
kiwix::VALID|kiwix::LOCAL|kiwix::REMOTE,
|
||||
kiwix::UNSORTED,
|
||||
query,
|
||||
language);
|
||||
language,
|
||||
"", // creator
|
||||
"", // publisher
|
||||
tags);
|
||||
auto totalResults = bookIdsToDump.size();
|
||||
bookIdsToDump.erase(bookIdsToDump.begin(), bookIdsToDump.begin()+startIndex);
|
||||
if (count>0 && bookIdsToDump.size() > count) {
|
||||
@@ -766,10 +773,22 @@ static struct MHD_Response* handle_content(RequestContext* request)
|
||||
}
|
||||
|
||||
auto urlStr = request->get_url().substr(humanReadableBookId.size()+1);
|
||||
if (urlStr[0] == '/') {
|
||||
urlStr = urlStr.substr(1);
|
||||
}
|
||||
|
||||
try {
|
||||
entry = reader->getEntryFromPath(urlStr);
|
||||
entry = entry.getFinalEntry();
|
||||
if (entry.isRedirect() || urlStr.empty()) {
|
||||
// If urlStr is empty, we want to mainPage.
|
||||
// We must do a redirection to the real page.
|
||||
entry = entry.getFinalEntry();
|
||||
std::string httpRedirection = (
|
||||
rootLocation + "/" + humanReadableBookId + "/" +
|
||||
kiwix::urlEncode(entry.getPath()));
|
||||
request->httpResponseCode = MHD_HTTP_FOUND;
|
||||
return build_response("", 0, httpRedirection, "", false, false);
|
||||
}
|
||||
} catch(kiwix::NoEntry& e) {
|
||||
if (isVerbose.load())
|
||||
printf("Failed to find %s\n", urlStr.c_str());
|
||||
@@ -797,7 +816,6 @@ static struct MHD_Response* handle_content(RequestContext* request)
|
||||
/* Special rewrite URL in case of ZIM file use intern *asbolute* url like
|
||||
* /A/Kiwix */
|
||||
if (mimeType.find("text/html") != string::npos) {
|
||||
baseUrl = "/" + entry.getPath();
|
||||
pthread_mutex_lock(®exLock);
|
||||
content = replaceRegex(content,
|
||||
"$1$2" + rootLocation + "/" + humanReadableBookId + "/$3/",
|
||||
@@ -805,10 +823,6 @@ static struct MHD_Response* handle_content(RequestContext* request)
|
||||
content = replaceRegex(content,
|
||||
"$1$2" + rootLocation + "/" + humanReadableBookId + "/$3/",
|
||||
"(@import[ ]+)([\"|\']{0,1})/([A-Z|\\-])/");
|
||||
content = replaceRegex(
|
||||
content,
|
||||
"<head><base href=\"" + rootLocation + "/" + humanReadableBookId + baseUrl + "\" />",
|
||||
"<head>");
|
||||
pthread_mutex_unlock(®exLock);
|
||||
introduceTaskbar(content, humanReadableBookId);
|
||||
} else if (mimeType.find("text/css") != string::npos) {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
set -e
|
||||
|
||||
REPO_NAME=${TRAVIS_REPO_SLUG#*/}
|
||||
ARCHIVE_NAME=deps_${TRAVIS_OS_NAME}_${PLATFORM}_${REPO_NAME}.tar.gz
|
||||
ARCHIVE_NAME=deps_${TRAVIS_OS_NAME}_${PLATFORM}_${REPO_NAME}.tar.xz
|
||||
|
||||
# Packages.
|
||||
case ${PLATFORM} in
|
||||
@@ -32,7 +32,7 @@ sudo apt-get install -qq python3-pip ${PACKAGES}
|
||||
wget https://bootstrap.pypa.io/get-pip.py
|
||||
python3.5 get-pip.py --user
|
||||
python3.5 -m pip install --user --upgrade pip
|
||||
python3.5 -m pip install --user meson
|
||||
python3.5 -m pip install --user meson==0.49.2
|
||||
|
||||
# Ninja
|
||||
cd $HOME
|
||||
|
||||
Reference in New Issue
Block a user