Qnap [ Kavita.NET ] a fast, feature rich, cross platform reading server.

QoolBox

Représentant QNAP
2 Janvier 2014
10 559
163
153
49
France
www.qnap.com
qpkg_icon_80.gif

Source : https://github.com/Kareadita/Kavita

Download


Apache 81 : https://www.myqnap.org/product/kavita81/
Apache 82 : https://www.myqnap.org/product/kavita82/
Apache 83 : https://www.myqnap.org/product/kavita83/


Kavita is a fast, feature rich, cross platform reading server.
Built with a focus for manga and the goal of being a full solution for all your reading needs.
Setup your own server and share your reading collection with your friends and family.

Serve up Manga/Webtoons/Comics (cbr, cbz, zip/rar, 7zip, raw images) and Books (epub, mobi, azw, djvu, pdf)
First class responsive readers that work great on any device (phone, tablet, desktop)
Dark and Light themes
Provide hooks into metadata providers to fetch metadata for Comics, Manga, and Books
Metadata should allow for collections, want to read integration from 3rd party services, genres.
Ability to manage users, access, and ratings
Ability to sync ratings and reviews to external services
Fully Accessible with active accessibility audits
Dedicated webtoon reader (in beta testing)
And so much more...

seriesdetail.PNG
 
Dernière édition:
  • J'aime
Réactions: NasGeek
Hello, I am the developer of Kavita. Would you mind updating the version of Kavita you are hosting? The version is so out of date. So many new features and fixes have been added. We are now on v0.4.9. v0.5.0 is coming up quickly offering full metadata support.

If you no longer want to maintain the image, please reach out and my team can take over ownership and maintenance of the image.

Thanks,
majora2007
 
Dernière édition:
Bonjour Stéphane, j'espère que tout va bien et que tu auras un peu de temps pour partager la nouvelle version de Kavita.
Je vois que le dev lead a eu la même requête que moi... dans mon cas c'est pour l'utiliser !

Merci par avance et bon courage

PS : j'espère d'ailleurs que la nouvelle version que Kavita a livrée 0.5.1 utilisera moins de ressources (memoire en particulier) que la version que tu as partagée 0.4.2
 
Bonjour,
N'ayant plus vu de MaJ de longue date de la part de Qoolbox (qui, je l'espère va bien), je suis passé sur la version docker qui fonctionne parfaitement. Une version latest et nightly existe.
 
updated to 0.5.3
added Apache81 version
fixed wrong path settings modification

v0.5.3 - Book Reader Enhancements, Related Series, and More!


v0.5.3 is here and packed full of a collection of random features I wanted to build out for Kavita. I usually plan out the next few releases and stick to that schedule, adding in features that I want or users suggest randomly, but this time I wanted to sit down and take a release for myself to work on whatever I felt like, rather than what I had planned and it turned out to be really fun and some great additions came from it.
Let's start with what the discord community is abuzz about and that's the fated book reader refresh. Started last release but pushed due to complexity was a big refresh to the UX around the book reader and bringing one of our most up-voted feature request, calibre-like reading. Not only did we bring this reading mode to Kavita's reader, we also brought along new color themes for the reader for our OLED users, a font for Dyslexic users, and immersive mode, which hides the menuing system and lets you focus just on your book (goes great with column layout). It's been great iterating on the book reader since it was first built. I can't wait to see how it evolves and is polished further in later releases.
Next is my personal favorite and another coming from feature request, Series relations. Isn't it really annoying reading a series and not knowing what the next series is or what spin-offs exist? Well, now you can configure this into Kavita. From any series you can configure relationship links to other series, like sequels, prequels, spin off, side story, alternative version, etc. There are many links to choose from. You can see a little teaser of it below. Jump on our wiki to learn more about the feature.
image
Another killer addition is a big update to our search. You spoke and I heard you, you can now search for individual titles (book or manga/comics) and for individual files in addition to series, genres, people, tags, reading lists, libraries, collections, etc. This was tricky to implement and still retain the non-functional requirement of everything responding under 300ms. There should be no issues with you finding things in your server.
Wrapping it up is a few small but powerful ones. Likely you've seen it a few times in your logs, but the old constraint issue. I finally was able to track it down and squash it for good. It ended up being an index in the database that wasn't actually being used. Another one is the extra white space on the right side of the card grid system. Robbie was able to drive a beautiful solution and it works just as I envisioned. Lastly, On Deck was tweaked yet again to try to achieve a good balance of how I want it vs how I can actually code it and we have found a good compromise that works.
As usual, the release is packed with many things, so read through the changelog. To close off, I want to say thank you for all the support and suggestions to help shape Kavita. I have a lot of ideas that I want to see realized and really appreciate the inputs that have helped us build out Kavita.
Note: Kavita releases will slow down for a while as I have taken a new job. I am still committed to bringing my vision of Kavita to life, so don't worry about this project dying. I use Kavita daily.

