mirror of https://github.com/kiwix/libkiwix.git
Remove deprecated method in the reader.
This commit is contained in:
parent
fbd4332c87
commit
d87079ec13
141
include/reader.h
141
include/reader.h
|
@ -101,17 +101,6 @@ class Reader
|
||||||
*/
|
*/
|
||||||
string getId() const;
|
string getId() const;
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the url of a random page.
|
|
||||||
*
|
|
||||||
* Deprecated : Use `getRandomPage` instead.
|
|
||||||
*
|
|
||||||
* @return Url of a random page. The page is picked from all entries in
|
|
||||||
* the 'A' namespace.
|
|
||||||
* The main page is excluded from the potential results.
|
|
||||||
*/
|
|
||||||
DEPRECATED string getRandomPageUrl() const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a random page.
|
* Get a random page.
|
||||||
*
|
*
|
||||||
|
@ -121,15 +110,6 @@ class Reader
|
||||||
*/
|
*/
|
||||||
Entry getRandomPage() const;
|
Entry getRandomPage() const;
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the url of the first page.
|
|
||||||
*
|
|
||||||
* Deprecated : Use `getFirstPage` instead.
|
|
||||||
*
|
|
||||||
* @return Url of the first entry in the 'A' namespace.
|
|
||||||
*/
|
|
||||||
DEPRECATED string getFirstPageUrl() const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the entry of the first page.
|
* Get the entry of the first page.
|
||||||
*
|
*
|
||||||
|
@ -137,15 +117,6 @@ class Reader
|
||||||
*/
|
*/
|
||||||
Entry getFirstPage() const;
|
Entry getFirstPage() const;
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the url of the main page.
|
|
||||||
*
|
|
||||||
* Deprecated : Use `getMainPage` instead.
|
|
||||||
*
|
|
||||||
* @return Url of the main page as specified in the zim file.
|
|
||||||
*/
|
|
||||||
DEPRECATED string getMainPageUrl() const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the entry of the main page.
|
* Get the entry of the main page.
|
||||||
*
|
*
|
||||||
|
@ -334,88 +305,6 @@ class Reader
|
||||||
*/
|
*/
|
||||||
Entry getEntryFromTitle(const std::string& title) const;
|
Entry getEntryFromTitle(const std::string& title) const;
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the url of a page specified by a title.
|
|
||||||
*
|
|
||||||
* @param[in] title the title of the page.
|
|
||||||
* @param[out] url the url of the page.
|
|
||||||
* @return True if the page can be found.
|
|
||||||
*/
|
|
||||||
DEPRECATED bool getPageUrlFromTitle(const string& title, string& url) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the mimetype of a entry specified by a url.
|
|
||||||
*
|
|
||||||
* @param[in] url the url of the entry.
|
|
||||||
* @param[out] mimeType the mimeType of the entry.
|
|
||||||
* @return True if the mimeType has been found.
|
|
||||||
*/
|
|
||||||
DEPRECATED bool getMimeTypeByUrl(const string& url, string& mimeType) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the content of an entry specifed by a url.
|
|
||||||
*
|
|
||||||
* Alias to `getContentByEncodedUrl`
|
|
||||||
*/
|
|
||||||
DEPRECATED bool getContentByUrl(const string& url,
|
|
||||||
string& content,
|
|
||||||
string& title,
|
|
||||||
unsigned int& contentLength,
|
|
||||||
string& contentType) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the content of an entry specified by a url encoded url.
|
|
||||||
*
|
|
||||||
* Equivalent to getContentByDecodedUrl(urlDecode(url), ...).
|
|
||||||
*/
|
|
||||||
DEPRECATED bool getContentByEncodedUrl(const string& url,
|
|
||||||
string& content,
|
|
||||||
string& title,
|
|
||||||
unsigned int& contentLength,
|
|
||||||
string& contentType,
|
|
||||||
string& baseUrl) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the content of an entry specified by an url encoded url.
|
|
||||||
*
|
|
||||||
* Equivalent to getContentByEncodedUrl but without baseUrl.
|
|
||||||
*/
|
|
||||||
DEPRECATED bool getContentByEncodedUrl(const string& url,
|
|
||||||
string& content,
|
|
||||||
string& title,
|
|
||||||
unsigned int& contentLength,
|
|
||||||
string& contentType) const;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the content of an entry specified by a url.
|
|
||||||
*
|
|
||||||
* @param[in] url The url of the entry.
|
|
||||||
* @param[out] content The content of the entry.
|
|
||||||
* @param[out] title the title of the entry.
|
|
||||||
* @param[out] contentLength The size of the entry (size of content).
|
|
||||||
* @param[out] contentType The mimeType of the entry.
|
|
||||||
* @param[out] baseUrl Return the true url of the entry.
|
|
||||||
* If the specified entry is a redirection, contains
|
|
||||||
* the url of the targeted entry.
|
|
||||||
* @return True if the entry has been found.
|
|
||||||
*/
|
|
||||||
DEPRECATED bool getContentByDecodedUrl(const string& url,
|
|
||||||
string& content,
|
|
||||||
string& title,
|
|
||||||
unsigned int& contentLength,
|
|
||||||
string& contentType,
|
|
||||||
string& baseUrl) const;
|
|
||||||
/**
|
|
||||||
* Get the content of an entry specified by a url.
|
|
||||||
*
|
|
||||||
* Equivalent to getContentByDecodedUrl but withou the baseUrl.
|
|
||||||
*/
|
|
||||||
DEPRECATED bool getContentByDecodedUrl(const string& url,
|
|
||||||
string& content,
|
|
||||||
string& title,
|
|
||||||
unsigned int& contentLength,
|
|
||||||
string& contentType) const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search for entries with title starting with prefix (case sensitive).
|
* Search for entries with title starting with prefix (case sensitive).
|
||||||
*
|
*
|
||||||
|
@ -497,16 +386,6 @@ class Reader
|
||||||
SuggestionsList_t& results);
|
SuggestionsList_t& results);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if the url exists in the zim file.
|
|
||||||
*
|
|
||||||
* Deprecated : Use `pathExists` instead.
|
|
||||||
*
|
|
||||||
* @param url the url to check.
|
|
||||||
* @return True if the url exits in the zim file.
|
|
||||||
*/
|
|
||||||
DEPRECATED bool urlExists(const string& url) const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if the path exists in the zim file.
|
* Check if the path exists in the zim file.
|
||||||
*
|
*
|
||||||
|
@ -562,16 +441,6 @@ class Reader
|
||||||
*/
|
*/
|
||||||
bool isCorrupted() const;
|
bool isCorrupted() const;
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse a full url into a namespace and url.
|
|
||||||
*
|
|
||||||
* @param[in] url The full url ("/N/url").
|
|
||||||
* @param[out] ns The namespace (N).
|
|
||||||
* @param[out] title The url (url).
|
|
||||||
* @return True
|
|
||||||
*/
|
|
||||||
DEPRECATED bool parseUrl(const string& url, char* ns, string& title) const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the total size of the zim file.
|
* Return the total size of the zim file.
|
||||||
*
|
*
|
||||||
|
@ -588,16 +457,6 @@ class Reader
|
||||||
*/
|
*/
|
||||||
zim::File* getZimFileHandler() const;
|
zim::File* getZimFileHandler() const;
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the zim article object associated to a url.
|
|
||||||
*
|
|
||||||
* @param[in] url The url of the article.
|
|
||||||
* @param[out] article The libzim article object.
|
|
||||||
* @return True if the url is good (article.good()).
|
|
||||||
*/
|
|
||||||
DEPRECATED bool getArticleObjectByDecodedUrl(const string& url,
|
|
||||||
zim::Article& article) const;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
zim::File* zimFileHandler;
|
zim::File* zimFileHandler;
|
||||||
zim::size_type firstArticleOffset;
|
zim::size_type firstArticleOffset;
|
||||||
|
|
206
src/reader.cpp
206
src/reader.cpp
|
@ -177,25 +177,6 @@ string Reader::getId() const
|
||||||
return s.str();
|
return s.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return a page url from a title */
|
|
||||||
bool Reader::getPageUrlFromTitle(const string& title, string& url) const
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
auto entry = getEntryFromTitle(title);
|
|
||||||
entry = entry.getFinalEntry();
|
|
||||||
url = entry.getPath();
|
|
||||||
return true;
|
|
||||||
} catch (NoEntry& e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return an URL from a title */
|
|
||||||
string Reader::getRandomPageUrl() const
|
|
||||||
{
|
|
||||||
return getRandomPage().getPath();
|
|
||||||
}
|
|
||||||
|
|
||||||
Entry Reader::getRandomPage() const
|
Entry Reader::getRandomPage() const
|
||||||
{
|
{
|
||||||
if (!this->zimFileHandler) {
|
if (!this->zimFileHandler) {
|
||||||
|
@ -412,12 +393,6 @@ string Reader::getOrigId() const
|
||||||
return origID;
|
return origID;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return the first page URL */
|
|
||||||
string Reader::getFirstPageUrl() const
|
|
||||||
{
|
|
||||||
return getFirstPage().getPath();
|
|
||||||
}
|
|
||||||
|
|
||||||
Entry Reader::getFirstPage() const
|
Entry Reader::getFirstPage() const
|
||||||
{
|
{
|
||||||
if (!this->zimFileHandler) {
|
if (!this->zimFileHandler) {
|
||||||
|
@ -434,41 +409,6 @@ Entry Reader::getFirstPage() const
|
||||||
return article;
|
return article;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool _parseUrl(const string& url, char* ns, string& title)
|
|
||||||
{
|
|
||||||
/* Offset to visit the url */
|
|
||||||
unsigned int urlLength = url.size();
|
|
||||||
unsigned int offset = 0;
|
|
||||||
|
|
||||||
/* Ignore the first '/' */
|
|
||||||
if (url[offset] == '/')
|
|
||||||
offset++;
|
|
||||||
|
|
||||||
if (url[offset] == '/' || offset >= urlLength)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
/* Get namespace */
|
|
||||||
*ns = url[offset++];
|
|
||||||
|
|
||||||
if (url[offset] != '/' || offset >= urlLength)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
offset++;
|
|
||||||
|
|
||||||
if ( offset >= urlLength)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
/* Get content title */
|
|
||||||
title = url.substr(offset, urlLength - offset);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Reader::parseUrl(const string& url, char* ns, string& title) const
|
|
||||||
{
|
|
||||||
return _parseUrl(url, ns, title);
|
|
||||||
}
|
|
||||||
|
|
||||||
Entry Reader::getEntryFromPath(const std::string& path) const
|
Entry Reader::getEntryFromPath(const std::string& path) const
|
||||||
{
|
{
|
||||||
char ns = 0;
|
char ns = 0;
|
||||||
|
@ -510,29 +450,6 @@ Entry Reader::getEntryFromTitle(const std::string& title) const
|
||||||
return article;
|
return article;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return article by url */
|
|
||||||
bool Reader::getArticleObjectByDecodedUrl(const string& url,
|
|
||||||
zim::Article& article) const
|
|
||||||
{
|
|
||||||
if (this->zimFileHandler == NULL) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Parse the url */
|
|
||||||
char ns = 0;
|
|
||||||
string urlStr;
|
|
||||||
_parseUrl(url, &ns, urlStr);
|
|
||||||
|
|
||||||
/* Main page */
|
|
||||||
if (urlStr.empty() && ns == 0) {
|
|
||||||
_parseUrl(this->getMainPage().getPath(), &ns, urlStr);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Extract the content from the zim file */
|
|
||||||
article = zimFileHandler->getArticle(ns, urlStr);
|
|
||||||
return article.good();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return the mimeType without the content */
|
/* Return the mimeType without the content */
|
||||||
bool Reader::getMimeTypeByUrl(const string& url, string& mimeType) const
|
bool Reader::getMimeTypeByUrl(const string& url, string& mimeType) const
|
||||||
{
|
{
|
||||||
|
@ -544,130 +461,7 @@ bool Reader::getMimeTypeByUrl(const string& url, string& mimeType) const
|
||||||
mimeType = "";
|
mimeType = "";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
bool get_content_by_decoded_url(const Reader& reader,
|
|
||||||
const string& url,
|
|
||||||
string& content,
|
|
||||||
string& title,
|
|
||||||
unsigned int& contentLength,
|
|
||||||
string& contentType,
|
|
||||||
string& baseUrl)
|
|
||||||
{
|
|
||||||
content = "";
|
|
||||||
contentType = "";
|
|
||||||
contentLength = 0;
|
|
||||||
|
|
||||||
try {
|
|
||||||
auto entry = reader.getEntryFromPath(url);
|
|
||||||
entry = entry.getFinalEntry();
|
|
||||||
baseUrl = entry.getPath();
|
|
||||||
contentType = entry.getMimetype();
|
|
||||||
content = entry.getContent();
|
|
||||||
contentLength = entry.getSize();
|
|
||||||
title = entry.getTitle();
|
|
||||||
|
|
||||||
/* Try to set a stub HTML header/footer if necesssary */
|
|
||||||
if (contentType.find("text/html") != string::npos
|
|
||||||
&& content.find("<body") == std::string::npos
|
|
||||||
&& content.find("<BODY") == std::string::npos) {
|
|
||||||
content = "<html><head><title>" + title +
|
|
||||||
"</title><meta http-equiv=\"Content-Type\" content=\"text/html; "
|
|
||||||
"charset=utf-8\" /></head><body>" +
|
|
||||||
content + "</body></html>";
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
} catch (NoEntry& e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Get a content from a zim file */
|
|
||||||
bool Reader::getContentByUrl(const string& url,
|
|
||||||
string& content,
|
|
||||||
string& title,
|
|
||||||
unsigned int& contentLength,
|
|
||||||
string& contentType) const
|
|
||||||
{
|
|
||||||
std::string stubRedirectUrl;
|
|
||||||
return get_content_by_decoded_url(*this,
|
|
||||||
kiwix::urlDecode(url),
|
|
||||||
content,
|
|
||||||
title,
|
|
||||||
contentLength,
|
|
||||||
contentType,
|
|
||||||
stubRedirectUrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Reader::getContentByEncodedUrl(const string& url,
|
|
||||||
string& content,
|
|
||||||
string& title,
|
|
||||||
unsigned int& contentLength,
|
|
||||||
string& contentType,
|
|
||||||
string& baseUrl) const
|
|
||||||
{
|
|
||||||
return get_content_by_decoded_url(*this,
|
|
||||||
kiwix::urlDecode(url),
|
|
||||||
content,
|
|
||||||
title,
|
|
||||||
contentLength,
|
|
||||||
contentType,
|
|
||||||
baseUrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Reader::getContentByEncodedUrl(const string& url,
|
|
||||||
string& content,
|
|
||||||
string& title,
|
|
||||||
unsigned int& contentLength,
|
|
||||||
string& contentType) const
|
|
||||||
{
|
|
||||||
std::string stubRedirectUrl;
|
|
||||||
return get_content_by_decoded_url(*this,
|
|
||||||
kiwix::urlDecode(url),
|
|
||||||
content,
|
|
||||||
title,
|
|
||||||
contentLength,
|
|
||||||
contentType,
|
|
||||||
stubRedirectUrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Reader::getContentByDecodedUrl(const string& url,
|
|
||||||
string& content,
|
|
||||||
string& title,
|
|
||||||
unsigned int& contentLength,
|
|
||||||
string& contentType) const
|
|
||||||
{
|
|
||||||
std::string stubRedirectUrl;
|
|
||||||
return get_content_by_decoded_url(*this,
|
|
||||||
url,
|
|
||||||
content,
|
|
||||||
title,
|
|
||||||
contentLength,
|
|
||||||
contentType,
|
|
||||||
stubRedirectUrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Reader::getContentByDecodedUrl(const string& url,
|
|
||||||
string& content,
|
|
||||||
string& title,
|
|
||||||
unsigned int& contentLength,
|
|
||||||
string& contentType,
|
|
||||||
string& baseUrl) const
|
|
||||||
{
|
|
||||||
return get_content_by_decoded_url(*this,
|
|
||||||
url,
|
|
||||||
content,
|
|
||||||
title,
|
|
||||||
contentLength,
|
|
||||||
contentType,
|
|
||||||
baseUrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check if an article exists */
|
|
||||||
bool Reader::urlExists(const string& url) const
|
|
||||||
{
|
|
||||||
return pathExists(url);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Reader::pathExists(const string& path) const
|
bool Reader::pathExists(const string& path) const
|
||||||
|
|
Loading…
Reference in New Issue