diff --git a/src/common/kiwix/reader.cpp b/src/common/kiwix/reader.cpp index d64613fb4..395ad5e18 100644 --- a/src/common/kiwix/reader.cpp +++ b/src/common/kiwix/reader.cpp @@ -511,6 +511,15 @@ namespace kiwix { return retVal; } + /* Check if an article exists */ + bool Reader::urlExists(const string &url) { + char ns = 0; + string titleStr; + this->parseUrl(url, &ns, titleStr); + zim::File::const_iterator findItr = zimFileHandler->find(ns, titleStr); + return findItr->getUrl() == titleStr; + } + /* Search titles by prefix */ bool Reader::searchSuggestions(const string &prefix, unsigned int suggestionsCount, const bool reset) { bool retVal = false; diff --git a/src/common/kiwix/reader.h b/src/common/kiwix/reader.h index 8e0e3a79f..c24648d84 100644 --- a/src/common/kiwix/reader.h +++ b/src/common/kiwix/reader.h @@ -71,6 +71,7 @@ namespace kiwix { bool getContentByDecodedUrl(const string &url, string &content, unsigned int &contentLength, string &contentType); bool searchSuggestions(const string &prefix, unsigned int suggestionsCount, const bool reset = true); bool searchSuggestionsSmart(const string &prefix, unsigned int suggestionsCount); + bool urlExists(const string &url); std::vector getTitleVariants(const std::string &title); bool getNextSuggestion(string &title); bool getNextSuggestion(string &title, string &url);