a599fb3892
Initial version of Xapian-based catalog search
2021-03-17 14:32:03 +01:00
a17fc0ef2d
Library::getBooksByTitleOrDescription()
2021-03-17 14:32:03 +01:00
db06b2c7ca
Library::BookIdCollection typedef
2021-03-17 14:32:03 +01:00
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
b7b0bdbdd8
Both Book::update() methods update the category
2021-03-17 14:10:57 +04:00
4abc4f8518
Support for book category attribute in library.xml
2021-03-17 14:10:57 +04:00
6b2067c236
Reading category element from OPDS stream
2021-03-17 14:10:57 +04:00
e55bf514e8
Dedicated 'category' parameter in catalog search
2021-03-17 14:10:57 +04:00
80d4f7e349
Extracted InternalServer::search_catalog()
2021-03-17 14:10:57 +04:00
58186ffb26
kiwix::Book::getCategory()
2021-03-17 14:09:48 +04:00
ae32ff40c0
Dropped an extra colon from book <updated> dates
2021-03-17 14:02:27 +04:00
26331b401e
Fixed the month in OPDS feed <updated> date
...
`tm::tm_mon` varies in the [0, 11] range.
2021-03-17 14:02:27 +04:00
67caae6c32
Use the new libzim's getRandomEntry instead of implementing it ourselves.
2021-03-02 14:16:09 +01:00
839fc10a4f
Fixed the Windows build
...
Opening ZIM archives by file descriptor (as well as embedded
ZIM archives) is not supported under Windows.
2021-02-10 14:19:47 +01:00
5a8b825c70
Testing of JNIKiwixReader.getDirectAccessInformation()
2021-02-10 14:19:47 +01:00
7a465e66d7
Renamed org.kiwix.kiwixlib.{Pair->DirectAccessInfo}
2021-02-10 14:19:47 +01:00
5a99634dfd
Java wrapper test checks favicon.png too
2021-02-10 14:19:47 +01:00
e028bcbb04
Android's java.io.FileDescriptor is different
2021-02-10 14:19:47 +01:00
9cdf7a44c0
JNIKiwixReader can open an embedded ZIM archive
2021-02-10 14:19:47 +01:00
4d23e44de7
JNIKiwixReader ctor taking a file descriptor
...
... and a corresponding unit test
2021-02-10 14:19:47 +01:00
98d69ef59b
Added testReader unit-test for the java wrapper
2021-02-10 14:19:47 +01:00
e40827fbac
Renamed the java wrapper unit test runner script
2021-02-10 14:19:47 +01:00
a798e0c0a1
Made the java wrapper unit test run & pass
...
The kiwixlib java wrapper unit test can be run manually via the
src/wrapper/java/org/kiwix/testing/compile_test.sh script.
The test ZIM files in src/wrapper/java/org/kiwix/testing were created
using the create_test_zimfiles. They must be updated/re-generated and
committed in git whenever their source data or the create_test_zimfiles
script changes. Note: small.zim.embedded is not used at this point, it
was created for testing the enhancement coming in a few commits.
2021-02-10 14:19:47 +01:00
24b2e6e585
Remove unnecessary include.
2021-01-26 17:53:25 +01:00
3fd1310008
Use c++11 std::thread instead of pthread.
2021-01-26 17:53:25 +01:00
4749656828
Do not crash if zim file has no Counter
metadata.
2021-01-26 15:15:27 +01:00
84895c4036
Better </head> detection regex
2021-01-18 13:16:56 +01:00
a8bf9dd5b4
Better Kiwix Serve Taskbar insertion (after charset definition)
2021-01-18 11:18:53 +01:00
a61c94ef10
Add GPLv3 header
2021-01-18 10:54:33 +01:00
8c43fd8d36
Fix taskbar insertion in case of '<head>' attributes
2021-01-11 14:37:19 +01:00
3e2810dff4
Support 'video/*' * 'audio/*' mimetypes in getMediaCount()
2021-01-07 12:32:32 +01:00
44c4aa931a
Better use kiwix::startsWith()
2021-01-03 15:17:03 +01:00
95b32b168d
More robust getMediaCount()
2021-01-01 17:05:32 +01:00
1002c15e0d
Remove unnecessary checks.
...
`Reader` cannot be created with a null `zimArchive`.
We don't have to check for zimArchive being not null.
2020-12-09 14:25:02 +01:00
d51000c4a9
Use new libzim method hasFulltextIndex
to check for fulltext index.
2020-12-09 14:25:02 +01:00
ba302bed33
Use new libzim method getFaviconEntry
to get the favicon.
2020-12-09 14:25:02 +01:00
6900b4e506
fix build on FreeBSD
...
With this header, sockaddr_in and INADDR_ANY are not defined
2020-12-07 09:38:46 -05:00
1a5a2e7a8e
Adapt kiwix-lib to the new libzim api.
2020-12-02 12:16:48 +01:00
d87079ec13
Remove deprecated method in the reader.
2020-11-24 19:00:52 +01:00
0f8fe1f63f
Alternative implementation of parseMimetypeCounter()
2020-10-29 14:11:27 +04:00
08464f23bc
Better parsing of M/Counter
...
Mimetype may contain a parameters.
Then, the mimetype would be something like "text/html;foo=bar;foz=baz"
It will contains a `;` and `=` and it conflicts with the same operators
we use to separate the items in our list.
We have to use a more advanced algorithm which takes the context into
account.
Fix #416
2020-10-28 16:03:18 +01:00
ef42abea4b
Add some tests of parseMimetypeCounter
2020-10-28 14:44:23 +01:00
4407dd12bd
Move mimetypeCounter parsing in its own function.
2020-10-28 14:08:06 +01:00
632583ede2
Add missing include
2020-10-07 18:43:57 +02:00
61f9d4ab3a
Stop the internal server only if it exists.
2020-10-07 14:36:45 +02:00
470bfc3f1f
Better variable name for outStream.
2020-08-28 15:27:03 +02:00
ea3180cb8c
Better error printing.
2020-08-28 15:27:03 +02:00
72d3f8f8e2
Fix segmentation fault with curl requests.
...
Use a heap allocated buffer (with lifetime of Aria2 class) instead of
a stack allocated one.
Original fix made by @ZaWertun. Kudos to him.
Fix #kiwix/kiwix-desktop#123, kiwix/kiwix-desktop#513
and kiwix/kiwix-desktop#423
2020-08-26 12:42:16 +02:00
af9e03904c
Use std::mutex and std::unique_lock instead of pthread mutex/lock.
...
It simplify a bit the code and ensure that mutex is correctly unlock
even in case of exception.
2020-08-26 12:30:56 +02:00
39611cbd60
Wait for waitingThread to exit before destroying the subprocess memory.
...
WaitingThread read some shared memory with the SubProcess
(`mutex`, `m_running`).
When we destroy the SubProcess, we must be sure that WaitingThread has
correctly finished else we may have invalid read/write on freed memory.
2020-08-26 12:26:04 +02:00