Matthieu Gautier
c20ae18bff
An opds feed can also be the openSearch result.
...
We must be able to set the correct entry in the feed for a searchResult.
2018-10-24 11:51:38 +02:00
Matthieu Gautier
b1508c0b98
Better listBooksIds supported mode.
...
Only have REMOTE or LOCAL is a bit restrictive. By using flags a user
can specify for complex request.
2018-10-24 11:50:11 +02:00
Matthieu Gautier
2d59e12a4d
Merge pull request #170 from kiwix/content_manager
...
Content manager
2018-10-24 11:18:14 +02:00
Matthieu Gautier
1b44eb33f3
[TRAVIS] Last osx version of travis already have python3 installed.
2018-10-24 11:07:10 +02:00
Matthieu Gautier
34021994cd
Fix for Android
...
- No std::to_string. We have to implement it with a ostringstream
- No pthread_cancel. So we use pthread_kill to send a signal to the thread.
2018-10-24 10:48:53 +02:00
Matthieu Gautier
910ce5f10d
Fix for Windows
...
- "winsock2.h" needs to be included before "windows.h". But if a
compilation unit include "windows.h" and after "networkTools.h", we
fails and it is complicated to handle. The include must not be in the
header but in the cpp
- windows define some ERROR macro. It is a pitty but we cannot use `ERROR`
in our enum.
- If build statically using mingw we need to define `CURL_STATICLIB`
2018-10-24 10:47:12 +02:00
Matthieu Gautier
c66c7e9c20
Store the size of the book in OPDSFeed.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
ad69fdd8c0
Move the download method from the downloader to networkTools.
...
The download method is a simple method to download content.
It use curl to download the content instead of aria.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
a73ef23f6e
Keep the book size in byte in memory (instead of in kb)
...
We keep the size in kb in library.xml for compatibility.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
fe6d5fa93e
Store the downloadId in the book (and in the library).
2018-10-24 10:47:12 +02:00
Matthieu Gautier
43ff8565d1
Add a Download class to encapsulate a aria2 download.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
f718c4c472
Add a LibraryManipulator.
...
Library client (kiwix-desktop) need to know when a book is added to
library by the manager. By using a LibraryManipulator, we can do
dependency injection.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
8176a6eded
Be more resilient to potential aria2 error.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
bb1f777078
Store the aria2 session and recover from it.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
829c34dd69
Store in the book instance if the given path is valid.
...
The path may exist and not be valid if the zim file is not truncated
(ie, interrupted download)
2018-10-24 10:47:12 +02:00
Matthieu Gautier
9c0f9696ed
Better beautifyInteger and beautifyFileSize.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
be6dc01b4f
Add few helper methods to xmlrpc objects.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
18fc5cb4df
Correctly set the aria2 secret rpc.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
996829e4d7
Allow a OPDSDumper to dump only a subset of the library.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
5128861136
Remove default value for book pointer of `readBookFromPath`.
...
This is a nonsense to accept NULL pointer here.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
7804bf2276
Reimplement listBooksIds.
...
No real improvement.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
99e313f915
Clean includes of manager.h
2018-10-24 10:47:12 +02:00
Matthieu Gautier
839320d5e7
Move the `Book` class in its own source file.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
1e8f85eaff
Rename methods `title()` into `getTitle()`.
...
Same for all attributes.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
e0704b3b21
Move the initialization code of a book from xml|opds into Book.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
57fbb98bca
Do not store the favicon base64 encoded in the book.
...
The fact that the favicon is base64 encoded in a storage detail.
2018-10-24 10:47:12 +02:00
Matthieu Gautier
c7f9218350
base64_encode takes a string instead of a char*
2018-10-24 10:47:12 +02:00
Matthieu Gautier
66a9a69480
Move the code updating a book from a reader in the Book class.
2018-09-06 18:30:37 +02:00
Matthieu Gautier
04b05dd68b
Remove `removeBookById` from the Manager.
...
Use the same method of the `Library`.
2018-09-06 18:30:37 +02:00
Matthieu Gautier
aa6772b345
Remove the "last" book functionnality.
...
- This is not used by any application.
- This is application specific and should not be stored in the library
(who is a list of book).
2018-09-06 18:30:37 +02:00
Matthieu Gautier
efae3e0d2f
Do not make the `Manager` responsible to create the `Library`.
...
The `Manager` manage a library already existing.
This avoid the Library clone stuff.
2018-09-06 18:30:37 +02:00
Matthieu Gautier
bba3c252e4
Make the member of the book protected.
...
It is up to the book to manage its attribute.
Also remove the `absolutePath` (and `indexAbsolutePath`). The `Book::path` is always stored
absolute.
The fact that the path can be stored absolute or relative in the
`library.xml` is not relevant for the book.
2018-09-06 18:30:37 +02:00
Matthieu Gautier
57ac6f0305
Use a map to store the Library's books.
...
Having the books sorted is useless.
We handle books by id not by index.
2018-09-06 18:30:37 +02:00
Matthieu Gautier
541fb0cfd1
Remove the "current" book functionnality.
...
- This is not used by any application.
- This is application specific and should not be stored in the library
(who is a list of book).
2018-09-06 18:30:37 +02:00
Matthieu Gautier
c9eac04050
Make the Library`s book vector private.
...
Move a lot of methods from Manager to Library. Because books is private
and thoses methods are better in Library.
2018-09-06 18:30:37 +02:00
Matthieu Gautier
741c67786a
Add `update` method to `Book`.
2018-09-06 18:30:37 +02:00
Matthieu Gautier
db9000f706
Make the downloader use the aria2c wrapper instead of the aria2 library.
2018-09-06 18:30:34 +02:00
Matthieu Gautier
0a93cb0872
Add aria2 downloader using subprocess aria2c.
2018-09-06 18:29:49 +02:00
Matthieu Gautier
f4846c1ac8
Add a tool's function to get the data directory.
...
The data directory is where kiwix application should store data.
2018-08-29 15:28:52 +02:00
Matthieu Gautier
9b516ac35d
Add a small wrapper around pugixml do handle xmprpc.
2018-08-29 15:28:52 +02:00
Matthieu Gautier
79b780b75b
Move the function to convert from xml_node to string in otherTools.
...
This can be usefull elsewhere than in opds_dumper
2018-08-29 15:28:52 +02:00
Matthieu Gautier
f3dd83907d
Add backend to launch subprocess.
...
The windows backend is not tested.
2018-08-29 15:28:52 +02:00
Matthieu Gautier
c351e7ccf1
Merge pull request #168 from kiwix/java_jdk8+
...
Update jni build script to java jdk 8+.
2018-08-20 17:53:39 +02:00
Matthieu Gautier
7c634738dd
Update jni build script to java jdk 8+.
...
With jdk8, `javac` has an option `-h` to generate the header files of
native classes.
So there is no need to run `javah` several times.
As there is now only one command to run (`javac`), there is no need for
the wrapper script `gen_kiwix.sh`.
Fix #167
2018-08-20 12:17:29 +02:00
Matthieu Gautier
4378c52c27
Merge pull request #165 from kiwix/new_version
...
New version 2.0.2
2018-08-03 21:39:11 +02:00
Matthieu Gautier
790fa99143
New version 2.0.2
2018-08-03 19:37:21 +02:00
Matthieu Gautier
db6717e199
Merge pull request #164 from kiwix/windows
...
Windows
2018-08-03 19:31:31 +02:00
Matthieu Gautier
bf2188af14
[Windows] Add extra link arguments to build test on windows.
2018-08-03 19:22:39 +02:00
Matthieu Gautier
fd9b6569af
Include unistd.h only on unix platform.
2018-08-03 19:22:39 +02:00
Matthieu Gautier
3cf58b5f5b
Make libaria2 an optional dependency.
...
We don't compile libaria2 on Windows.
2018-08-03 19:22:39 +02:00