Veloman Yunkan
d8c525289b
Changed the signature of Response::build_404()
...
Now Response::build_404() takes the URL instead of the entire
RequestContext object. An empty url suppresses the
The requested URL "url" was not found on this server.
part of the error text.
2021-12-22 17:12:34 +01:00
Veloman Yunkan
f7b853373c
Less confusing 404 errors from /random endpoint
...
Before this fix the /random endpoint could return a 404 Not Found page
saying
The requested URL "/random" was not found on this server.
Error cases producing such a result were:
- `/random?content=NON-EXISTING-BOOK` (can happen when a server is
restarted or the library is reloaded and the current book is no longer
available).
- Failure of the libkiwix routine for picking a random article.
Now a proper message is shown for each of those cases.
2021-12-22 17:12:34 +01:00
Kelson
d21879ebda
Merge pull request #662 from kiwix/legoktm-patch-1
...
PPA: Add Ubuntu Jammy
2021-12-20 07:57:34 +01:00
Kunal Mehta
35dc59d4bb
PPA: Add Ubuntu Jammy
2021-12-19 16:45:16 -08:00
Kelson
a89924a23f
Merge pull request #661 from kiwix/javascript_quotting_fix
...
Fix javascript/DOM quotting bug
2021-12-19 11:33:43 +01:00
Emmanuel Engelhart
7f6a6055a9
Fix javascript/DOM quotting bug
2021-12-19 11:27:45 +01:00
Matthieu Gautier
90910c5cab
Merge pull request #648 from kiwix/unique_readers_in_searcher
2021-12-16 17:17:46 +01:00
Veloman Yunkan
250f46c7f9
fixup! Searcher::add_reader() rejects duplicate readers
2021-12-16 16:51:03 +01:00
Veloman Yunkan
0be00b791f
Searcher::add_reader() rejects duplicate readers
...
A O(N) linear search was added to `Searcher::add_reader()` deliberately.
This doesn't seem to be an operation that may lead to performance
problems.
2021-12-16 16:51:03 +01:00
Matthieu Gautier
ff050dc811
Merge pull request #659 from kiwix/better-kiwix-version
2021-12-14 10:49:52 +01:00
Emmanuel Engelhart
9f3459f3f3
Better libkiwix version variable name
2021-12-13 18:22:40 +01:00
Kelson
7ea12697f4
Merge pull request #649 from kiwix/improve-kiwix-serve-topbar-accessibility
...
Improve kiwix-serve topbar accessibility
2021-12-11 17:27:43 +01:00
Emmanuel Engelhart
ab53e0cff1
Improve kiwix-serve topbar accessibility
2021-12-11 14:56:51 +01:00
Matthieu Gautier
27414f7731
Merge pull request #642 from kiwix/deadlock_in_Library_writeBookmarksToFile
2021-12-06 11:37:02 +01:00
Veloman Yunkan
e1db9164c8
Fixed deadlock in Library::writeBookmarksToFile()
2021-12-05 20:31:21 +04:00
Kelson
fa8d0f8e07
Merge pull request #640 from kiwix/docs
...
Add basic documentation for libkiwix.
2021-12-03 16:48:14 +01:00
Matthieu Gautier
3589a51fff
Add basic documentation for libkiwix.
...
It follows the same logic of libzim documentation.
2021-12-01 16:06:36 +01:00
Matthieu Gautier
01ac0b2fe1
Merge pull request #636 from kiwix/library_reloading
2021-11-30 18:08:46 +01:00
Veloman Yunkan
405ea29900
Added Library::addOrUpdateBook() alias
2021-11-30 18:20:27 +04:00
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
2d6a7fe88d
Testing of NameMapperProxy
2021-11-30 18:20:23 +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
4ccbdcb740
Code deduplication in NameMapperTest
2021-11-30 18:17:43 +04:00
Veloman Yunkan
5f3c34ed93
NameMapper's API is now const
2021-11-22 21:06:27 +04:00
Veloman Yunkan
d62c4fd521
Testing of HumanReadableNameMapper
2021-11-22 20:54:44 +04:00
Veloman Yunkan
339f845fb0
Bugfix in Book::getHumanReadableIdFromPath()
2021-11-22 20:54:44 +04:00
Veloman Yunkan
3296a020a1
Testing of Book::getHumanReadableIdFromPath()
...
New unit test BookTest.getHumanReadableIdFromPath revealed a bug 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
913a368a12
Made Manager's ctors explicit
2021-11-20 20:34:13 +04:00
Veloman Yunkan
0e48baf9f9
Simplified Library::getReaderById()
...
Reused `Library::getArchiveById()` in `Library::getReaderById()`.
2021-11-19 20:17:12 +04:00
Matthieu Gautier
c7b88398bd
Merge pull request #630 from kiwix/multi_illustration_books
2021-11-19 14:08:21 +01: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