Manan Jethwani
b7b385d87b
added custom index template
2021-10-12 19:44:05 +05:30
Matthieu Gautier
cd9fb541fc
Fix method call for new libzim API.
...
`add_archive` is now `addArchive`.
2021-09-29 11:55:22 +02:00
Maneesh P M
61209ea0d7
Allow kiwix-serve to get suggestions of custom range
...
This will allow handle_suggest API to accept two arguments `start` and
`suggestionLength` that will allow handle_suggest to retrieve
suggestions in the given range rather than the default 0-10 range.
2021-08-19 21:05:39 +05:30
Maneesh P M
8a4080baba
Update libkiwix with new libzim api
2021-08-14 22:26:39 +05:30
Veloman Yunkan
452283cfe6
Handling of /meta?name=Illustration_WxH@1 requests
2021-08-05 22:28:09 +04:00
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
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
Maneesh P M
a94a03cd22
Remove unwanted reader functions
...
Removing the functions in InternalServer that are no longer needed.
2021-07-03 14:07:14 +05:30
Maneesh P M
bc821638da
Drop wrapper structures from handle_search
...
Since we now have SearcherRenderer that can work with native libzim
structure, we will drop the wrapper and use them instead.
2021-07-03 14:07:12 +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
Vertigo
8d39b2c4c1
Added content ZIM home button on 404
2021-06-17 12:51:27 +05:30
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
312f2cb560
Moved handle_catalog_v2*() methods into a new file
2021-06-08 20:37:00 +04:00
Veloman Yunkan
f1797993af
Reused InternalServer::search_catalog()
2021-06-08 20:37:00 +04:00
Veloman Yunkan
f886c8c07b
Root url is normalized once in the constructor
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
dfad1c3815
/catalog/v2/searchdescription.xml
2021-06-08 20:37:00 +04:00
Veloman Yunkan
07252a127a
/catalog/v2/entries is also a search endpoint
2021-06-08 20:37:00 +04:00
Veloman Yunkan
b60e3ffb26
RequestContext::get_optional_param()
2021-06-08 20:37:00 +04:00
Veloman Yunkan
70d42aec98
A small simplification
2021-06-08 20:37:00 +04:00
Veloman Yunkan
4aa3c792aa
Extracted get_search_filter()
2021-06-08 20:37:00 +04:00
Veloman Yunkan
208dece7e3
Reordered several statements
...
Reordered several statements so that the next couple of commits are a
little simpler.
2021-06-08 20:37:00 +04:00
Veloman Yunkan
19b59fd72f
Serving /catalog/v2/entries
...
/catalog/v2/entries is intended to play the combined role of
/catalog/root.xml and /catalog/search of the old OPDS API. Currently,
the latter role is not yet implemented.
Implementation note: instead of tweaking and reusing
`OPDSDumper::dumpOPDSFeed()`, the generation of the OPDS feed is done via `mustache`
and a new template `static/catalog_v2_entries.xml`.
2021-06-08 20:37:00 +04:00
Veloman Yunkan
92c2de8d46
Enter InternalServer::m_library_id
...
The new field is intended to serve as a seed for generating semi-stable
OPDS feed ids that only need to change when the library is updated.
2021-06-08 20:37:00 +04:00
Veloman Yunkan
2e53b51696
Serving /catalog/v2/categories
2021-06-08 20:37:00 +04:00
Veloman Yunkan
3c3cf08a1a
Serving /catalog/v2/root.xml
...
Note: This commit somewhat relaxes validation of non variable
`<updated>` elements in the OPDS feed - the contents of any `<updated>`
element is replaced with the YYYY-MM-DDThh:mm:ssZ placeholder.
2021-06-08 16:03:43 +04:00
Veloman Yunkan
5b272ac49c
Fixed handling of /catalogBLABLA/root.xml & alike
...
Also removed an unneeded namespace qualifier.
2021-06-08 16:03:43 +04:00
Manan Jethwani
bb92f26b60
added filter functionality
2021-06-07 15:37:20 +02:00
Manan Jethwani
063bb8cd65
added dynamic and subset loading of zim-files in kiwix-serve
2021-06-01 19:33:42 +05:30
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
56434de79e
Set label to title snippet if present
...
With openzim/libzim#545 we now support snippet generation of titles
which can be used as the display label on the ui for highlighted titles
via the "label" field.
The old version used plain title which is still available in the value
field.
2021-05-26 10:52:58 +02:00
Matthieu Gautier
2736a46cfe
Revert "Kiwix Serve welcome page dynamic and subset loading (OPDS based)"
2021-05-25 17:30:05 +02:00
Manan Jethwani
012973d14a
added dynamic and subset loading of zim-files in kiwix-serve
2021-05-25 02:41:12 +05:30
Veloman Yunkan
68189de162
/catalog/search handles out-of-bounds pagination
2021-05-10 11:25:06 +02:00
Maneesh P M
be6b58c6ad
Revert "added 204 code for empty return of search"
...
Returning status code 204 in case of an empty results doesn't show the
empty results page as described in #466 . Reverting the changes in #396
fixes the issue.
2021-05-09 10:47:18 +05:30
Manan Jethwani
965b9622c2
removed redirect to articles in search
2021-04-20 20:23:42 +05:30
Vertigo
611146aa37
Added Search Link for bad bookName/articleName on 404
2021-04-12 21:31:47 +05:30
Manan Jethwani
5cb276a933
adding kind and path attributes to suggest response object and using it in autocomplete
2021-04-07 21:04:33 +05:30
Veloman Yunkan
e55bf514e8
Dedicated 'category' parameter in catalog search
2021-03-17 14:10:57 +04:00
Veloman Yunkan
80d4f7e349
Extracted InternalServer::search_catalog()
2021-03-17 14:10:57 +04:00
Matthieu Gautier
3fd1310008
Use c++11 std::thread instead of pthread.
2021-01-26 17:53:25 +01:00
Steve Wills
6900b4e506
fix build on FreeBSD
...
With this header, sockaddr_in and INADDR_ANY are not defined
2020-12-07 09:38:46 -05:00
Matthieu Gautier
1a5a2e7a8e
Adapt kiwix-lib to the new libzim api.
2020-12-02 12:16:48 +01:00
Matthieu Gautier
3352c95314
Remove the `RedirectResponse` and use a basic `Response` with header.
2020-08-13 11:16:41 +02:00
Matthieu Gautier
6d5cddca12
Fix android compilation
...
Android clang complains about the fact it cannot move the
`std::unique_ptr<ContentResponse>` into a `std::unique_ptr<Response>&&`
(for the implicit `std::unique_ptr<Response>` constructor).
Let's help him a bit.
2020-08-13 11:16:41 +02:00
Matthieu Gautier
a3939e9a05
Move all the content code in the ContentResponse.
2020-08-13 11:16:41 +02:00
Matthieu Gautier
eee621d15b
Move small utilities method to create response in Response class.
2020-08-13 11:16:41 +02:00
Matthieu Gautier
7b2ee37437
Move the entry response to its own class.
2020-08-13 11:16:41 +02:00
Matthieu Gautier
f014fb2895
Introduce a ContentResponse.
...
This is only an "interface" for now as other type of response (entry) may
be "transformed" to a ContentResponse.
We cannot move all the code in the class.
2020-08-13 11:16:41 +02:00
Matthieu Gautier
1011d1ff0b
Move the redirection response in its own class.
...
The redirection is the easiest to move, let's start with this one.
2020-08-13 11:16:41 +02:00
Matthieu Gautier
9e351b279e
Remove `get_default_response` in favor of a static Response method.
...
We want to build different kind of response depending of the context.
2020-08-13 11:16:41 +02:00
Matthieu Gautier
a0bdc0821c
Move internalServer code into its own source files.
2020-08-13 11:16:41 +02:00