Matthieu Gautier
c6206edfb4
Do not always download the favicon of a book. Download as needed.
...
When parsing a opds feed, the favicon is a url, not a dataurl.
If we download the favicon all the times, it may take a lot of time to
parse the feed.
We store the url and download the favicon only when needed (when displayed)
2018-10-24 11:56:05 +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
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
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
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
99e313f915
Clean includes of manager.h
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
db9000f706
Make the downloader use the aria2c wrapper instead of the aria2 library.
2018-09-06 18:30:34 +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
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
57a197d38d
Make getCurrentBookId const.
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
f76e9d2dbf
Format all the code using clang-format.
...
Add a script `format_code.sh` to easily format the code.
2017-07-05 15:22:34 +02:00
Matthieu Gautier
8ce1fb0ba8
Switch build system to mesonbuild.
...
There is no more integrated build of dependencies in the build system.
Dependencies are discovered using pkg-config except for ctpp2 where there
is no pkg-config file.
2016-12-22 12:01:20 +01:00