mirror of
https://github.com/kiwix/kiwix-tools.git
synced 2025-08-03 11:25:59 -04:00
Adapt kiwix-tools to new libkiwix API.
This commit is contained in:
parent
7a7eaaba0e
commit
17edba1d02
@ -29,10 +29,10 @@ using namespace std;
|
||||
|
||||
enum supportedAction { NONE, ADD, SHOW, REMOVE };
|
||||
|
||||
void show(kiwix::Library* library, const std::string& bookId)
|
||||
void show(const kiwix::Library& library, const std::string& bookId)
|
||||
{
|
||||
try {
|
||||
auto& book = library->getBookById(bookId);
|
||||
auto& book = library.getBookById(bookId);
|
||||
std::cout << "id:\t\t" << book.getId() << std::endl
|
||||
<< "path:\t\t" << book.getPath() << std::endl
|
||||
<< "url:\t\t" << book.getUrl() << std::endl
|
||||
@ -96,7 +96,7 @@ void usage()
|
||||
<< std::endl;
|
||||
}
|
||||
|
||||
int handle_show(kiwix::Library* library, const std::string& libraryPath,
|
||||
int handle_show(const kiwix::Library& library, const std::string& libraryPath,
|
||||
int argc, char* argv[])
|
||||
{
|
||||
if (argc > 3 ) {
|
||||
@ -105,7 +105,7 @@ int handle_show(kiwix::Library* library, const std::string& libraryPath,
|
||||
show(library, bookId);
|
||||
}
|
||||
} else {
|
||||
auto booksIds = library->getBooksIds();
|
||||
auto booksIds = library.getBooksIds();
|
||||
for(auto& bookId: booksIds) {
|
||||
show(library, bookId);
|
||||
}
|
||||
@ -113,7 +113,7 @@ int handle_show(kiwix::Library* library, const std::string& libraryPath,
|
||||
return(0);
|
||||
}
|
||||
|
||||
int handle_add(kiwix::Library* library, const std::string& libraryPath,
|
||||
int handle_add(std::shared_ptr<kiwix::Library> library, const std::string& libraryPath,
|
||||
int argc, char* argv[])
|
||||
{
|
||||
string zimPath;
|
||||
@ -182,7 +182,7 @@ int handle_add(kiwix::Library* library, const std::string& libraryPath,
|
||||
return(resultCode);
|
||||
}
|
||||
|
||||
int handle_remove(kiwix::Library* library, const std::string& libraryPath,
|
||||
int handle_remove(std::shared_ptr<kiwix::Library> library, const std::string& libraryPath,
|
||||
int argc, char* argv[])
|
||||
{
|
||||
std::string bookId;
|
||||
@ -216,7 +216,7 @@ int main(int argc, char** argv)
|
||||
{
|
||||
string libraryPath = "";
|
||||
supportedAction action = NONE;
|
||||
kiwix::Library library;
|
||||
auto library = std::make_shared<kiwix::Library>();
|
||||
|
||||
/* General argument parsing */
|
||||
static struct option long_options[] = {
|
||||
@ -261,7 +261,7 @@ int main(int argc, char** argv)
|
||||
libraryPath = kiwix::isRelativePath(libraryPath)
|
||||
? kiwix::computeAbsolutePath(kiwix::getCurrentDirectory(), libraryPath)
|
||||
: libraryPath;
|
||||
kiwix::Manager manager(&library);
|
||||
kiwix::Manager manager(library);
|
||||
if (!manager.readFile(libraryPath, false)) {
|
||||
if (kiwix::fileExists(libraryPath) || action!=ADD) {
|
||||
std::cerr << "Cannot read the library " << libraryPath << std::endl;
|
||||
@ -273,13 +273,13 @@ int main(int argc, char** argv)
|
||||
int exitCode = 0;
|
||||
switch (action) {
|
||||
case SHOW:
|
||||
exitCode = handle_show(&library, libraryPath, argc, argv);
|
||||
exitCode = handle_show(*library, libraryPath, argc, argv);
|
||||
break;
|
||||
case ADD:
|
||||
exitCode = handle_add(&library, libraryPath, argc, argv);
|
||||
exitCode = handle_add(library, libraryPath, argc, argv);
|
||||
break;
|
||||
case REMOVE:
|
||||
exitCode = handle_remove(&library, libraryPath, argc, argv);
|
||||
exitCode = handle_remove(library, libraryPath, argc, argv);
|
||||
break;
|
||||
case NONE:
|
||||
break;
|
||||
@ -292,7 +292,7 @@ int main(int argc, char** argv)
|
||||
/* Rewrite the library file */
|
||||
if (action == REMOVE || action == ADD) {
|
||||
// writeToFile return true (1) if everything is ok => exitCode is 0
|
||||
if (!library.writeToFile(libraryPath)) {
|
||||
if (!library->writeToFile(libraryPath)) {
|
||||
std::cerr << "Cannot write the library " << libraryPath << std::endl;
|
||||
return 1;
|
||||
}
|
||||
|
@ -197,7 +197,7 @@ int main(int argc, char** argv)
|
||||
#endif
|
||||
|
||||
std::string rootLocation = "/";
|
||||
kiwix::Library library;
|
||||
auto library = std::make_shared<kiwix::Library>();
|
||||
unsigned int nb_threads = DEFAULT_THREADS;
|
||||
std::vector<std::string> zimPathes;
|
||||
std::string libraryPath;
|
||||
@ -331,7 +331,7 @@ int main(int argc, char** argv)
|
||||
}
|
||||
|
||||
/* Setup the library manager and get the list of books */
|
||||
kiwix::Manager manager(&library);
|
||||
kiwix::Manager manager(library);
|
||||
std::vector<std::string> libraryPaths;
|
||||
if (libraryFlag) {
|
||||
libraryPaths = kiwix::split(libraryPath, ";");
|
||||
@ -340,7 +340,7 @@ int main(int argc, char** argv)
|
||||
}
|
||||
|
||||
/* Check if the library is not empty (or only remote books)*/
|
||||
if (library.getBookCount(true, false) == 0) {
|
||||
if (library->getBookCount(true, false) == 0) {
|
||||
std::cerr << "The XML library file '" << libraryPath
|
||||
<< "' is empty (or has only remote books)." << std::endl;
|
||||
}
|
||||
@ -376,8 +376,8 @@ int main(int argc, char** argv)
|
||||
}
|
||||
#endif
|
||||
|
||||
kiwix::UpdatableNameMapper nameMapper(library, noDateAliasesFlag);
|
||||
kiwix::Server server(&library, &nameMapper);
|
||||
auto nameMapper = std::make_shared<kiwix::UpdatableNameMapper>(library, noDateAliasesFlag);
|
||||
kiwix::Server::Configuration configuration(library, nameMapper);
|
||||
|
||||
if (!customIndexPath.empty()) {
|
||||
try {
|
||||
@ -388,17 +388,18 @@ int main(int argc, char** argv)
|
||||
}
|
||||
}
|
||||
|
||||
server.setAddress(address);
|
||||
server.setRoot(rootLocation);
|
||||
server.setPort(serverPort);
|
||||
server.setNbThreads(nb_threads);
|
||||
server.setVerbose(isVerboseFlag);
|
||||
server.setTaskbar(!noSearchBarFlag, !noLibraryButtonFlag);
|
||||
server.setBlockExternalLinks(blockExternalLinks);
|
||||
server.setIndexTemplateString(indexTemplateString);
|
||||
server.setIpConnectionLimit(ipConnectionLimit);
|
||||
server.setMultiZimSearchLimit(searchLimit);
|
||||
configuration.setAddress(address);
|
||||
configuration.setRoot(rootLocation);
|
||||
configuration.setPort(serverPort);
|
||||
configuration.setNbThreads(nb_threads);
|
||||
configuration.setVerbose(isVerboseFlag);
|
||||
configuration.setTaskbar(!noSearchBarFlag, !noLibraryButtonFlag);
|
||||
configuration.setBlockExternalLinks(blockExternalLinks);
|
||||
configuration.setIndexTemplateString(indexTemplateString);
|
||||
configuration.setIpConnectionLimit(ipConnectionLimit);
|
||||
configuration.setMultiZimSearchLimit(searchLimit);
|
||||
|
||||
kiwix::Server server(configuration);
|
||||
if (! server.start()) {
|
||||
exit(1);
|
||||
}
|
||||
@ -447,7 +448,7 @@ int main(int argc, char** argv)
|
||||
if ( libraryMustBeReloaded && !libraryPaths.empty() ) {
|
||||
libraryFileTimestamp = curLibraryFileTimestamp;
|
||||
reloadLibrary(manager, libraryPaths);
|
||||
nameMapper.update();
|
||||
nameMapper->update();
|
||||
libraryMustBeReloaded = false;
|
||||
}
|
||||
} while (waiting);
|
||||
|
Loading…
x
Reference in New Issue
Block a user