Matthieu Gautier
f3a604380c
Do not migrate bookmarks to an older book.
...
At least, it must be explicitly asked by the user.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
167e0dc4b3
Only migrate bookmarks to books with the same flavour.
...
If there is no book with the same flavour, but book with same name and
different flavour, we do the migration to the other book.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
14c9530afa
[Test] Introduce variant books in sample library.
...
We will need them to test flavour/date bookmarks migration.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
8d97686b81
Introduce `migrateBookmarks` to move (invalid) bookmarks to new books.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
b16f6b9561
Allow to filter books by flavour.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
a546effa15
Allow bookmark to be created from a Book and url/title.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
699f96ca0d
Add book's flavour in bookmark.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
5a0644d32b
Also store book's name in bookmark.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
903f476f77
Test bookmarks serializations.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
bf1ab03332
[Test] Add missing flavour in books.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
82cb1133e5
[Test] Add missing name in sample library.xml
2024-02-15 14:52:57 +01:00
Matthieu Gautier
07ff4eab43
Do not index book's name as a phrase.
...
Fix #1004
2023-11-08 10:29:31 +01:00
Matthieu Gautier
139b561253
Make the `Manager` keep a `shared_ptr` instead of a raw Library reference.
...
We want to be sure that `Library` actually exists when we modify it.
While it is not a silver bullet (user can still create a shared_ptr on
a raw pointer), making the `Manager` keep `shared_ptr` on the library
help us a lot here.
2023-09-25 16:30:56 +02:00
Matthieu Gautier
c203e07ee9
Make the library creatable only within a shared_ptr.
2023-09-25 16:28:25 +02:00
Veloman Yunkan
eb002ae306
Deprecated Book::getLanguage()
...
Introduced `Book::getCommaSeparatedLanguages()` instead.
2023-03-08 15:24:53 +01:00
Veloman Yunkan
5bda7fd45c
Support for multilang ZIMs
2023-03-08 15:24:53 +01:00
Veloman Yunkan
ce8b2bf9d9
Library::removeBookById() updates the revision
2022-10-19 19:26:04 +04:00
Veloman Yunkan
cff143b4ec
Included tags in free text catalog search
2022-08-06 07:39:45 +02:00
Veloman Yunkan
ae2d7d20dc
Handling of <dc:issued> in OPDS import
2022-02-23 14:20:49 +01:00
Veloman Yunkan
42ee14c8f5
New unit-test LibraryOpdsImportTest.allInOne
2022-02-21 23:20:35 +04:00
Matthieu Gautier
fb7d9f02c8
Deprecate `Reader` creation.
...
As we `Reader` is now deprecated, we also remove the unit tests on it.
`Reader` is now untested, and so it reduces the code coverage.
2022-01-13 14:23:29 +01:00
Veloman Yunkan
262e13845c
Enter Library::removeBooksNotUpdatedSince()
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
18871b4b15
Helper function Library::getBookPropValueSet()
...
Introduced a helper function `Library::getBookPropValueSet()` and
deduplicated Library::getBooks{Languages,Creators,Publishers}() methods.
2021-08-03 11:32:38 +02:00
Emmanuel Engelhart
c8b7f8772a
Fix Libkiwix Github repository URLS
2021-05-20 08:56:44 +02:00
Veloman Yunkan
41276341d0
Empty query acts as a match-all query
...
After switching to Xapian-based search in the library/catalog, an empty
query stopped acting as a match-all query. This commit restores the old
behaviour in that regard.
2021-05-09 15:14:43 +02:00
Veloman Yunkan
59e9a0cd77
Merged XmlLibraryTest with LibraryTest
...
The library set up by LibraryTest now contains two valid books
initialized via XML. Therefore XmlLibraryTest is not needed as a
separate test suite.
2021-04-27 16:59:21 +04:00
Veloman Yunkan
f751aff2fb
Full case/diacritics insensitivity in catalog filtering
...
Catalog filtering should now be case/diacritics insensitive for all
fields. However it is not validated for language, name and category
fields, and is validated for tags, creator & publisher only for text
supplied in the filter (but not for values read from the book).
2021-04-27 16:59:21 +04:00
Veloman Yunkan
87dc9d2723
Made catalog filtering by query diacritics insensitive
...
Catalog filtering by titles/description was sensitive to diacritics
present in the query string. Fixed that.
Also enhanced the unit test to validate the insensitivity to diacritics
present in either the title/description or the query string.
2021-04-27 16:59:21 +04:00
Veloman Yunkan
3d5fd8f585
Catalog filtering by creator works via Xapian
2021-04-27 16:59:21 +04:00
Veloman Yunkan
e805f68994
Enhanced & broke LibraryTest.filterByPublisher
2021-04-27 16:59:21 +04:00
Veloman Yunkan
a759ab989f
Catalog filtering by publisher works via Xapian
2021-04-27 16:59:21 +04:00
Veloman Yunkan
7ccd9ffcce
Catalog filtering by language works via Xapian
2021-04-27 16:59:21 +04:00
Veloman Yunkan
0c0a37073b
Catalog filtering by category works via Xapian
2021-04-27 16:59:21 +04:00
Veloman Yunkan
415c65cf03
Catalog filtering by book name works via Xapian
2021-04-27 16:59:21 +04:00
Veloman Yunkan
2f3f1a4859
Improved LibraryTest.filterByMultipleCriteria
2021-04-27 16:59:21 +04:00
Veloman Yunkan
b9be742085
LibraryTest.filterByMaxSize
2021-04-27 16:59:21 +04:00
Veloman Yunkan
95c354a5fa
LibraryTest.filterByCategory
2021-04-27 16:59:21 +04:00
Veloman Yunkan
cdd272fc5a
LibraryTest.filterByName
2021-04-27 16:59:21 +04:00
Veloman Yunkan
ef962a9174
LibraryTest.filterByPublisher
2021-04-27 16:59:21 +04:00
Veloman Yunkan
f063d350c6
LibraryTest.{filterLocal,filterRemote}
2021-04-27 16:59:21 +04:00
Veloman Yunkan
d8fe593f59
Extended the unit-test library with 2 XML entries
2021-04-27 16:59:21 +04:00
Veloman Yunkan
22b8625033
Enter EXPECT_FILTER_RESULTS()
...
This diff is easier to view if whitespace change is ignored.
2021-04-27 16:59:21 +04:00
Veloman Yunkan
0f277ffa34
Enhanced the LibraryTest.filterByTags unit-test
2021-04-27 16:59:21 +04:00
Veloman Yunkan
068f7e5e95
New unit-test LibraryTest.filterByCreator
2021-04-27 16:59:21 +04:00
Veloman Yunkan
8c810d2d2f
Enhanced the LibraryTest.filterByQuery unit-test
2021-04-27 16:59:21 +04:00
Veloman Yunkan
8c18a37961
Split LibraryTest.filterCheck into several tests
2021-04-27 16:59:21 +04:00
Veloman Yunkan
db3e0d7f72
Enhanced the LibraryTest.filterCheck unit-test
...
Now the LibraryTest.filterCheck unit-test validates the actual entries
returned by `Library::filter` (previously only the count of the results
was checked).
2021-04-27 16:59:21 +04:00
Veloman Yunkan
49940a30d0
XmlLibraryTest.removeBookByIdUpdatesTheSearchDB
...
The new unit-test fails with a reason not expected before it was
written. The `Library::filter()` operation returns a correct result
after the call to `removeBookById()` (this was a surprise!) but it has
a side-effect of re-adding an empty book with the id still surviving
in the search DB (the emptiness of this re-created book doesn't allow
it to pass the other filtering criteria, which explains why the result
of `Library::filter()` is correct). Had to add a special check
to the new unit-test against that hidden side-effect of
`Library::removeBookById()` + `Library::filter()` combination.
2021-04-09 17:06:45 +04:00
Veloman Yunkan
ccdc316217
Two unit-tests for Library::removeBookById
...
The `XmlLibraryTest.removeBookByIdDropsTheReader` unit-test fails,
demonstrating a bug in `kiwix::Library::removeBookById()`.
2021-04-09 16:59:55 +04:00