Added​

  • Added: Users can now start reading from any chapter within a Reading List
  • Added: Reading lists now have Cover images like Collection tags (https://feats.kavitareader.com/posts/89/adding-cover-images-to-reading-lists)
  • Added: Added ability to filter series on a collection page
  • Added: Library detail, all series, and collection page filtering will now persist in the url. This allows you to make a filter, click a series and hit back in browser to load the screen as it was, on the same page with the same filter as previously.
  • Added: Card's progress bars will now automatically reflect a users' reading status in real time as a user is reading in real time without refreshing
  • Added: Added a new Sort by field on filtering, Last Chapter Added, to help users sort in a way that mimics On Deck
  • Added: Edit Series modal information tab will now show Last Chapter Added and Last Read Progress
  • Added: Added a link to the wiki for stat collection to help users understand exactly what we collect on the setting field
  • Added: GIF image types are now supported
  • Added: Bookmarks are now moved out of user settings and are their own page on side nav.
  • Added: Bookmarks can now be read by clicking on the series they are from, which will open the manga reader for that set of bookmarks.
  • Added: Users can now link series together via Edit Series modal. Linked series will show on Series detail page under the Related tab.
  • Added: Kavita will now read and group based on the LocalizedSeries tag within ComicInfo. This is not an official tag, but an issue is raised on Anansi Project. This tag maps to Series LocalizedName field.
  • Added: Library Detail now has 2 tabs: Library and Recommendation. Library is your library and recommendation is detailed below.
  • Added: Library Detail Recommendation tab now has actual recommendations. A first pass, we now show (for the current library only): On Deck, Quick Reads (series that are not read, not ongoing, and are under 4k pages), Highly Rated (series rated by any user on the server with more than 4 stars, sorted by average star count), Rediscover (series that you're already read), and lastly More In (more in a given genre).
  • Added: Users can now search directly for files within Kavita. Clicking on the file will open the respective series.
  • Added: Users can now search against Chapters with TitleName set. TitleName is extracted from the Title field in ComicInfo or the book name from Epubs (i.e. if you search 'Stone' and have a series of Harry Potter, 'Harry Potter and the Sorcerer's Stone' will show up as it's the 2nd book in the series)
  • Added: Added total pages to series info modal
  • Added: When a file doesn't exist on disk but still in Kavita and the user tries to read it, throw an error and show it on the UI rather than just spin forever.
  • Added: New book reader drawer design. Drawer has been redesigned to break up settings and table of content to reduce the amount of scrolling and to provide a cleaner UX.
  • Added: Column layout (1 or 2 column) is now available in the book reader. This is a no-scroll solution which works best on e-ink readers.
  • Added: New coloring themes for the book reader. Users can now choose between Dark (existing), Light (existing), or Black (new, all black)
  • Added: Blacklist .qpkg folders and don't scan Recently-Snapshot or recycle folders.
  • Added: New OpenDyslexic font for the book reader
  • Added: You can now hide the action bar (top/bottom bar) in the book reader by using Interactive Mode. Interactive mode will automatically turn on tap to paginate and gives you a distraction free way to read. In order to show the drawer and top bar, you can tap in the document on a non-interactive element.
  • Added: Added --bulk-selection-highlight-text-color and --bulk-selection-text-color for bulk selection bar.
  • Added: Added --search-result-text-lite-color for search results accent (where library is shown)

Changed​

  • Changed: Aligned the edit collection tag modal to align with new tab design
  • Changed: Small change in webtoon reader to try to avoid using max width on PC's
  • Changed: (Performance) Removed some nested loops and avoided some list generation in scan loop
  • Changed: When opening a pre-filtered page, the filter section won't automatically open. Instead, the filter icon will be green showing that a filter is in effect.
  • Changed: Made some style changes in the manga reader to better center images in the reader on different reading modes
  • Changed: When a special has a Title set in the metadata, on series detail page show that on the card rather than filename
  • Changed: Increased Recently Updated to give back 30 series worth of additions while still hitting our Non-Functional performance requirements
  • Changed: From dashboard, clicking any activity stream (carousel)'s title, will go to all series page with a custom filter to emulate the underlying stream.
  • Changed: Tweaked the styles on image cover chooser
  • Changed: Typeahead filters are now disabled when they can't be changed. For example, library page, you can't remove the library from the typeahead.
  • Changed: Event widget can now scroll vertically if there are messages that go past the viewport height.
  • Changed: When opening the side nav on mobile with metadata filter already open, collapse the filter.
  • Changed: When on mobile viewports, when clicking an item from side nav, collapse it afterwards
  • Changed: Updated vers-one/EpubReader library which will now allow for reading epubs with bad table of contents (missing items), something that a lot of users complained about.
  • Changed: When an epub doesn't have a dc:date set with publication event type, default to the dc:date tag for publication date.
  • Changed: Updated ComicInfo MA15+ to MA 15+ per Anansi Project (wrong info was documented originally)
  • Changed: Enhanced cover image selection such that back_cover and back-cover will no longer be selected
  • Changed: Large Scale modularization to cleanup our lazy loaded modules and implement prefetching lazy loaded modules. The app should load even faster now.
  • Changed: Home page (dashboard) is now called libraries/ instead of library/
  • Changed: Removed cleaning some edition tags from Series name, like Full Color Edition or Full Contact Edition.
  • Changed: Adjusted some styling in the search results screen
  • Changed: Search results are now limited to 15 in each category that is searched against.
  • Changed: Wrote some extra messaging in the invite user flow to help users understand they can use fake emails or use the link generated after to setup an account for the user
  • Changed: Updated the wording for 'Read in Incognito' as in was redundant
  • Changed: Misc UX polishing throughout the app
  • Changed: Moved tags to be closer to genre rather than between different people roles on series detail
  • Changed: Optimized the query for On Deck to significantly reduce memory and time
  • Changed: Adjusted the mime type for downloads to use application/x-cbz, etc for cbX type of files, rather than the archive mime type. This should help some OPDS readers, like Marvin3, handle downloads more correctly
  • Changed: Added wiki documentation into invite user flow and register admin user to help users understand email isn't required and they can host their own service.
  • Changed: Removed a - 1 hack in progress bars on cards as there used to be an off by one progress bug in Kavita many versions back.
  • Changed: On deck now functions differently. The sorting will be based on reading progress then by last chapter added. Only series with reading progress in the past month are considered or series with some reading progress and last chapter added within the last week.
  • Changed: All drawers have swapped out with a new design and functionality, including ability to click outside the drawer to collapse it.
  • Changed: User preferences now uses normal range sliders instead of custom sliders
  • Changed: Updated to .NET 6.0.4
  • Changed: Book reader action bar (top/bottom bar) is now fixed height. The title will overflow and can be hovered or pressed on mobile to view the full title of the book you're reading
  • Changed: Icon button names (settings, close, next/previous) are now removed in the book reader
  • Changed: Continuous reading buttons (next/prev chapter) will now disable preemptively if there is no next or prev chapter in book reader
  • Changed: The next page button will now show as the primary color to indicate to the user what the next forward page is in book reader
  • Changed: Swapped out our grid implementation to allow us to have less whitespace on the right side of the page when laying out cards (Thanks @therobbiedavis for driving this)
  • Changed: Docker health scan interval has been dropped from 300s to 30s.

Removed​

  • Removed: Removed Light and E-ink themes form Kavita. Less than 1% of users were using light or e-ink themes and the maintenance was high. These themes are offered on our wiki to be used as a custom theme.

Fixed​

  • Fixed: Finally fixed On Deck so that chapters show correctly when they are added on series that are fully read. This required a migration so it will only work on new series going forward.
  • Fixed: Fixed a bug where sometimes series level metadata would pull from the wrong chapter when the first chapter starts with a float.
  • Fixed: Fixed a bug where locked people fields on a series would be reset during a scan
  • Fixed: Fixed a type on sending when collection tag cover images are updated, thus user's not seeing updates without refreshing
  • Fixed: Fixed a bug where custom series, collection tag, and reading list covers weren't being removed on cleanup
  • Fixed: Fixed a bug where when paging in manga reader, the scroll to top wasn't working due to changing where scrolling is done
  • Fixed: Fixed a bug where clearing a typeahead externally wouldn't clear the x button
  • Fixed: Fixed a bug in typeahead when a partial filter is in place then using keyboard to select options, the wrong option would be picked.
  • Fixed: Fixed a bug in a re-usable pagination component which could trigger multiple page loads due to how pagination model updates occurred
  • Fixed: Fixed a rare bug where an image could be cut off in some scaling modes in the manga reader.
  • Fixed: Fixed a bug on getting publication status within a certain library which would fail due to how the query was written.
  • Fixed: Fixed an issue where series with similar names would sometimes throw a constraint issue due to a custom DB index.
  • Fixed: Fixed a bad parsing case for Series Name - Ch. 23.5 - Volume Extras
  • Fixed: Fixed a bug stemming from the old db where duplicate issues could be added.
  • Fixed: Fixed scroll to top not rendering or working due to the moving of scroll to body instead of window.
  • Fixed: Fixed an issue in updating tags that could lead to a unique constraint
  • Fixed: Fixed an issue with webtoon reader on initial load being completely black and broken
  • Fixed: Fixed a bug where search bar when focused would expand just a bit too much
  • Fixed: Fixed typing lag when interacting with a typeahead
  • Fixed: Fixed some orientation and resize event handlers that weren't firing
  • Fixed: Fixed a bug where filter drawer apply button was sometimes not reachable
  • Fixed: Fixed a bad looking close button on the book reader
  • Fixed: Fixed a bug where volumes that were a range would fail to generate series detail api response.
  • Fixed: Fixed a bug where bulk selection in storyline tab wouldn't properly run the action on the correct chapters (if selecting from volume -> chapter).
  • Fixed: Ensure the bottom action bar is at the bottom of the viewport on small pages that don't take up full height
  • Fixed: Fixed a bug where pagination wasn't mutating url state
  • Fixed: Fixed the invite user modal not continuing when email had a trailing space
  • Fixed: Fixed some bugs around fields not being locked correctly from frontend
  • Fixed: Removed the actions in the header on some pages where there were no actions to make at a page level, like collections
  • Fixed: Fixed library detail page not having header actions hooked up
  • Fixed: Split page was not centering the canvas in manga reader

Known Issues​

  • Firefox 100 has an issue with redirecting to the correct route when a user tries to load yoursite.com/ and will freeze up. This is a browser bug, you can use yoursite.com/login instead to avoid or use a different browser.
  • Apple M1 chips are not supported for reading PDFs (if you host your server on a mac). The team is investigating a solution.
 
  • J'aime
Réactions: Fabwiss
Bonjour,
It's me, the developer again. I was made aware of several security vulnerabilities yesterday and have since made a hotfix. Please update your image immediately. This will also update to the next release as well, which has many improvements.

Again, if you would like us to help keep your image up to date, please reach out. Going forward, for each release, I will post on this thread to ask for the image to be updated.

Thanks,
Joe
 

v0.5.5 - Performance Part 1

Latest

This is another release where I forgot just how much I did. The intent of this release was performance and held tons of work that I had been wanting to tackle, but needed the dedicated time for. Originally I had planned to release this with the new scan loop, however due to security vulnerabilities and some bugs in the hotfix, I had to split the release in half. As mentioned, the focus is on performance and we are bringing a ton of nice performance improvements along with a new contributor, @TheIceCreamTroll, who not only opened a lot of bugs on Github, but also helped fix a few in the process. I look forward to more development work from them.
To start off this highlight, comes Downloads. Downloads have always been pretty reliable but when you're downloading tons of content for an upcoming trip, it can first get annoying when you leave the page, you might loose the download. Also that downloads kept prompting you for confirmation when the files are large (to hopefully not eat up your data cap). So this release, I reworked downloads significantly. Downloads are now handled at a global level, range processing is enabled (this means you can stop/start if your browser supports it), downloads are cached and thus streamed to your browser (less memory overhead), the event widget handling has been tweaked a lot to make it much more streamlined, and my favorite, if you start a download, go to another page then return, the download progress bar on the card will still show.
Another huge update for Kavita is moving to OnPush change detection, something that is more technical and more work for me, but has nice performance implications for the user. OnPush basically means that the code tells Angular when it's time to re-render, which means less work Angular does and hence more frames per second. Pairing this with the update to Angular 14, the UI should feel a lot snappier to you.
This next one is my favorite. I was shocked when I was on a non-admin account and realized, I didn't have a way to track what I wanted to read...normally, I would create a collection but then I realized, Kavita's collections are for admin's only (modeled after Plex originally). So I sought out to build a Want to Read list that is like a collection that tracks what you want to read. Right now, we have ability to filter against it and that's it. I plan to build it out in future updates; if you have any ideas, jump on the feature request site and submit them.
In addition to performance, I also focused on polishing up the double page reader from last release and fixed an annoying infinite redirection bug, usually seen on Firefox. If you have issues with the double page render, def stop by or create a Github issue to let me know.
Lastly, a few users have been having issues with the invite user flow. I've been hard at work trying to support these users, but have been unable to reproduce their issues. I made some changes in the Invite User flow to hopefully improve their lives, but behind the scenes I'm still engaged in support and planning enhancements around this Authentication system. Thank you for being patient. Early reports from users seem to have less issues post these changes, so give it another go if you fell into this bucket.
Lastly is a call to the community if anyone is interested in helping in Support in our discord or being a dedicated release tester. Kavita has gotten to the size where it is taxing to be building and testing all by myself. Currently release testing takes 3 days split between 3 people. I really need help from the community to help keep Kavita stable and let me focus on development rather than Support and Testing. If anyone is interested, please reach out to me in the discord.
With all that said, the next release will be even slower than this one. I have a lot of vacation planned for next 2 months and the left over work is extremely difficult, as it's the most complicated and critical part of Kavita. Thank you as always for being patient with releases and for those that have donated, I am extremely grateful. I've been buying my Kavita supplies (lots of coffee to get me through the scan loop).
Note: The security vulnerabilities may not be viewable till a few days after this release, to allow all platforms to upgrade their builds. Anything listed has been validated and fixed as of this release.

Added​

  • Added: Added new event hooks for when mark as read/unread occur on entities, which will now trigger a re-calculation on Read Time Left.
  • Added: Cover Image uploading will now allow gif and webp files
  • Added: When the user is requesting background jobs, like scan library, Kavita will now disregard jobs if there is already a job in the queue for that configuration.
  • Added: Downloads now support range processing (the browser can theoretically resume the download)
  • Added: Downloads will now persist through page loads and the indicator will show on any card/list items where applicable.
  • Added: Downloads are now global and a notification in event widget helps you see the download progress (browser progress).
  • Added: New user preference to prompt for downloads larger than 100MB. When disabled, Kavita will download without prompting.
  • Added: Downloads will now temp be left on disk and thus if requested again, can send the same file without re-generating it.
  • Added: New placeholder for when covers haven't loaded in yet.
  • Added: PDF Reader now has a loading indicator with a progress bar to indicate how much of the PDF has been downloaded by the browser.
  • Added: PDF Reader will now close itself when ESC is pressed
  • Added: Added the ability to manually setup users without having to worry about the invite url during invite flow or doing it right at invite time. Now a Setup button will appear next to all Pending invites and at any time can be pressed to manually complete the account setup. Note: This does not work with pending invites created before this update. Please re-create them to get the new functionality.
  • Added: Added back to top support on all pages but those that utilize virtual scrolling without a parent scroll
  • Added: Pressing H will open the shortcut modal
  • Added: All users will now have a dedicated List called 'Want to Read' which will allow them to track series they are interested in reading. They can apply filtering against this page.
  • Added: Added a quick way to set darkness level on manga reader for when night light just isn't dark enough (this is not a setting, it is being trailed and subject to removal)
  • Added: Added Japanese Series name parsing support in Parser
  • Added: Added Jump bar to reading list page

Changed​

  • Changed: Changed padding to allow for two cards side-by-side on viewport width of 375px.
  • Changed: Changed every component to use OnPush Change Detection, resulting in less wasted render work and a snappier experience overall
  • Changed: Moved some calculations for title and subtitle in manga reader to the backend
  • Changed: Bulk Operations bar now has an explicit mark as read/unread buttons.
  • Changed: Bulk Operations now has Add to Collection option and Delete where appropriate (and for appropriate users)
  • Changed: Edit Series Relation will focus on the next typeahead after pressing Add Relation
  • Changed: Cover Image chooser will now show the chapter's cover images as options by default
  • Changed: Added more aggressive static file caching
  • Changed: Refactored reading list item component to drastically reduce the amount or render calls. Huge performance for users with large reading lists
  • Changed: Typeahead control now has an animation for opening and closing
  • Changed: Scan Series, when invoked via UI/API, will force a re-calculation of metadata and ignore any caching, to ensure reliable results.
  • Changed: Added Range processing support for images on the reader for slower networks or large files
  • Changed: (Manga Reader) When using single mode, try to use a pre-fetched Image, rather than relying on browser to cache the image
  • Changed: Reduced some latency when rendering first page of next chapter via continuous reading mode
  • Changed: Downloads will now leave the file on disk and re-use them. These files are cleaned up nightly or after any scan (scan series/library)
  • Changed: When a user is downloading a file on Kavita, admin's received a notification about it. This notification is now reworded to imply that the server is processing the download. This notification will be removed in future version.
  • Changed: Changed how caching works within Kavita. Cover Images are now properly cached for 1 min, Images for the reader are cached for 10 mins, and the pdf file (for new reader) is also 10 mins. This has a known issue where updating a cover image, the browser wont reflect the new image on Chrome based browsers. This is due to Chrome not respecting the cache-control spec. A hard refresh will fix it.
  • Changed: (Performance) Applied SplitQuery to multiple queries throughout the codebase, speeding up many API calls.
  • Changed: Exception middleware will now send the original error message to the UI rather than a generic 'Internal Server Error'.
  • Changed: Error toasts now have Error in the title along with the status code
  • Changed: Changed volume titles in list view to include volume number.
  • Changed: Implemented a workaround for nginx users with BlockCommonExploits enabled, which would interfere with book image escaping done by Kavita when images had ../ in their path.
  • Changed: Hide jumpbar on pages where there is no scroll
  • Changed: Non-admins can no longer view file info on card detail drawer
  • Changed: Typeaheads will no longer close after selecting an item
  • Changed: If there is no collection or reading list cover image, hide the image placeholder
  • Changed: Optimized bookmarking a page by reducing a DB trip
  • Changed: Search bar now will only show clear button once a single character is typed
  • Changed: When making bulk selections, clicking anywhere on the card will select it.
  • Changed: When cancelling a bulk selection action, like Adding to Reading List or Collection, cancelling the flow will no longer deselect the cards.
  • Changed: Updated to Angular 14
  • Changed: Updated dependencies and bootstrap to match Angular 14 version
  • Changed: When saving bookmarks, capture their date, so we can serve them up in the order they were bookmarked. This only applies to new bookmarks.
  • Changed: Updated all but one API in collection control to admin only policy
  • Changed: Updated some headers on Kavita to tighten security
  • Changed: Tightened up cover upload to restrict more APIs to the admin
  • Changed: Resetting your own password now requires you to pass your current password (if already authenticated). Admins can still change passwords for the user without this restriction.
  • Changed: Removed an additional copy in the build script and changed a copy to use appsettings.json from build rather than development.json
  • Changed: Save buttons on user and admin dashboards will only activate if a setting is changed, and will deactivate when clicked
  • Changed: The save button on the password reset screen will only activate if 'New Password' and 'Confirm Password' match
  • Changed: Centered user roles to 'Roles' in the admin dashboard
  • Changed: Reordered Series and entity details to be more consistent and renamed 'Read Left' to 'Time Left'
  • Changed: Reading list page now has a Read button which starts at beginning and Continue which continues from last reading progress position

Fixed​

  • Fixed: Fixed an issue where the sidenav wasn't scrollable on mobile.
  • Fixed: Fixed a bug where manage library component wasn't invoking the trackBy function
  • Fixed: Edit Series Relation now shows Parent as an option when the series is in a child relationship. This option is non-selectable and the field is disabled.
  • Fixed: Collection detail's scroller was on the wrong element and didn't match other pages
  • Fixed: When initializing side nav, don't call an authorized call until after user has authenticated
  • Fixed: Fixed a bug in book reader where page anchors weren't properly calculating and thus table of contents wouldn't show the highlighted item
  • Fixed: Fixed an edge case in Next Chapter API where if the user was on Volume 1 Chapter 1 and next chapter was Volume 2 Chapter 0, Kavita would report no next chapter.
  • Fixed: Added word breaking for long filenames with no spaces on headers, titles, and lists which would cause overflow.
  • Fixed: Titles on many screens and in modals will now word break if they are too long.
  • Fixed: Fixed a bug where Scan Series didn't properly choose the highest directory closest to the library path for scanning, leading to missed files (ie lib/Series A/First Files/a.cbz, lib/Series A/Second Files/b.cbz -> b.cbz would be skipped due to code choosing lib/Series A/First Files/ rather than lib/Series A/ for scanning)
  • Fixed: Fixed a bug where metadata filter, after updating a typeahead, collapsing the filter area then re-opening, the filter would still be applied to page, but the typeahead wouldn't show the modification (correct number of tags)
  • Fixed: Fixed a bad redirect on auth guard which could freeze the browser due to infinite redirect loop
  • Fixed: Fixed a bug when downloading bookmarks from multiple series, the temp file would only use the first series id rather than a combination of all of them.
  • Fixed: Fixed a bug on bookmark reader, the reader on last page would throw some errors and not show No Next Chapter toast.
  • Fixed: Fixed an issue where cover update events would be sent to the UI before the DB was saved, thus looking like covers weren't generated
  • Fixed: Fixed a bug where list item for books that have 0.X series index wouldn't render on series detail.
  • Fixed: Fixed issue where action menu would be overlapped by the header nav.
  • Fixed: Styling issue which caused reading list items to be shorter than intended.
  • Fixed: Fixed an issue where modal could extend past users max viewport height.
  • Fixed: (Manga Reader) Fixed an issue where sometimes when loading the next page, the pagination area wouldn't be properly setup due to a missed render cycle
  • Fixed: Fixed a flash of white when refreshing the browser
  • Fixed: Fixed a bug where bookmarking when using Double (manga) wouldn't bookmark both pages
  • Fixed: Lots of fixes around when we choose to render double pages, when we decide to skip pages, etc. This should hopefully be feature complete now.
  • Fixed: When an error occurs when registering a new user, delete the user instead of rolling back the transaction.
  • Fixed: Fixed Sequence contains no elements exception on first run (in stats)
  • Fixed: When progress updates were processed by Volume cards, the progress bar could be out of sync. This now correctly updates.
  • Fixed: Fixed an issue where InstallId wouldn't properly convert and show on the UI.
  • Fixed: Fixed a bug where browser would inject a clear button onto our search bar, showing 2 clear buttons.
  • Fixed: Fixed an oversight where if there is no tag in ComicInfo after a chapter was updated with People or Genres, then the People/Genres would never be removed.
  • Fixed: Fixed an issue where pages could be skipped in single due to prefetching overriding our recently set image (Manga Reader)
  • Fixed: Fixed dark mode on pdf reader not undoing correctly due to a bug in ngx-extended-pdf-viewer
  • Fixed: Fixed a bug with new authentication where images and pdfs would fail to load (from v0.5.4.2 hotfix)
  • Fixed: Fixed a regression from hotfix where bookmarks were not able to load due to a missing [AllowAnonymous] (from v0.5.4.2 hotfix)
  • Fixed: Fixed a bug where some config folders wouldn't be created on first load
  • Fixed: Fixed a regression which broke Plugins (and Tachiyomi) from authenticating (from v0.5.4.2 hotfix)
  • Fixed: Fixed a bug where clicking on a Jump key wouldn't go exactly to the selected letter
  • Fixed: Fixed a bug where . wasn't being included in # JumpKey
  • Fixed: Fixed a bug where the add to reading list modal would overflow and make create button hidden
  • Fixed: Fixed some inconsistencies with clearing multiple series of bookmarks in one go by building a dedicated api
  • Fixed: Fixed a bad naming case for reading list items where it was just a volume showing just Chapter 0
  • Fixed: Fixed a bug where there could be duplicate scrollbars on pages with virtual scroller
  • Fixed: Fixed a bug where scan series, when generating new covers, wouldn't emit cover updates to the UI
  • Fixed: Fixed an issue where opening directory picker to change bookmark directory and hitting Share without changing anything, would blank out the bookmark directory field.
  • Fixed: Summaries wouldn't be blurred if they were less than 250 characters.
  • Fixed: Custom css themes wouldn't load after v0.4.5.2 Hotfix
  • Fixed: On fresh installs, check if the Server Settings table exists so we don't dump an error on startup (confusing a handful of users)
  • Fixed: Fixed a bug where UI was showing Chapter created date for files instead of file created. This fix introduced a new field so will not show for existing files.

Security​

Known Issues​

  • ARM x64 users may have issues with PDFs generating cover images. There is a workaround found thanks to @kleisauke, the author of NetVips, which we use to generate images in Kavita. You can find information on our wiki's FAQ or the original issue for a workaround.
  • Typeaheads (autocompletes) can clear itself automatically when adding multiple times in one go.
  • Continuous scroller doesn't trigger in webtoon mode when in fullscreen
  • Changing cover images on Chromium-based browsers will not reflect. This is due to Chromium not respecting the Cache-Control header (spec) and hence requires a hard refresh from the user.
 
  • J'adore
Réactions: kavitareader

v0.5.6 - Performance Part 2 (Is that a new scan loop?)

Latest

For the past 3 months, I have been working tirelessly to rebuild our main scan loop, which is not only the most complicated part of Kavita but also the most critical. It translates files on your system into the series, volumes, and chapters you know in the UI. This goal of a new loop was so difficult, I quit 3 times, but finally made it through. The new loop is finally ready to share with you all, thanks to many of our nightly users helping test and provide feedback.
What is this new scan loop I speak of? The new scan loop is a new way (and a new set of requirements) to scan your disks and process files extremely efficiently. This changes Kavita to using a folder-based parsing mechanism rather than the previous mechanism where we would parse all files, group then perform DB operations in groups of 50. The reasoning for this drastic shift is that the old method failed to scale on users with massive libraries (we have one user with half a million files per stats) and would take an exceedingly long time for networked (rclone) users.
To dive in, we need to talk about some requirement changes. In order to utilize folder-based scanning, we have to remove the flexibility of users can put files anywhere they want and Kavita will group them for you. When I started, I chose this mechanism based on feedback from Plex and Jellyfin, but in reality most of our users have proper folder-based structures, so this new requirement change shouldn't affect many users.
Kavita expects all series to be in their own folder, so a library cannot have loose leaf files in it. You can still do /library root/manga/Publisher/Series A/, /library root/manga/Publisher/Series B/, just not /library root/my book.pdf. Kavita will now scan folder by folder an for each folder, group the files in and process them as a single series in a task (async). This task will do all DB operations and invoke Cover Gen and File Analysis (word counting) for just that series. This change is important because it will now process series-by-series and update your UI in that manner. Hence you should be able to more quickly see your series and use them completely than before on first scan. This however comes with a drawback due to increased I/O and trips to the DB, the library scan is slower (on first scan). For me, previously it took 30 mins to scan all files into the DB (without covers or word counts), on the new loop it takes 80 mins (but has covers and word counts). The main difference is on the old loop I had to wait at least 10 mins till the first chunk inserts, with the new loop, you don't have that issue. This also means the Chunk errors users sometimes receive should no longer be an issue and if there is an error, that series will tell you directly. You can find more information about the new Scan loop on the wiki.
With that said, this also allows some deep optimizations. Kavita will no longer do any I/O (except an attribute lookup on folders) if a folder hasn't changed since the last scan time. This single optimization means that my library scan can run in 5 seconds for my 660 series library, as it skips work on anything that hasn't changed. From the nightly testers, many users have seen drastic time reduction, esp our rclone users. This also allows for 2 enhancements, the ability to ignore certain files/folders (aka .kavitaignore) and the ability to hook into Kavita and say a folder has changed and let Kavita kick off a scan.
Next up is .kavitaignore, inspired from .plexignore and a feature request as well, users can now tell Kavita to ignore files and folders at any level of a scan. You can have at library root to have a global set of rules, like ignore cover.png, or you can have nested into your folders. You can have one for each folder and Kavita will intelligently combine the rules as it moves down the folder tree. This is another degree of freedom which allows you to not only filter, but speed up scans as well. This feature is experimental and still being tested and tweaked, but works in many cases. Give it a go and report back on issues faced or clever tricks that we can enhance our wiki with.
Lastly, we have folder watching. This new, experimental feature is really something cool. Why wait for nightly scans, when Kavita can pickup on changes and instantly run an appropriate scan? This new feature does just that. When a change is detected, a task is queued up and after 5 minutes executed. Any changes that related to that first task, will get disregarded. Please note, this is experimental and likely to not work if you download directly to your library. This feature will be fletched out further in later releases.
TLDR: There are new requirements for what Kavita expects from file layout. Read about it on the wiki. If you scan without conforming your layout, you may run into issues.
If you have been enjoying Kavita, please consider donating or backing me. Kavita is primarily built by just me in my spare time and each release is hundreds of hours of work.

Added​

  • Added: You can now have a .kavitaignore file at any location in your library and the scanner will read that and filter out any subsequent folder/files. This works very similar to .plexignore, this utilizes a Globbing syntax and supports multiple patterns via new lines. You can find more about the syntax here. This feature is experimental
  • Added: Added a new event type of Info which will show when Scan loops are aborted due to nothing changing on disk. This aims to inform the user that their expected action took no result.
  • Added: Added a clear all button on the events widget
  • Added: When a new series is added to Kavita, library detail pages will insert instantly (previously we reloaded the page every 3 seconds post an update coming in)
  • Added: Added --event-widget-info-bg-color for the new info event widget color
  • Added: When we navigate from a page that has a jump bar and the user has clicked the jump bar, resume their scroll position when returning to that page. This is not tracking scroll position naturally, that will be looked at later.
  • Added: Added / as a server route to swagger, which could help users behind a reverse proxy from using their local server.
  • Added: Kavita now comes out of the box with Folder Watching for libraries. This means that when any sort of event occurs, like new files, file/folder renames, deletions, etc, Kavita will queue a task to scan those changes into the system. By default, tasks will only be processed every 5 mins. This is an experimental feature and disabled by default.
  • Added: Kavita now comes with a new API for library/scan-folder and takes the API key (with admin permissions) and a folder path.
  • Added: Added API endpoint for a health check to streamline docker healthy status.

Changed​

  • Changed: Kavita now requires series to be within a folder and not spread between multiple folders. For example, a library root of /manga/ must have series self contained in /manga/series A/files, /manga/series B/files. Kavita will now ignore files that are in /manga/ alone.
  • Changed: Rewrote the scan loop to perform folder-based scanning, Kavita will now process one folder at a time in a multi-threaded manner. This is a major change to how previously scanned, where all files had to be parsed before any DB work could be done. Users on networked systems should see a major improvement.
  • Changed: Scanning tasks now run on their own dedicated queue and will not allow any concurrent runs. Time for a scan task to get executed is lengthened a bit as default queue takes priority.
  • Changed: Added optimizations where Kavita will ignore scanning folders (all I/O) if nothing has changed on the disk since last scan of that folder.
  • Changed: Fail silently if an email invite doesn't get sent, as the link is still present in the DB and UI screen.
  • Changed: Ignore progress events altogether on Series cards so progress bars don't get skewed when a user is reading
  • Changed: Reduced the spammy output for the logger, so more clear information is delivered, instead of internal DB queries.
  • Changed: Deleting a series will now automatically remove it from the Want to Read page
  • Changed: Tweaked a migration to output log only if it's going to be ran
  • Changed: Added dedicated token output to logs for auth flows (when inviting a user) in case token is getting url encoded (but from testing, it doesn't affect)
  • Changed: Reverted back to ES6 vs ES2020 so older Safari browsers can use Kavita
  • Changed: When parsing non-epubs in Book library, use Manga parsing instead of Comic, to better support Light Novels
  • Changed: OPDS description now no longer mentions users will be able to download, as they currently still need the download role.
  • Changed: Updated all links that point to external sites to use noopener noreferrer
  • Changed: Updated the Email Service wording to point to the Github for the external email service
  • Changed: Clear cache will now clear temp directory as well, to clear out bookmark and downloads.
  • Changed: When a library is in progress and a user tries to delete the library, tell them to wait before we let them
  • Changed: Rearranged some code in invite user flow to help with the small fraction of users that can't invite users.
  • Changed: Added a null check so we don't log an exception when connecting a websocket when user is not authenticated
  • Changed: When a theme that is set for a user, gets removed from Kavita, inform the user to refresh.
  • Changed: Manga reader Darkness control is now called Brightness

Fixed​

  • Fixed: Fixed a bug where series with LocalizedSeries comicinfo tag could not get joined or joined in wrong order each scan, depending on which folders or files were processed first.
  • Fixed: Fixed a bug where collection images weren't loading
  • Fixed: Go back was not returning to the scroll position when you clicked the nested link, in the book reader.
  • Fixed: Fixed a bug when moving between pages and a page had smaller height, the total height calc would get skewed and allow you to scroll beneath the bottom action bar in the book reader.
  • Fixed: Fixed tooltips not rendering on series cards
  • Fixed: Fixed a missing update in Update Series, where we could change name of a series, but not recalculate the normalized name.
  • Fixed: Fixed a bug where archives with ._ files would be counted as valid files, when they are actually just metadata files from Macosx
  • Fixed: Removed some extra blank space on collection detail page when collection doesn't have a summary or cover image
  • Fixed: Fixed a bug where adding a new item to a reading list wasn't adding it at the end of the list
  • Fixed: Fixed an issue where collection page would re-render the same covers for multiple cards
  • Fixed: Fixed a missing margin-top which made the page extras drawer not render correctly and hence be uncloseable on small screens
  • Fixed: Fixed a bug with stacked modals not showing overlay
  • Fixed: API changes to support some changes in Tachiyomi around progress syncing
  • Fixed: Fixed an issue where Save Bookmarks as WebP could get reset to false when saving other server settings
  • Fixed: Fixed a bug where typeahead wouldn't automatically show results on relationship screen without an additional click
  • Fixed: Fixed an issue where Chrome was caching api responses when it shouldn't had, thus causing some apis to return invalid data after a modification
  • Fixed: When there is no data on collection detail page, make sure we show the no data design
  • Fixed: When resetting password, ensure the input is colored correctly
  • Fixed: After resetting password, Kavita threw an error despite it working.
  • Fixed: Fixed incorrect messaging on reset password page
  • Fixed: Fixed a bug where reset password would show the side nav button causing skewing on the page
  • Fixed: Fixed a bug where a series with a relationship would prevent the series from being deleted (or the library it resided in)
  • Fixed: Downloading theme files was previously not allowed by non-authenticated users due to some changes in the Hotfix
  • Fixed: Hide the All Series side nav item if there are no libraries exposed to the user

Removed​

  • Removed: Removed a migration of bookmarks from in the DB into external files. This was added for v0.5.0, 6 releases ago.

KavitaEmail​

  • Fixed a typo where Email service was using SenderAddress instead of Username for authentication
  • Changed the messaging around if the user received the email but didn't request it themselves, to ignore to be more prominent on the email
 
Hello, v0.6.0 has just released. It contains a ton of features requested by the community like Send to device (Kindle) support and more. Please update the image (v0.6 has many fixes for bugs introduced in v0.5.6). Thank you as always for keeping the Qnap users up to date.

- Joe
 
Hello!

J'ai installé cette apli sur mon NAS, mais quand je la lance j'ai droit à un magnifique "La connexion a échoué"...
Y a t'il des réglages à faire quelque part?
 
  • J'aime
Réactions: CHAP
Hello, v0.6.1 has just released. It is a small hotfix mainly fixing some high utilization a small set of users were facing, some reader regressions, and 2 security attack vectors. Thank you as always for keeping the Qnap users up to date.

- Joe
 
v0.6.1 - Security Patches + Hotfix Latest


I took a one week vacation after the v0.6.0 release and it seemed there were a few issues that cropped up, so here is the hotfix. This hotfix fixes high utilization that a few users have reported. If you were one of these users, after this hotfix you should be clear to turn on folder watching again. If you're experiencing issues, please drop by support again.
In addition, there were a few security vulnerabilities exposed via Huntr. As usual, the details will be disclosed after a few days. Also a few parsing changes made release broke grouping for light novels that were not tagged correctly. This hack was added back in to help users not have to re-tag thousands of files (but I do encourage it).
Lastly a small but annoying bug where when reading in the manga reader, going backwards or moving to the next chapter could cause the screen to not update the image but the page changed. This is now squashed for good.

Added​

  • Added: Added a jumpbar to bookmarks page

Changed​

  • Changed: Updated all non-authenticated APIs to return more generic messaging back to the user and log more detailed information to avoid any attack vectors.
  • Changed: Log level defaults to Debug as it's no longer noisy
  • Changed: Swapped out SQLite for Memory backstore for Hangfire
  • Changed: Added DisableConcurrentExecution on ProcessChange to avoid duplication when multiple threads execute at once for Library Watching
  • Changed: When parsing epubs, if there is a volume in the epub title, try to parse and group. This is beneficial for Light Novels which are generally tagged this way. Last release, we changed logic to prefer metadata, but most files are not properly tagged.
  • Changed: When scanning files, exit earlier from parser when file is a cover image.
  • Changed: When inviting or editing a user, when Admin role is selected, all other roles are disabled as they aren't applicable.
  • Changed: When there are no collections, don't point the user to the wiki unless they are an admin

Fixed​

  • Fixed: Fixed the black background present when the e-reader's color theme was set to 'White'
  • Fixed: Fixed security issue (https://huntr.dev/bounties/55cd91b3-1d94-4d34-8d7f-86660b41fd65/)
  • Fixed: Fixed security issue (https://huntr.dev/bounties/bebd0cd6-18ec-469c-b6ca-19ffa9db0699/)
  • Fixed: Fixed a bug where promoting a reading list would fail
  • Fixed: Fixed a bug where bookmarks wouldn't load in the reader in the order they were saved
  • Fixed: Fixed a bug where state variables weren't being updated correctly and pages could get stuck. This also fixes paging backwards not working
  • Fixed: Fixed a bug where Hangfire could cause high CPU/RAM utilization for some users due to slower process change execution.
  • Fixed: Fixed delete series sometimes not triggering on series detail page
  • Fixed: Fixed some parsing logic for how we treat specials like Annual and Omnibus. This now handles more cases and fixes a few that broke last release.
  • Fixed: Fixed a bug where Log Level Information wouldn't show proper log output
  • Fixed: Fixed a case in ComicInfo fallback where and invalid ComicInfo location wasn't picked up
  • Fixed: Fixed a typo in the toast notification for marking multiple items as unread and made capitalization consistent (Thanks @pssandhu )
 
Hello, Kavita has release another update. The latest is v0.7.1.4 (a hotfix for the v0.7 release). Another massive update of 73,000 lines of code. Please test this out and update your image. Thanks as always, Joe.
 
Hello again, a new release has been release with Kavita v0.7.3. Please update your packages. Thanks.