Matthieu Gautier
135028c16a
Introduce better API to manipulate entries in a zim file.
...
The previous API suffer different problems:
- It was difficult to handle articles redirecting to other article.
- It was not possible to get few information (title) without getting
the whole content.
The new API introduce the new class `Entry` that act as a proxy to an
article in the zim file.
Methods of `Reader` now return an `Entry` and the user has to call
`Entry`'s methods to get useful information.
No redirection is made explicitly.
If an entry is not found, an exception is raised instead of returning
an invalid `Entry`.
The common pattern to get the content of an entry become :
```
std::string content;
try {
auto entry = reader.getEntryFromPath(path);
entry = entry.getFinalEntry();
content = entry.getContent();
} catch (NoEntry& e) {
...
}
```
Older methods are keep (with the same behavior) but are marked as
deprecated.
2018-04-19 18:04:07 +02:00
Matthieu Gautier
1f3fcd85a0
Allow us to declare method to be deprecated.
2018-04-19 18:04:07 +02:00
Matthieu Gautier
6e13d44459
Merge pull request #129 from kiwix/opds
...
Opds
2018-04-19 18:02:59 +02:00
Matthieu Gautier
47ce044e3e
Add method to `Manager` to populate the library from a opds stream.
...
The library's books are created in the metadata in the opds.
As the opds stream is by definition a distant "library", there is no
zim to read to complete missing information.
This can lead to incomplete `library.xml`.
2018-04-19 17:53:08 +02:00
Matthieu Gautier
1f091da3f4
Add a downloader tools to download files.
...
The downloader is using libaria2.
For now, only one download can be run a the time.
A download will start only if (and as soon as) no download is running.
2018-04-19 17:53:08 +02:00
Matthieu Gautier
d4fefd1a57
Add a function to create a temporary directory.
2018-04-19 17:53:05 +02:00
Matthieu Gautier
9f86b59d1d
Add a function to get the content of a file.
2018-04-19 17:53:02 +02:00
Matthieu Gautier
2164faba44
Add a potential search description link in the opds stream.
2018-04-19 17:08:01 +02:00
Matthieu Gautier
b48428e443
Be able to create a OPDSDumper without library and associate it later.
2018-04-19 17:08:01 +02:00
Matthieu Gautier
ad92af928b
Be able to filter a library.
...
This generate a new library only with the corresponding books.
2018-04-19 17:08:01 +02:00
Matthieu Gautier
ee51c470b4
Allow the manager to dump the opds feed of the whole library.
2018-04-19 17:08:01 +02:00
Matthieu Gautier
5398d69231
Merge pull request #134 from kiwix/macos
...
Build kiwix-lib on macos.
2018-04-19 15:37:22 +02:00
Matthieu Gautier
c0bc2ed111
Build kiwix-lib on macos.
...
Also try to speed up a bit the build by :
- installing packages using the travis apt plugin and do not use sudo
- Use prebuild ninja binary.
2018-04-19 15:29:48 +02:00
Matthieu Gautier
10893ae19f
Merge pull request #125 from kiwix/no_warning
...
Try to compile kiwix-lib without warning.
2018-04-18 17:05:50 +02:00
Matthieu Gautier
ec097ab267
Try to compile kiwix-lib without warning.
2018-04-18 16:57:27 +02:00
Matthieu Gautier
32ad40a5b0
Merge pull request #133 from kiwix/rpath
...
Set the RPATH of kiwix-lib.
2018-04-17 17:09:43 +02:00
Matthieu Gautier
d686de7ec3
Set the RPATH of kiwix-lib.
...
As we cannot change (DY)LD_LIBRARY_PATH on macos, we have to use rpath.
2018-04-17 16:27:31 +02:00
Matthieu Gautier
8d6f1196de
Merge pull request #132 from kiwix/ctpp2_lib_dir
...
Find ctpp2 lib in the normal lib dir and fallback to 'lib'.
2018-04-17 15:35:58 +02:00
Matthieu Gautier
a216ad5a6f
Find ctpp2 lib in the normal lib dir and fallback to 'lib'.
...
ctpp2 libs should be in the "normal" lib dir, so search in it.
The 'lib' dir should only be used as a fallback.
2018-04-17 14:37:19 +02:00
Matthieu Gautier
3849f0ae8b
Merge pull request #128 from kiwix/fix_version
...
New version 1.1.1
2018-03-29 17:49:10 +02:00
Matthieu Gautier
f2413f6680
New version 1.1.1
2018-03-27 17:22:38 +02:00
Matthieu Gautier
8ae388562e
Merge pull request #127 from kiwix/new_version
...
New version 1.1.0.
2018-03-27 12:01:40 +02:00
Matthieu Gautier
a55824acc7
New version 1.1.0.
2018-03-27 11:05:02 +02:00
Matthieu Gautier
58395d266c
Merge pull request #126 from kiwix/infinite_loop
...
Correctly pre-increment loopCounter.
2018-03-26 10:03:56 +02:00
Matthieu Gautier
313f6731b0
Correctly pre-increment loopCounter.
...
If we check the later the `loopCounter` with 42, we must pre-increment the
content. Else, in case of infinite loop, the `loopCounter` will be 43.
Related to kiwix/kiwix-tools#168
2018-03-25 17:21:40 +02:00
Matthieu Gautier
e23949a9fa
Merge pull request #121 from kiwix/check_internal_search
...
Check `internal->_search` before using it.
2018-03-12 18:53:56 +01:00
Matthieu Gautier
ee6831d665
Check `internal->_search` before using it.
...
If a search has been set and a user try to get the nextResult or
restart the search, `internal->_search` will be NULL.
2018-03-12 17:45:18 +01:00
Matthieu Gautier
14653c6958
Merge pull request #120 from kiwix/doc
...
Doc
2018-03-12 17:43:47 +01:00
Matthieu Gautier
f8a2e4c503
Only add a reader to the searcher if the reader as fulltext index.
...
`libzim` will not search in zim file without embedded fulltext index.
If we don't want to mess up with result index, we must not store "wrong"
reader.
Fix #111
2018-03-12 17:34:45 +01:00
Matthieu Gautier
57a197d38d
Make getCurrentBookId const.
2018-03-12 17:34:45 +01:00
Matthieu Gautier
cc38d0e5e4
Make searcher's method reset private.
2018-03-12 17:34:45 +01:00
Matthieu Gautier
b6ba10af2a
Remove unnecessary currentArticleOffset.
...
This protected member is never used.
2018-03-12 17:34:45 +01:00
Matthieu Gautier
f93f50087b
Remove unnecessary setBookIndex.
...
We can use default argument instead of creating a new method.
2018-03-12 17:34:45 +01:00
Matthieu Gautier
63339793d2
Add some documentation to kiwix-lib API
...
Fix #116
2018-03-12 17:34:45 +01:00
Kelson
5ee5929714
Merge pull request #119 from RohanBh/fix-meson-installation
...
Fix meson installation error by using pip3
2018-03-10 09:13:35 +01:00
RohanBh
683b5249a2
Fix meson installation error by using pip3
2018-03-10 03:10:09 +05:30
Matthieu Gautier
698578ee73
Merge pull request #113 from kiwix/JNI_Reader_exception
...
Make JNIKiwixReader throw an exception if something goes wrong at creation.
2018-02-01 18:03:05 +01:00
Matthieu Gautier
6adf95c329
Make JNIKiwixReader throw an exception if something goes wrong at creation.
...
If the `nativeHandle` is null, the JNIKiwixReader is invalid and we must
not use it.
Throwing an exception for the caller code to handle this properly.
And previously, user code has no way to detect something went wrong :/
2018-02-01 17:18:54 +01:00
Matthieu Gautier
9fc840b377
Merge pull request #104 from kiwix/mhutti1/search-snippet
...
Allow JNI to access search snippets
2017-12-18 14:27:57 +01:00
mhutti1
97bcf57d53
Allow JNI to access search snippets
2017-12-15 16:02:49 +00:00
Kelson
3c614ae47f
Merge pull request #103 from kiwix/mhutti1/videofix
...
Fix JNI to work with kiwix-android
2017-12-14 20:07:02 +01:00
mhutti1
f303c7502d
Fix JNI to work with kiwix-android
2017-12-14 17:32:03 +00:00
Matthieu Gautier
0c8c19a6fb
Merge pull request #102 from kiwix/direct_access
...
Direct access
2017-12-13 16:31:51 +00:00
Matthieu Gautier
16bd34e6a6
Add a method in the JNI API to get direct access information.
...
For binary content (not compressed), it could be interesting to
directly read the content in the zim file instead of using `kiwix-lib`.
This method returns the needed information to do so (if possible).
2017-12-13 17:22:26 +01:00
Matthieu Gautier
5a953f191b
Remove a small warning.
2017-12-13 17:11:10 +01:00
Matthieu Gautier
c947cceac8
Merge pull request #101 from kiwix/compilation-fixes
...
Force usage of meson 0.43.0.
2017-12-13 16:10:22 +00:00
Matthieu Gautier
35859a3689
Force usage of meson 0.43.0.
...
Static compilation is broken with meson 0.44.0
2017-12-13 16:48:12 +01:00
Matthieu Gautier
9b3da52f00
Merge pull request #100 from kiwix/gcc5
...
Compile using gcc-5 on native ubuntu.
2017-12-04 11:17:41 +00:00
Matthieu Gautier
dee482b2dc
Compile using gcc-5 on native ubuntu.
...
As dependencies prepared by kiwix-build are build using gcc-5
(kiwix/kiwix-build@7fc557d ),
we need to also compile libzim using gcc-5.
2017-12-04 11:06:44 +00:00
Matthieu Gautier
281b136ea8
Merge pull request #99 from kiwix/better_search_result_html
...
Better search result html
2017-11-27 12:46:17 +00:00