Veloman Yunkan
cfab4c946a
Fixed compilation warnings
2024-02-25 16:15:29 +04:00
Matthieu Gautier
6b05eeb24b
Add a small test on getBestTargetBookId and flavour.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
73b855ce6b
Add a `getBestTargetBookId` directly taking bookName, flavour and date.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
eaca7010bc
Fix definition of `UPGRADE_ONLY` and `ALLOW_DOWNGRADE`.
...
`MigrationMode` was kind of defined in the context of an internal mode
used by `migrateBookmark(...)`.
But now, with `getBestTargetBookId`, it is broken.
This commit fix that and the associated implementation.
Now `UPGRADE_ONLY` will make `getBestTargetBookId` return only newer books.
and `ALLOW_DOWNGRADE` will return older books only if current book is
invalid.
2024-02-15 14:52:57 +01:00
Matthieu Gautier
7a0ab3a429
Update tests to check book's title with double quotes (")
...
On top of modifying the existing test, the commit also make
`MigrateBookmark` test fails as `migrateBookmarks` now migrates
from `wrong-book-id-noname` to `Dummy id`.
Fix will be provided in next commit.
2024-02-15 14:52:57 +01:00
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