+ try to match the article title with a few variant of the search pattern

pull/9/head
kelson42 12 years ago
parent 384ee7bc69
commit fad1149ba5

@ -288,12 +288,42 @@ static int accessHandlerCallback(void *cls,
/* Try first to load directly the article if exactly matching the pattern */
std::string patternCorrespondingUrl;
if (reader != NULL) {
pthread_mutex_lock(&readerLock);
bool found = false;
/* Try to see if there is an article with this title */
reader->getPageUrlFromTitle(patternString, patternCorrespondingUrl);
found = !patternCorrespondingUrl.empty();
/* Try with first letter uppercase */
if (!found) {
patternString = kiwix::ucFirst(patternString);
reader->getPageUrlFromTitle(patternString, patternCorrespondingUrl);
found = !patternCorrespondingUrl.empty();
}
/* Try with first letter lowercase */
if (!found) {
patternString = kiwix::lcFirst(patternString);
reader->getPageUrlFromTitle(patternString, patternCorrespondingUrl);
found = !patternCorrespondingUrl.empty();
}
/* Try with title words */
if (!found) {
patternString = kiwix::toTitle(patternString);
reader->getPageUrlFromTitle(patternString, patternCorrespondingUrl);
found = !patternCorrespondingUrl.empty();
}
pthread_mutex_unlock(&readerLock);
/* If article found then redirect directly to it */
if (!patternCorrespondingUrl.empty()) {
httpRedirection="/" + humanReadableBookId + "/" + patternCorrespondingUrl;
}
}
/* Make the search */

Loading…
Cancel
Save