diff --git a/src/common/kiwix/reader.cpp b/src/common/kiwix/reader.cpp index 10526ba25..01a10b2e4 100644 --- a/src/common/kiwix/reader.cpp +++ b/src/common/kiwix/reader.cpp @@ -72,6 +72,7 @@ namespace kiwix { this->currentArticleOffset = this->firstArticleOffset; this->nsACount = this->zimFileHandler->getNamespaceCount('A'); this->nsICount = this->zimFileHandler->getNamespaceCount('I'); + this->zimFilePath = zimFilePath; } /* initialize random seed: */ @@ -252,6 +253,10 @@ namespace kiwix { return content.empty() ? false : true; } + string Reader::getZimFilePath() { + return this->zimFilePath; + } + /* Return a metatag value */ bool Reader::getMetatag(const string &name, string &value) { unsigned int contentLength = 0; diff --git a/src/common/kiwix/reader.h b/src/common/kiwix/reader.h index 79de7f18f..7d0325069 100644 --- a/src/common/kiwix/reader.h +++ b/src/common/kiwix/reader.h @@ -47,6 +47,7 @@ namespace kiwix { unsigned int getArticleCount(); unsigned int getMediaCount(); unsigned int getGlobalCount(); + string getZimFilePath(); string getId(); string getRandomPageUrl(); string getFirstPageUrl(); @@ -81,6 +82,7 @@ namespace kiwix { bool parseUrl(const string &url, char *ns, string &title); unsigned int getFileSize(); zim::File* getZimFileHandler(); + bool getArticleObjectByDecodedUrl(const string &url, zim::Article &article); protected: zim::File* zimFileHandler; @@ -89,13 +91,13 @@ namespace kiwix { zim::size_type currentArticleOffset; zim::size_type nsACount; zim::size_type nsICount; - + std::string zimFilePath; + std::vector< std::vector > suggestions; std::vector< std::vector >::iterator suggestionsOffset; private: std::map parseCounterMetadata(); - bool getArticleObjectByDecodedUrl(const string &url, zim::Article &article); }; } diff --git a/src/common/kiwix/searcher.cpp b/src/common/kiwix/searcher.cpp index 1cc2613e5..05e88bcad 100644 --- a/src/common/kiwix/searcher.cpp +++ b/src/common/kiwix/searcher.cpp @@ -34,9 +34,11 @@ namespace kiwix { { template_ct2 = getResourceAsString("results.ct2"); loadICUExternalTables(); - } - + + /* Destructor */ + Searcher::~Searcher() {} + /* Search strings in the database */ void Searcher::search(std::string &search, unsigned int resultStart, unsigned int resultEnd, const bool verbose) { @@ -127,6 +129,8 @@ namespace kiwix { this->contentHumanReadableId = contentHumanReadableId; } +#ifndef __ANDROID__ + string Searcher::getHtml() { SimpleVM oSimpleVM; @@ -203,9 +207,6 @@ namespace kiwix { } - /* Destructor */ - Searcher::~Searcher() { - - } +#endif } diff --git a/src/common/kiwix/searcher.h b/src/common/kiwix/searcher.h index f85fcd13b..f8a2551e2 100644 --- a/src/common/kiwix/searcher.h +++ b/src/common/kiwix/searcher.h @@ -33,14 +33,16 @@ #include #include "unicode/putil.h" +#ifndef __ANDROID__ #include #include #include - #include "kiwix/ctpp2/CTPP2VMStringLoader.hpp" -using namespace std; using namespace CTPP; +#endif + +using namespace std; struct Result { @@ -58,6 +60,7 @@ namespace kiwix { public: Searcher(); + ~Searcher(); void search(std::string &search, unsigned int resultStart, unsigned int resultEnd, const bool verbose=false); @@ -65,11 +68,13 @@ namespace kiwix { unsigned int getEstimatedResultCount(); bool setProtocolPrefix(const std::string prefix); bool setSearchProtocolPrefix(const std::string prefix); - string getHtml(); void reset(); void setContentHumanReadableId(const string &contentHumanReadableId); - ~Searcher(); +#ifndef __ANDROID__ + string getHtml(); +#endif + protected: std::string beautifyInteger(const unsigned int number); virtual void closeIndex() = 0; diff --git a/src/common/kiwix/xapianSearcher.h b/src/common/kiwix/xapianSearcher.h index 3fb24b29e..2f21ed052 100644 --- a/src/common/kiwix/xapianSearcher.h +++ b/src/common/kiwix/xapianSearcher.h @@ -27,10 +27,8 @@ using namespace std; namespace kiwix { - class NoXapianIndexInZim: public exception - { - virtual const char* what() const throw() - { + class NoXapianIndexInZim: public exception { + virtual const char* what() const throw() { return "There is no fulltext index in the zim file"; } }; @@ -39,7 +37,6 @@ namespace kiwix { public: XapianSearcher(const string &xapianDirectoryPath); - void searchInIndex(string &search, const unsigned int resultStart, const unsigned int resultEnd, const bool verbose=false); diff --git a/src/common/resourceTools.cpp b/src/common/resourceTools.cpp old mode 100755 new mode 100644 diff --git a/src/common/resourceTools.h b/src/common/resourceTools.h old mode 100755 new mode 100644 diff --git a/src/common/stringTools.cpp b/src/common/stringTools.cpp index 74aea6104..308765036 100644 --- a/src/common/stringTools.cpp +++ b/src/common/stringTools.cpp @@ -33,6 +33,19 @@ void kiwix::loadICUExternalTables() { #endif } +std::string kiwix::removeAccents(const std::string &text) { + loadICUExternalTables(); + ucnv_setDefaultName("UTF-8"); + UErrorCode status = U_ZERO_ERROR; + Transliterator *removeAccentsTrans = Transliterator::createInstance("Lower; NFD; [:M:] remove; NFC", UTRANS_FORWARD, status); + UnicodeString ustring = UnicodeString(text.c_str()); + removeAccentsTrans->transliterate(ustring); + delete removeAccentsTrans; + std::string unaccentedText; + ustring.toUTF8String(unaccentedText); + return unaccentedText; +} + #ifndef __ANDROID__ /* Prepare integer for display */ @@ -59,19 +72,6 @@ std::string kiwix::beautifyFileSize(const unsigned int number) { } } -std::string kiwix::removeAccents(const std::string &text) { - loadICUExternalTables(); - ucnv_setDefaultName("UTF-8"); - UErrorCode status = U_ZERO_ERROR; - Transliterator *removeAccentsTrans = Transliterator::createInstance("Lower; NFD; [:M:] remove; NFC", UTRANS_FORWARD, status); - UnicodeString ustring = UnicodeString(text.c_str()); - removeAccentsTrans->transliterate(ustring); - delete removeAccentsTrans; - std::string unaccentedText; - ustring.toUTF8String(unaccentedText); - return unaccentedText; -} - void kiwix::printStringInHexadecimal(UnicodeString s) { std::cout << std::showbase << std::hex; for (int i=0; i