mirror of https://github.com/kiwix/libkiwix.git
Clean includes of manager.h
This commit is contained in:
parent
839320d5e7
commit
99e313f915
|
@ -21,19 +21,15 @@
|
||||||
#define KIWIX_MANAGER_H
|
#define KIWIX_MANAGER_H
|
||||||
|
|
||||||
#include "book.h"
|
#include "book.h"
|
||||||
#include <time.h>
|
|
||||||
#include <sstream>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
#include <pugixml.hpp>
|
|
||||||
|
|
||||||
#include "common/base64.h"
|
|
||||||
#include "common/pathTools.h"
|
|
||||||
#include "common/regexTools.h"
|
|
||||||
#include "library.h"
|
#include "library.h"
|
||||||
#include "reader.h"
|
#include "reader.h"
|
||||||
|
|
||||||
using namespace std;
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
namespace pugi {
|
||||||
|
class xml_document;
|
||||||
|
}
|
||||||
|
|
||||||
namespace kiwix
|
namespace kiwix
|
||||||
{
|
{
|
||||||
|
@ -60,7 +56,7 @@ class Manager
|
||||||
* updated content.
|
* updated content.
|
||||||
* @return True if file has been properly parsed.
|
* @return True if file has been properly parsed.
|
||||||
*/
|
*/
|
||||||
bool readFile(const string path, const bool readOnly = true);
|
bool readFile(const std::string& path, const bool readOnly = true);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read a `library.xml` and add book in the file to the library.
|
* Read a `library.xml` and add book in the file to the library.
|
||||||
|
@ -72,8 +68,8 @@ class Manager
|
||||||
* updated content.
|
* updated content.
|
||||||
* @return True if file has been properly parsed.
|
* @return True if file has been properly parsed.
|
||||||
*/
|
*/
|
||||||
bool readFile(const string nativePath,
|
bool readFile(const std::string& nativePath,
|
||||||
const string UTF8Path,
|
const std::string& UTF8Path,
|
||||||
const bool readOnly = true);
|
const bool readOnly = true);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -85,9 +81,9 @@ class Manager
|
||||||
* @param libraryPath The library path (used to resolve relative path)
|
* @param libraryPath The library path (used to resolve relative path)
|
||||||
* @return True if the content has been properly parsed.
|
* @return True if the content has been properly parsed.
|
||||||
*/
|
*/
|
||||||
bool readXml(const string& xml,
|
bool readXml(const std::string& xml,
|
||||||
const bool readOnly = true,
|
const bool readOnly = true,
|
||||||
const string libraryPath = "");
|
const std::string& libraryPath = "");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load a library content stored in a OPDS stream.
|
* Load a library content stored in a OPDS stream.
|
||||||
|
@ -98,7 +94,7 @@ class Manager
|
||||||
* @param libraryPath The library path (used to resolve relative path)
|
* @param libraryPath The library path (used to resolve relative path)
|
||||||
* @return True if the content has been properly parsed.
|
* @return True if the content has been properly parsed.
|
||||||
*/
|
*/
|
||||||
bool readOpds(const string& content, const std::string& urlHost);
|
bool readOpds(const std::string& content, const std::string& urlHost);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the path of the external fulltext index associated to a book.
|
* Set the path of the external fulltext index associated to a book.
|
||||||
|
@ -108,8 +104,8 @@ class Manager
|
||||||
* @param supportedIndexType The type of the fulltext index.
|
* @param supportedIndexType The type of the fulltext index.
|
||||||
* @return True if the book is in the library.
|
* @return True if the book is in the library.
|
||||||
*/
|
*/
|
||||||
bool setBookIndex(const string id,
|
bool setBookIndex(const std::string& id,
|
||||||
const string path,
|
const std::string& path,
|
||||||
const supportedIndexType type = XAPIAN);
|
const supportedIndexType type = XAPIAN);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -119,7 +115,7 @@ class Manager
|
||||||
* @param path The path of the zim file.
|
* @param path The path of the zim file.
|
||||||
* @return True if the book is in the library.
|
* @return True if the book is in the library.
|
||||||
*/
|
*/
|
||||||
bool setBookPath(const string id, const string path);
|
bool setBookPath(const std::string& id, const std::string& path);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a book to the library.
|
* Add a book to the library.
|
||||||
|
@ -132,9 +128,9 @@ class Manager
|
||||||
* @return The id of the book if the book has been added to the library.
|
* @return The id of the book if the book has been added to the library.
|
||||||
* Else, an empty string.
|
* Else, an empty string.
|
||||||
*/
|
*/
|
||||||
string addBookFromPathAndGetId(const string pathToOpen,
|
std::string addBookFromPathAndGetId(const std::string& pathToOpen,
|
||||||
const string pathToSave = "",
|
const std::string& pathToSave = "",
|
||||||
const string url = "",
|
const std::string& url = "",
|
||||||
const bool checkMetaData = false);
|
const bool checkMetaData = false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -148,9 +144,9 @@ class Manager
|
||||||
* @return True if the book has been added to the library.
|
* @return True if the book has been added to the library.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool addBookFromPath(const string pathToOpen,
|
bool addBookFromPath(const std::string& pathToOpen,
|
||||||
const string pathToSave = "",
|
const std::string& pathToSave = "",
|
||||||
const string url = "",
|
const std::string& url = "",
|
||||||
const bool checkMetaData = false);
|
const bool checkMetaData = false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -160,7 +156,7 @@ class Manager
|
||||||
* @param[out] book The book corresponding to the id.
|
* @param[out] book The book corresponding to the id.
|
||||||
* @return True if the book has been found.
|
* @return True if the book has been found.
|
||||||
*/
|
*/
|
||||||
bool getBookById(const string id, Book& book);
|
bool getBookById(const std::string& id, Book& book);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the "last open date" of a book
|
* Update the "last open date" of a book
|
||||||
|
@ -168,7 +164,7 @@ class Manager
|
||||||
* @param id the id of the book.
|
* @param id the id of the book.
|
||||||
* @return True if the book is in the library.
|
* @return True if the book is in the library.
|
||||||
*/
|
*/
|
||||||
bool updateBookLastOpenDateById(const string id);
|
bool updateBookLastOpenDateById(const std::string& id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove (set to empty) paths of all books in the library.
|
* Remove (set to empty) paths of all books in the library.
|
||||||
|
@ -197,27 +193,27 @@ class Manager
|
||||||
bool listBooks(const supportedListMode mode,
|
bool listBooks(const supportedListMode mode,
|
||||||
const supportedListSortBy sortBy,
|
const supportedListSortBy sortBy,
|
||||||
const unsigned int maxSize,
|
const unsigned int maxSize,
|
||||||
const string language,
|
const std::string& language,
|
||||||
const string creator,
|
const std::string& creator,
|
||||||
const string publisher,
|
const std::string& publisher,
|
||||||
const string search);
|
const std::string& search);
|
||||||
|
|
||||||
string writableLibraryPath;
|
std::string writableLibraryPath;
|
||||||
|
|
||||||
vector<std::string> bookIdList;
|
std::vector<std::string> bookIdList;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
kiwix::Library* library;
|
kiwix::Library* library;
|
||||||
|
|
||||||
bool readBookFromPath(const string path, Book* book = NULL);
|
bool readBookFromPath(const std::string& path, Book* book = NULL);
|
||||||
bool parseXmlDom(const pugi::xml_document& doc,
|
bool parseXmlDom(const pugi::xml_document& doc,
|
||||||
const bool readOnly,
|
const bool readOnly,
|
||||||
const string libraryPath);
|
const std::string& libraryPath);
|
||||||
bool parseOpdsDom(const pugi::xml_document& doc,
|
bool parseOpdsDom(const pugi::xml_document& doc,
|
||||||
const std::string& urlHost);
|
const std::string& urlHost);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void checkAndCleanBookPaths(Book& book, const string& libraryPath);
|
void checkAndCleanBookPaths(Book& book, const std::string& libraryPath);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,8 @@
|
||||||
#include "manager.h"
|
#include "manager.h"
|
||||||
#include "downloader.h"
|
#include "downloader.h"
|
||||||
|
|
||||||
|
#include <pugixml.hpp>
|
||||||
|
|
||||||
namespace kiwix
|
namespace kiwix
|
||||||
{
|
{
|
||||||
/* Constructor */
|
/* Constructor */
|
||||||
|
@ -34,11 +36,11 @@ Manager::~Manager()
|
||||||
}
|
}
|
||||||
bool Manager::parseXmlDom(const pugi::xml_document& doc,
|
bool Manager::parseXmlDom(const pugi::xml_document& doc,
|
||||||
const bool readOnly,
|
const bool readOnly,
|
||||||
const string libraryPath)
|
const std::string& libraryPath)
|
||||||
{
|
{
|
||||||
pugi::xml_node libraryNode = doc.child("library");
|
pugi::xml_node libraryNode = doc.child("library");
|
||||||
|
|
||||||
string libraryVersion = libraryNode.attribute("version").value();
|
std::string libraryVersion = libraryNode.attribute("version").value();
|
||||||
|
|
||||||
for (pugi::xml_node bookNode = libraryNode.child("book"); bookNode;
|
for (pugi::xml_node bookNode = libraryNode.child("book"); bookNode;
|
||||||
bookNode = bookNode.next_sibling("book")) {
|
bookNode = bookNode.next_sibling("book")) {
|
||||||
|
@ -65,9 +67,9 @@ bool Manager::parseXmlDom(const pugi::xml_document& doc,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Manager::readXml(const string& xml,
|
bool Manager::readXml(const std::string& xml,
|
||||||
const bool readOnly,
|
const bool readOnly,
|
||||||
const string libraryPath)
|
const std::string& libraryPath)
|
||||||
{
|
{
|
||||||
pugi::xml_document doc;
|
pugi::xml_document doc;
|
||||||
pugi::xml_parse_result result
|
pugi::xml_parse_result result
|
||||||
|
@ -120,7 +122,7 @@ bool Manager::parseOpdsDom(const pugi::xml_document& doc, const std::string& url
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool Manager::readOpds(const string& content, const std::string& urlHost)
|
bool Manager::readOpds(const std::string& content, const std::string& urlHost)
|
||||||
{
|
{
|
||||||
pugi::xml_document doc;
|
pugi::xml_document doc;
|
||||||
pugi::xml_parse_result result
|
pugi::xml_parse_result result
|
||||||
|
@ -134,13 +136,13 @@ bool Manager::readOpds(const string& content, const std::string& urlHost)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Manager::readFile(const string path, const bool readOnly)
|
bool Manager::readFile(const std::string& path, const bool readOnly)
|
||||||
{
|
{
|
||||||
return this->readFile(path, path, readOnly);
|
return this->readFile(path, path, readOnly);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Manager::readFile(const string nativePath,
|
bool Manager::readFile(const std::string& nativePath,
|
||||||
const string UTF8Path,
|
const std::string& UTF8Path,
|
||||||
const bool readOnly)
|
const bool readOnly)
|
||||||
{
|
{
|
||||||
bool retVal = true;
|
bool retVal = true;
|
||||||
|
@ -166,9 +168,9 @@ bool Manager::readFile(const string nativePath,
|
||||||
|
|
||||||
/* Add a book to the library. Return empty string if failed, book id otherwise
|
/* Add a book to the library. Return empty string if failed, book id otherwise
|
||||||
*/
|
*/
|
||||||
string Manager::addBookFromPathAndGetId(const string pathToOpen,
|
std::string Manager::addBookFromPathAndGetId(const std::string& pathToOpen,
|
||||||
const string pathToSave,
|
const std::string& pathToSave,
|
||||||
const string url,
|
const std::string& url,
|
||||||
const bool checkMetaData)
|
const bool checkMetaData)
|
||||||
{
|
{
|
||||||
kiwix::Book book;
|
kiwix::Book book;
|
||||||
|
@ -196,9 +198,9 @@ string Manager::addBookFromPathAndGetId(const string pathToOpen,
|
||||||
|
|
||||||
/* Wrapper over Manager::addBookFromPath which return a bool instead of a string
|
/* Wrapper over Manager::addBookFromPath which return a bool instead of a string
|
||||||
*/
|
*/
|
||||||
bool Manager::addBookFromPath(const string pathToOpen,
|
bool Manager::addBookFromPath(const std::string& pathToOpen,
|
||||||
const string pathToSave,
|
const std::string& pathToSave,
|
||||||
const string url,
|
const std::string& url,
|
||||||
const bool checkMetaData)
|
const bool checkMetaData)
|
||||||
{
|
{
|
||||||
return !(
|
return !(
|
||||||
|
@ -206,7 +208,7 @@ bool Manager::addBookFromPath(const string pathToOpen,
|
||||||
.empty());
|
.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Manager::readBookFromPath(const string path, kiwix::Book* book)
|
bool Manager::readBookFromPath(const std::string& path, kiwix::Book* book)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
kiwix::Reader reader(path);
|
kiwix::Reader reader(path);
|
||||||
|
@ -219,8 +221,8 @@ bool Manager::readBookFromPath(const string path, kiwix::Book* book)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Manager::setBookIndex(const string id,
|
bool Manager::setBookIndex(const std::string& id,
|
||||||
const string path,
|
const std::string& path,
|
||||||
const supportedIndexType type)
|
const supportedIndexType type)
|
||||||
try {
|
try {
|
||||||
auto book = library->getBookById(id);
|
auto book = library->getBookById(id);
|
||||||
|
@ -235,7 +237,7 @@ try {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Manager::setBookPath(const string id, const string path)
|
bool Manager::setBookPath(const std::string& id, const std::string& path)
|
||||||
try {
|
try {
|
||||||
auto book = library->getBookById(id);
|
auto book = library->getBookById(id);
|
||||||
book.setPath(isRelativePath(path)
|
book.setPath(isRelativePath(path)
|
||||||
|
|
Loading…
Reference in New Issue