Veloman Yunkan
ab3095745e
Languages OPDS feed includes book counts
2021-08-03 11:32:38 +02:00
Veloman Yunkan
45adda44b3
Got rid of <content> node in languages OPDS entry
2021-08-03 11:32:38 +02:00
Veloman Yunkan
dd118df612
Got rid of langMap in opds_dumper.cpp
...
Language code to human friendly name translation is now done with the
help of the ICU library. It works if the line
```
-include $(LANGSRCDIR)/resfiles.mk
```
in the file `source/data/Makefile.in` of the icu4c dependency is not
commented out. Currently, the said line is commented out (along with
some other include's) by the `icu4c_custom_data.patch` patch of the
`kiwix-build` tool.
2021-08-03 11:32:38 +02:00
Veloman Yunkan
8a4248e48e
Language code in /catalog/v2/languages entries
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
64b55dbdc7
Made test library.xml a multi-language library
2021-08-03 11:32:38 +02:00
Veloman Yunkan
b2027b397c
List of languages entry in /catalog/v2/root.xml
...
Added a new entry in /catalog/v2/root.xml that points to a
not-yet-existing list of languages navigation feed.
2021-08-03 11:32:38 +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
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
Veloman Yunkan
dd60235010
Fixed the self link in the output of /catalog/v2/entries
2021-06-08 20:37:00 +04: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
fa42cbc48f
Pagination info in /catalog/v2/entries
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
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
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
feeb9f206e
/catalog/v2/* XMLs are OPDS 1.2
2021-06-08 20:37:00 +04:00
Veloman Yunkan
a1520ce7f1
Fixing the xenial build
...
Under Ubuntu 16.04/xenial, ccache seems to have issues with multiline
raw string literals used inside macros.
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
1e0ff1fbb0
Fixed the double colon in OPDS date string
2021-06-08 16:03:43 +04:00
Veloman Yunkan
0a3d293ae0
Broke Server.404 with /catalogBLABLABLA/root.xml
...
The new negative test-point demonstrates that Kiwix server doesn't
distinguish /catalogBLABLABLA from /catalog.
2021-06-08 16:03:43 +04:00
Emmanuel Engelhart
c8b7f8772a
Fix Libkiwix Github repository URLS
2021-05-20 08:56:44 +02:00
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
Veloman Yunkan
47c67a4202
LibraryServerTest.catalog_search_with_word_exclusion
2021-03-17 14:32:03 +01:00
Veloman Yunkan
6b600a18eb
LibraryServerTest.catalog_prefix_search
2021-03-17 14:32:03 +01:00
Veloman Yunkan
9e887cadf1
Added some diversity to test/data/library.xml
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
e55bf514e8
Dedicated 'category' parameter in catalog search
2021-03-17 14:10:57 +04:00
Veloman Yunkan
f270724b1f
Testing of a library entry without a category
2021-03-17 14:10:44 +04:00
Veloman Yunkan
58186ffb26
kiwix::Book::getCategory()
2021-03-17 14:09:48 +04:00
Veloman Yunkan
6d43fd065f
Less boilerplate in LibraryServerTest unit-tests
2021-03-17 14:02:27 +04:00
Veloman Yunkan
071d2bedd3
LibraryServerTest.catalog_search_by_text
2021-03-17 14:02:27 +04:00
Veloman Yunkan
0b1740e6c5
LibraryServerTest.catalog_search_by_tag
2021-03-17 14:02:27 +04:00
Veloman Yunkan
9913f748e2
LibraryServerTest.catalog_searchdescription_xml
2021-03-17 14:02:27 +04:00
Veloman Yunkan
c5c40cb189
New unit-test LibraryServerTest.catalog_root_xml
2021-03-17 14:02:27 +04:00
Matthieu Gautier
ed32e16db2
Use a reference in `test/server.cpp` loop.
...
This is mainly to make the macos CI pass.
2020-10-28 16:08:37 +01:00
MananJethwani
599aaa4c1b
added code for status code 204 for empty return of search.
2020-08-01 01:45:42 +05:30
Veloman Yunkan
3d425f44de
Request header case is ignored
...
Originally reported against case sensitivity of the Range header
(see issue #387 ), this fix applies to all request headers (since
according to RFC 7230 all header fields are case-insensitive, see
https://tools.ietf.org/html/rfc7230#section-3.2 ). However, a
corresponding unit-test was added only for the Range header.
2020-07-30 16:01:51 +02:00
Matthieu Gautier
157d1664cf
Fix test compilation on bionic
2020-06-09 12:10:05 +02:00
Veloman Yunkan
1cdf830217
Testing of byte-range requests of 0-sized entries
2020-06-03 14:18:22 +04:00
Veloman Yunkan
0b48ab20bb
Enhanced the server unit-test with corner cases
2020-06-03 13:45:31 +04:00
Veloman Yunkan
a9b6d481cc
ServerTest.RangeHasPrecedenceOverCompression
2020-05-26 13:58:20 +04:00
Veloman Yunkan
c2ebdefe8d
Handling of unsatisfiable ranges
2020-05-26 02:11:26 +04:00
Veloman Yunkan
931e95f391
Invalid byte ranges result in 416 responses
2020-05-26 01:40:07 +04:00
Veloman Yunkan
f7571b5b69
Content-Range header is set only for partial content
2020-05-25 17:42:18 +04:00
Veloman Yunkan
52f207eaa6
Support for single-ended byte ranges
2020-05-25 16:37:01 +04:00
Veloman Yunkan
bd2d0bc489
Unit-test for valid single range requests
2020-05-22 17:39:00 +04:00