Maneesh P M
9addd82d2d
Fix usage of zim::Searcher::getResults() in libkiwix
...
The correct usage does not require the user to calculate an `end` using
the `pageLength`. We can directly use getResults(start, pageLength)
2021-08-04 19:20:50 +05:30
Maneesh P M
19afe9442f
Remove OriginId functions since they are not useful right now
2021-08-03 11:42:58 +02:00
Maneesh P M
8b12434ff2
Update kiwix::book to use libzim structure
...
Some methods in kiwix::Book uses wrapper structure reader. This usage should
be extended from the native libzim structure zim::Archive
2021-08-03 11:42:58 +02:00
Veloman Yunkan
ab3095745e
Languages OPDS feed includes book counts
2021-08-03 11:32:38 +02:00
Veloman Yunkan
96cf7e78a5
OPDSDumper::categoriesOPDSFeed() with no args
2021-08-03 11:32:38 +02:00
Veloman Yunkan
5f90f5ee2a
Preliminary version of /catalog/v2/languages
2021-08-03 11:32:38 +02:00
Veloman Yunkan
18871b4b15
Helper function Library::getBookPropValueSet()
...
Introduced a helper function `Library::getBookPropValueSet()` and
deduplicated Library::getBooks{Languages,Creators,Publishers}() methods.
2021-08-03 11:32:38 +02:00
Matthieu Gautier
0b6b6716de
Rename split argument from `trimEmpty` to `dropEmpty`.
2021-07-07 14:43:13 +02:00
Matthieu Gautier
18b6433322
Correct method declaration in `SuggestionItem`
2021-07-07 14:43:13 +02:00
Matthieu Gautier
b70c92cade
Move back used helper functions to the public API.
...
- Add docstring
- Move the declaration in kiwix namespace.
- Adapt our include to include the right headers.
2021-07-07 14:43:13 +02:00
Matthieu Gautier
09d843da3a
Add a (empty) `include/tools.h` header.
...
This header will contain our public tool functions.
2021-07-07 14:43:13 +02:00
Matthieu Gautier
fa83a61a54
Move all public *Tools.h in src.
...
This by definition remove all the tool functions from the public API.
2021-07-07 14:43:13 +02:00
Maneesh P M
bcece66960
Add SearchRenderer handles for libzim structures
...
Introduces a new member mp_search that houses the zim::Search object,
adds a new constructor for this purpose. This commit also add an
overload for getHtml that takes start and end integers as arguments
since they are not part of the search object we include.
2021-07-03 14:05:50 +05:30
Maneesh P M
c046f64d83
Drop Reader and Entry wrappers from handle_content
2021-07-03 14:05:50 +05:30
Maneesh P M
75b4d311d7
Drop Reader from InternalServer::handle_random
2021-07-03 14:04:04 +05:30
Maneesh P M
a236751c74
Drop usage of Reader from InternalServer::handle_suggest
2021-07-03 14:04:04 +05:30
Maneesh P M
7d68926539
Drop usage of Reader from InternalServer::handle_meta
...
This is essentially a code move of meta handlers from using Reader
functions to directly using Archive.
2021-07-03 14:04:02 +05:30
Maneesh P M
940368b8ac
Add m_archives and getArchiveById to Library
...
These members will mirror the functionality offered by equivalent usage
of Reader class.
2021-07-03 14:02:31 +05:30
Veloman Yunkan
b5c1b26761
OpdsCatalog::getSearchUrl()
2021-06-30 18:27:00 +02:00
Veloman Yunkan
e799f2ff1e
OPDSDumper::dumpOPDSFeed() works via mustache
...
This changes the output of `/catalog/search` as follows:
- Entire search query (rather than only the value of the `q` parameter)
is put in the <title> node.
- Search performed with an empty query presents itself as "All zims".
- The feed id remains stable for identical searches on the same
library.
2021-06-08 20:37:00 +04:00
Veloman Yunkan
9ca6bd006f
/catalog/v2/categories goes through OPDSDumper too
2021-06-08 20:37:00 +04:00
Veloman Yunkan
cdacc0caf1
/catalog/v2/entries going through OPDSDumper
...
OPDSDumper sensed threats to its job security, so it lobbied to be
involved in handling the /catalog/v2 endpoints, too.
2021-06-08 20:37:00 +04:00
Veloman Yunkan
b259afa408
Library::getBooksCategories()
...
Note: no unit test added
2021-06-08 20:37:00 +04:00
Veloman Yunkan
54b78eaf56
Moved gen_date_str() to tools/otherTools.cpp
2021-06-08 16:03:43 +04:00
Maneesh P M
e2f6d91d51
Remove get_readerIndex in favor of get_zimId
...
The function get_readerIndex was used to get the zimId using an ordered
vector of readers. Now we can use get_zimId directly.
2021-05-26 14:45:25 +02:00
Maneesh P M
c35f6f9142
Add `get_zimId` method to Result
...
get_zimId method allows the user to get the uuid of the archive from
which a result is retrieved directly from the search result itself.
2021-05-26 14:45:25 +02:00
Maneesh P M
5567d8ca49
Replace std::vector<std::string> with SuggestionItem
...
Each sugestions used to be stored as vector of strings to hold various values
such as title, path etc inside them. With this commit, we use the new
dedicated class `SuggestionItem` to do the same.
2021-05-26 10:53:39 +02:00
Maneesh P M
5315034afe
Introduce `SuggestionItem` class
...
This is a helper class that allows to create and manage individual
suggestion item and their data.
2021-05-26 10:53:00 +02:00
Emmanuel Engelhart
d4e35c7067
Rename kiwix-lib in libkiwix
2021-05-23 21:46:52 +02:00
Veloman Yunkan
cd02b4de3b
Dummy application of new libzim search API
...
Didn't take any advantage of the new libzim search API. Just fixed the
libkiwix build in the most straightforward way.
2021-05-15 23:34:51 +04:00
Veloman Yunkan
3879b82112
const-correct kiwix::Library
...
- Made most methods of kiwix::Library const.
- Also added const versions of getBookById() and getBookByPath()
methods.
2021-04-28 11:42:55 +04:00
Veloman Yunkan
9c7366890d
Catalog filtering by tags works via Xapian
2021-04-27 16:59:21 +04:00
Veloman Yunkan
19e195cb7d
Filter::Tags typedef
2021-04-27 16:59:21 +04:00
Veloman Yunkan
3d5fd8f585
Catalog filtering by creator works via Xapian
2021-04-27 16:59:21 +04:00
Veloman Yunkan
a759ab989f
Catalog filtering by publisher works via Xapian
2021-04-27 16:59:21 +04:00
Veloman Yunkan
7ccd9ffcce
Catalog filtering by language works via Xapian
2021-04-27 16:59:21 +04:00
Veloman Yunkan
0c0a37073b
Catalog filtering by category works via Xapian
2021-04-27 16:59:21 +04:00
Veloman Yunkan
415c65cf03
Catalog filtering by book name works via Xapian
2021-04-27 16:59:21 +04:00
Veloman Yunkan
80cd1fc989
Renamed 2 functions in Filter and Library
2021-04-27 16:59:21 +04:00
Veloman Yunkan
2d76f8395e
Dropped unused functions from Filter's private API
...
This should have been done back in PR #460
2021-04-27 16:59:21 +04:00
Veloman Yunkan
29a6a34ecf
Delimited kiwix::Filter's public and private APIs
2021-04-27 16:59:21 +04:00
Veloman Yunkan
aa2a031ba4
Xapian headers are not exposed through libkiwix
2021-04-07 18:24:33 +04:00
Veloman Yunkan
09233bf4f3
Support for partial queries in catalog search
...
The search text in the catalog query is interpreted as partial by
default, but partial query mode can be disabled in C++. The latter
possibility is not exposed via the /catalog/search kiwix-serve endpoint,
though.
2021-03-17 14:32:03 +01:00
Veloman Yunkan
a599fb3892
Initial version of Xapian-based catalog search
2021-03-17 14:32:03 +01:00
Veloman Yunkan
a17fc0ef2d
Library::getBooksByTitleOrDescription()
2021-03-17 14:32:03 +01:00
Veloman Yunkan
db06b2c7ca
Library::BookIdCollection typedef
2021-03-17 14:32:03 +01:00
Veloman Yunkan
a20f9e2ce1
Library::filter() works in two stages
...
1. Get the subset of books matching the q (title/description) parameter
of the search
2. Filter out books not matching the other parameters of the search.
Stage 1. currently works in the old way, but will be replaced by Xapian
based search in subsequent commits.
2021-03-17 14:32:03 +01:00
Veloman Yunkan
6b2067c236
Reading category element from OPDS stream
2021-03-17 14:10:57 +04:00
Veloman Yunkan
e55bf514e8
Dedicated 'category' parameter in catalog search
2021-03-17 14:10:57 +04:00
Veloman Yunkan
58186ffb26
kiwix::Book::getCategory()
2021-03-17 14:09:48 +04:00