Veloman Yunkan
7161db8e2a
Manager::reload() also removes books from Library
2021-11-30 18:20:27 +04:00
Veloman Yunkan
262e13845c
Enter Library::removeBooksNotUpdatedSince()
2021-11-30 18:20:27 +04:00
Veloman Yunkan
1d5383435d
Noted a potential bug in Library::addBook()
2021-11-30 18:20:27 +04:00
Veloman Yunkan
ad2eb52553
Thread safe dumping of the OPDS feed
2021-11-30 18:20:27 +04:00
Veloman Yunkan
473d2d2a69
Introduced Library::getBookByIdThreadSafe()
2021-11-30 18:20:27 +04:00
Veloman Yunkan
02b9e32d18
Library became almost thread-safe
...
Library became thread-safe with the exception of `getBookById()`
and `getBookByPath()` methods - thread safety in those accessors is
rendered meaningless by their return type (they return a reference
to a book which can be removed any time later by another thread).
2021-11-30 18:20:27 +04:00
Veloman Yunkan
c2927ce6f7
Library got a yet unused mutex
...
Introducing a mutex in `Library` necessitates manually implementing the
move constructor and assignment operator. It's better to still delegate
that work to the compiler to eliminate any possibility of bugs when new
data members are added to `Library`. The trick is to move the data into
an auxiliary class `LibraryBase` and derive `Library` from it.
2021-11-30 18:20:27 +04:00
Veloman Yunkan
b712c732f2
Dropped Library::getBookBy*() non-const functions
2021-11-30 18:20:27 +04:00
Veloman Yunkan
298247ca9b
Renamed NameMapperProxy -> UpdatableNameMapper
2021-11-30 18:20:27 +04:00
Veloman Yunkan
3aeeeeee76
Manager::reload()
2021-11-30 18:20:27 +04:00
Veloman Yunkan
226dac2604
LibraryManipulator is now merely a notifier
...
Originally `LibraryManipulator` was an abstract class completely decoupled
from `Library`. Its `addBookToLibrary()` and `addBookmarkToLibrary()`
methods could be defined in an arbitrary way. Now `LibraryManipulator` has to be
bound to a library object, those methods are no longer virtual, they always
update the library and allow for some additional actions via virtual
functions `bookWasAddedToLibrary()` and `bookmarkWasAddedToLibrary()`.
2021-11-30 18:20:27 +04:00
Veloman Yunkan
76a5e3a877
Library::addBook() updates the reader cache
2021-11-30 18:20:27 +04:00
Veloman Yunkan
6199c11505
NameMapperProxy respects the withAlias flag
2021-11-30 18:18:16 +04:00
Veloman Yunkan
8fffa59974
Added NameMapperProxy from kiwix/kiwix-desktop#714
...
The right place for NameMapperProxy introduced by kiwix/kiwix-desktop#714 is in
libkiwix (so that it can be reused in kiwix-serve).
2021-11-30 18:18:16 +04:00
Veloman Yunkan
5f3c34ed93
NameMapper's API is now const
2021-11-22 21:06:27 +04:00
Veloman Yunkan
339f845fb0
Bugfix in Book::getHumanReadableIdFromPath()
2021-11-22 20:54:44 +04:00
Veloman Yunkan
571e417d1e
Manager is now safe to copy
2021-11-20 20:38:39 +04:00
Veloman Yunkan
0e48baf9f9
Simplified Library::getReaderById()
...
Reused `Library::getArchiveById()` in `Library::getReaderById()`.
2021-11-19 20:17:12 +04:00
Veloman Yunkan
4a01081e83
Thread-safe Book::Illustration::getData()
2021-11-19 16:44:25 +04:00
Veloman Yunkan
eb6a0d6456
Enter Book::getIllustrations()
2021-11-18 14:39:00 +04:00
Veloman Yunkan
e2544799a1
Shorter Book::update()
2021-11-18 14:39:00 +04:00
Veloman Yunkan
9f42884507
Book's illustrations are now immutable
2021-11-18 14:39:00 +04:00
Veloman Yunkan
8a6adddc16
Non-throwing Book::getDefaultIllustration()
2021-11-18 14:39:00 +04:00
Veloman Yunkan
c8da5eea2b
Dropped Book::getMutableDefaultIllustration()
...
Now a Book is created without a default illustration.
2021-11-18 14:38:00 +04:00
Veloman Yunkan
bd29c4c7ef
Book::updateFromOpds() resets Book::m_illustrations
2021-11-18 14:37:12 +04:00
Veloman Yunkan
e52a4a646b
Book::updateFromXml() resets Book::m_illustrations
2021-11-18 14:36:42 +04:00
Veloman Yunkan
537ba7e6b9
Book::update() reads illustrations from ZIM file
2021-11-18 14:35:49 +04:00
Veloman Yunkan
f4bc3c8ced
Book::Illustration got dimensions
2021-11-18 14:34:51 +04:00
Veloman Yunkan
5263f6880c
Internally Book supports multiple illustrations
2021-11-18 14:34:51 +04:00
Veloman Yunkan
c129952605
Added a couple of notes on data consistency
2021-11-18 14:34:48 +04:00
Veloman Yunkan
9f0db6b7fa
Book::Illustration::getData()
2021-11-18 14:33:50 +04:00
Veloman Yunkan
7d8a83cc97
Encapsulated access to Book::m_illustration
2021-11-18 14:32:52 +04:00
Veloman Yunkan
ec5a423924
Enter Book::Illustration
...
`Book::m_favicon` and its 2 friends are replaced with a single
`Book::m_illustration` data member.
2021-11-18 13:31:08 +04:00
Veloman Yunkan
811b73a4f1
Moved 2 small method definitions to cpp
2021-11-18 13:27:27 +04:00
Manan Jethwani
30e4c549e4
exposed fileExist, getMimeTypeForFile and getFileCoontent functions
2021-10-12 19:44:38 +05:30
Manan Jethwani
b7b385d87b
added custom index template
2021-10-12 19:44:05 +05:30
Matthieu Gautier
cd9fb541fc
Fix method call for new libzim API.
...
`add_archive` is now `addArchive`.
2021-09-29 11:55:22 +02:00
Veloman Yunkan
c0bda426b4
Removed duplication across two mustache templates
...
Deduplicated the mustache templates static/templates/catalog_v2_entries.xml
and static/templates/catalog_v2_complete_entry.xml (the latter was
renamed to static/templates/catalog_v2_entry.xml).
2021-09-09 12:19:22 +04:00
Veloman Yunkan
b3f7556096
Added partial entries feed to the OPDS root feed
2021-09-09 12:19:22 +04:00
Veloman Yunkan
4c657c082e
/catalog/v2/partial_entries OPDS API endpoint
2021-09-09 12:19:22 +04:00
Veloman Yunkan
e15a0f4338
/catalog/v2/entry/<entry_id> OPDS API endpoint
2021-09-09 12:19:22 +04:00
Veloman Yunkan
12d9b69806
OPDSDumper::dumpOPDSCompleteEntry()
2021-09-09 12:19:22 +04:00
Veloman Yunkan
027854e4f4
Extracted getSingleBookData() in opds_dumper.cpp
2021-09-09 12:19:22 +04:00
Maneesh P M
61209ea0d7
Allow kiwix-serve to get suggestions of custom range
...
This will allow handle_suggest API to accept two arguments `start` and
`suggestionLength` that will allow handle_suggest to retrieve
suggestions in the given range rather than the default 0-10 range.
2021-08-19 21:05:39 +05:30
Maneesh P M
8a4080baba
Update libkiwix with new libzim api
2021-08-14 22:26:39 +05:30
Veloman Yunkan
452283cfe6
Handling of /meta?name=Illustration_WxH@1 requests
2021-08-05 22:28:09 +04:00
Veloman Yunkan
e5168d8b3d
Support for multiple illustrations in OPDS entry
2021-08-05 22:21:13 +04:00
Maneesh P M
9addd82d2d
Fix usage of zim::Searcher::getResults() in libkiwix
...
The correct usage does not require the user to calculate an `end` using
the `pageLength`. We can directly use getResults(start, pageLength)
2021-08-04 19:20:50 +05:30
Maneesh P M
19afe9442f
Remove OriginId functions since they are not useful right now
2021-08-03 11:42:58 +02:00
Maneesh P M
a3ba7619df
Update Manager to use Archive instead of Reader
...
kiwix::Manager uses Reader to import a zim file, it should be using
zim::Archive directly.
2021-08-03 11:42:58 +02:00