Skip to content

Releases: Kareadita/Kavita

v0.5.4.2 - Security Hotfix v2

08 Aug 21:58
5e273d5
Compare
Choose a tag to compare

This is a hotfix to the hotfix, fixing image loading within Kavita.

Fixed

  • Fixed: Fixed a bug with new authentication where images and pdfs would fail to load

Known Issues

  • Tachiyomi no longer connecting
  • Collection image covers are not showing on Collections Page (but collection detail it does show)

v0.5.4.1 - Security Hotfix

08 Aug 21:09
9c31f7e
Compare
Choose a tag to compare

This is a security hotfix, please update immediately! Several high severity issues were disclosed to the Kavita team this morning that require an immediate hotfix.

Thanks @vultza for disclosing these issues through Huntr.

Added

  • Added: After 5 login attempts, Kavita will impose a 10 min lockout before authentication can be retried

Fixed

  • Fixed: Fixed an exploit that allowed a user to change the admin user's account password, thus taking ownership of the server
  • Fixed: Fixed an exploit that would allow an unauthorized user to delete reading list items within a user's reading list
  • Fixed: Fixed an exploit that allowed a user to abuse an API and leak sensitive files from the system
  • Fixed: Fixed an exploit that allowed an unauthenticated user to download pdfs from the server
  • Fixed: Fixed an exploit (SSRF) that would allow a user to upload a cover image that isn't an image

v0.5.4 - Double Page Layout, Estimated Reading Time, a new PDF Reader and Infinite Scroll?!

30 Jun 20:21
Compare
Choose a tag to compare

This is a hell of an update, so big I could barely figure out what features to put in the header. There were so many great additions that were not planned for this release, like the new PDF reader. Welcome to v0.5.4, this release is the part 2 of the UX and Reader refresh. This is another massive release, even I'm shocked when I was creating the release notes. This releases adds some big hitters and some requests from the community. Let's get started.

Coming up first is a niche feature for myself, but a few of our users will definitely like this, WebP storage support for bookmarks. If you use the bookmarking feature, your bookmark collection can get pretty big pretty fast. This new feature allows Kavita to covert images to WebP and save 40% space in the process. This is some foundational work as I want to expand this for all covers as well (WebP is missing Safari support).

Estimated Reading Time
This is a really cool feature as it helps you find what to read next based on how much time it might take to read it. Want something quick to read, your dashboard now shows series that it takes under 10 hours to read. If the series is image based, we use some estimates taken from our discord community to estimate a range of how long it takes to read. If it's a book, same deal, but we use word count rather than pages. Of course, estimated read time is now available for sorting as well. See some examples below:

image

image

List View
This is another one that is pretty cool and what looks like a simple feature, is in fact a lot of work under the hood. This new layout mode for the site really shines for book readers. Not only can you see the titles (if they are set), but also summary and other information, making it really easy to pick up a book to read. Plus, combined (in this screenshot) is the new Blur Unread summaries setting, which will blur summaries if you haven't read them, so you wont be spoiled when glancing over books in a series (like I was, creating this feature).
image

PDF Reader
I've always been annoyed with the PDF reader Kavita came with out of the box, but I personally don't have many PDF files, so it's not a big deal for me. I've been monitoring and searching for libraries that would provide a better experience and low and behold, I found one. It's not perfect, but it was easy to integrate and gives a much more natural experience when reading PDFs. I would love to hear feedback on this new reader from you, so drop by the discord or open a feature request with some ideas for it. This is our v1 implementation so some more reading focused features are not present. Feed me ideas so we can build out a more ideal solution.

image

Infinite Scrolling This is a big one. There is no more pages in the app (except a few places that haven't been attended to), everything is infinite scrolling with a jump bar to quickly jump around and virtualized DOM to keep it light on the browser. Due to the infinite scroll, the scroll bars are in different places than you might be used to. It might be jarring at first, but you'll quickly get used to it and love the speed at which the screen renders.

infinite-scroll

Double Page Layout
This is another big one. I had implemented most of it in Part 1, but had to pull from the release as it had some edge cases. @magujun took it upon themselves to drive it home and it's simply sweet. If you're a big comic fan or even want to read emulating a comic, this is the feature for you (on appropriately sized devices). We offer 2 new double page layout methods: Double and Double (manga). Double will render out the pages as Page 1 Page 2 | Page 3 Page 4. Double (manga) renders out the pages as Page 2 Page 1 | Page 4 Page 3 to help mimic the reading order of manga.

image

Detail Drawers
This is the last big feature to talk about and that is moving to drawers rather than modals for some screens. This new UX pattern is me playing with the idea and testing it out. So far, it seems to be much nicer experience on mobile.

image

With those big features out of the way, there are still plenty of great enhancements in here, like the ability to mark chapters as specials via ComicInfo.xml, parser support for Chinese, Korean, and Japanese characters, a redesigned cover upload, ability to enable swagger on your server (for those who develop scripts against our API), and even a redesigned Admin panel, to drive some future updates.

Next release will be another slow release, especially since I'm doing some deep refactors of the main scan loop. Next release is focused solely on performance and scan loop enhancements and will take quite some time. Thank you as always for being patient and supporting me in this project. Especially to those that provide support in discord and our donators.

Added

  • Added: New Server setting to use WebP for bookmarks rather than the raw image. WebP provides a 40% saving to space. This setting will take effect but not convert existing bookmarks (use task for that)
  • Added: New Adhoc Task to convert existing bookmarks to WebP. The setting to use WebP does not have to be enabled. This can be a long running task, esp on ARM, so be aware of that.
  • Added: When user account updates occur, like changing permissions or library updates, events will be sent to that user if they are logged in/active on the site and patch their new state in. This ensures they don't need to log out and log in to have the new state
  • Added: Exposed internal reoccurring tasks to the UI under Tasks tab. This is preliminary work for a later update.
  • Added: Kavita can now read the Format tag from ComicInfo and use that to force special status. The following tags will force special: Special, Reference, Director's Cut, Box Set, Box-Set, Annual, Anthology, Epilogue, One Shot, One-Shot, Prologue, TPB, Trade Paper Back, Omnibus, Compendium, Absolute, Graphic Novel, GN, FCBD
  • Added: Implemented the ability to parse some volume and chapter keywords for Chinese
  • Added: Added a word count analysis to count number of words in your epub files.
  • Added: Added an time estimate to read a series based on average reading time for comics/manga and text. Time to read is powered by pages for comics/manga and words for epub
  • Added: Implemented file parsing support for Korean
  • Added: Series detail page will now show an estimated time left, if you have reading progress, based on an average speed between our fast and slow readers.
  • Added: Library Recommendation page now has a new feed, Quick Catchups. Series that take less than 10 hours and are ongoing.
  • Added: On Volume details, added a distinct Read button, rather than having hidden knowledge of clicking the poster for the chapter would let the user read it.
  • Added: Series Detail has a new button in the top right which lets you use a new layout mode for laying out cards (without having to change user preferences).
  • Added: List view layout. This new layout uses a list style to render out non-series on series detail page. There is more information on these cards by default and can show the title of the chapter/issue/book.
  • Added: Swapped out the pagination for infinite scroll and jump bar to quickly jump around library
  • Added: Added Download action to series detail page
  • Added: Implemented the ability to use double page layout in the manga reader. This new rendering mode allows for both Comic (Page 0 Page 1 | Page 2 Page 3) book reader and Manga (Page 1 Page 0 | Page 3 Page 2) reading and is optimized for larger screens. Shoutout to @magujun for finishing off the implementation and getting it into this release.
  • Added: Brand new PDF reader that is more like the native reader in browsers. PDF files will be streamed to the UI (this means way faster load times) and have ability to search text within, select text, zoom, change reading layout, etc. Progress reporting is hooked in. Light/Dark mode is supported but experimental in underlying library, use at your own risk.
  • Added: When a series is removed form a library, library detail will now reload.
  • Added: Filename parser now supports Japanese kanji for volume and chapter parsing
  • Added: Admins can now enable swagger (exposed via swagger/) on their instances via a new server setting.
  • Added: New server setting to configure how many days of backups are retained. Still defaults to 30 days.
  • Added: Added the ability to sort by time to read from metadata filter
  • Added: When there are errors extracting archives, throw a custom error message to the UI informing of the potential issues
  • Added: Admins can now change a library type after creation. There is a warning explaining that it's very likely series will be re-created and hence reading progress or bookmarks could be deleted. Proceed with caution.
  • Added: Users can now enable a setting to blur summaries (mainly for list view) of volumes/chapters/books they haven't read yet.
  • Added: Added new stats to help see how features are being used and gather some performance testing numbers from v0.5.3 and to prepare for upcoming performance release (v0.5.5). In addition, some of the new functionality (virtual scrolling) have new stats to ensure ...
Read more

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

21 May 23:39
Compare
Choose a tag to compare

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
  • Chan...
Read more

Hotfix 0.5.2.5 - PDF Rendering Regression on Pi 32-bit

08 Apr 13:45
Compare
Choose a tag to compare

It has come to my attention that PDF rendering broke on 32-bit Pis due to a downstream dependency and a .net regression. The downstream library has put a workaround and we have confirmed it works in this. Sorry for the inconvenience. This will be the last hotfix.

Added

  • Added: Backup now includes your themes folder.

Fixed

  • Fixed: Fixed an issue where PDFs would not render on 32-bit Pi's due to a dependency having a bug.
  • Fixed: Fixed a copy issue where sometimes non-existent files would cause existent files to not copy during backup
  • Fixed: Fixed a bug where bottom action bar on the book reader would have side-effects that top didn't, like settings button wouldn't open the drawer.

Hotfix 0.5.2.3 - SortName & Invite User Redirect fix

05 Apr 23:16
Compare
Choose a tag to compare

There were some unfortunate issues that slipped through release testing, so please update. The main focus for this hotfix is around SortName on series, which was getting cleared during a scan and not repopulated, thus breaking the sorting logic within Kavita.

In addition, some issues were found around Invite user, where unauthenticated browsers would not properly show the registration screen. These and a few more bugs reported have been fixed.

Please note, On Deck is still not functioning as expected from previous release and in this hotfix. It is planned to get a full treatment to align to my vision. Please make due with it as is.

Note 2: The hotfix is skipping patch .1 and .2 in order to better align with our nightly users.

Changed

  • Changed: Slightly tweaked the logic of On Deck to consider chapters in a series that have been created within 30 day cutoff in addition to having been read. This does not fix the inherit issues with it, but serves as a first start.

Fixed

  • Fixed: Fixed a bug where some events weren't being sent to admin clients only
  • Fixed: Fixed a bug where on scan, if SeriesSort wasn't set in ComicInfo, it would get cleared, thus breaking sorting on library detail page
  • Fixed: Fixed an issue where when falling back to folder parsing, sometimes when the folder name wouldn't parse well, like 'Foo 500' which parses as 'Foo'. Now the fallback will check if we have a solid series parsed from filename before we attempt to parse a folder.
  • Fixed: Ensure SortName is always being set during a scan loop, even if locked, to ensure that it's never just an empty string (which breaks sorting)
  • Fixed: Fixed some errors being thrown from metadata update for files that haven't had a summary set.
  • Fixed: Fixed a bug where updating a series name to an existing name in the system wouldn't throw an error
  • Fixed: Hide the side nav hamburger toggle when not authenticated
  • Fixed: Fixed some logic issues around determining which releases are installed, available, etc from Announcements page.
  • Fixed: On Firefox, upload cover image via url had different event properties than other browsers and would completely fail.
  • Fixed: Confirm email (invitation link) would redirect to login when not authenticated due to side nav having an authenticated call in it.

v0.5.2 - UX Refresh, Custom Themes, Metadata Editing, and OPDS updates!

02 Apr 17:11
Compare
Choose a tag to compare

This was another huge release. I knew it was going to be big going in, I didn't expect that I'd had to split some of the features out into a separate release. This release is themed around UX enhancements and as you can see, we added custom theme support to Kavita (which was a lot of code changes behind the scenes). Admins can now either use one of our themes (eink is a new one) or build their own and encourage everyone to use it by setting it as the default theme for new accounts. Users can always change their theme based on their own needs.

We also added a side nav to Kavita. This was always my plan from day 1, but coding a side nav is no fun, so I had to wait a while till @therobbiedavis was here to do the heavy lifting. Thanks again Robbie! The side nav removes the need to have the libraries on the main page and based on my and the nightly users testing, is a huge experience upgrade. I'm excited to see what you think of it.

Another big feature is Metadata editing, something I've been looking to get to since we added metadata. Admins can now edit metadata in the UI and lock fields so that metadata updates from files do not override the custom edits done. This also allows to mark a series as 'On Hiatus', something that isn't possible with ComicInfo.xml. The edits stay in Kavita's DB. I will be assessing saving to the underlying file at a later time.

One more big feature that's not in the release title but should be is that the events widget that shows when a scan is in progress has been rewritten in a major effort to send more detailed information to the UI and ensures that only admins receive the messages when they should be protected by RBS. The widget will now show filenames when being scanned, series when they are updated or being generated for covers, and even errors that might occur, like you have an empty base folder from the library, which indicates a mounting problem. This is a really big enhancement, great to see, esp if you have a larger library or use networked storage.

Lastly, to wrap up. I finally got to re-tackle OPDS and help flatten some of the clicks users have to do and provide some better naming, which mimics the new series detail page rolled out last release (but also enhanced in this release). Kavita will now flatten based on some of the conditions of your series to reduce clicks. Search has been updated, download names as well. I hope the OPDS users enjoy it and let me know if you have ideas to improve it.

This release was a blast to work on and has many changes I can't touch on, please read through the changelog. I was lucky to be able to fix or improve a lot of different areas and features in Kavita thanks to the scope of changes the theming update required.

Some of my favorite smaller changes this release are:

  1. The Cover Chooser now works with urls pretty consistently
  2. Updating the Manga reader to use raw images giving us a much better experience on smaller screens with 'Fit to Screen' splitting mode
  3. Huge performance gains on Series Detail page
  4. Enhanced stat collection of what features users are using, like collections, reading lists, etc. I'm really excited to see what people are using so I can focus my effort in those areas.

Known Issue: Currently On Deck is not working as I want it, sometimes series will not get included on it, when they should be. I have plans to do a rewrite of this functionality for the next release. Please bear with me until then.

Added

  • Added: Introducing custom theme support! Admins can now add their own custom theme files and have Kavita use them as the default for new users. Users can change their own site theme to any on the server, including Kavita's default themes. Admins can also default all users to any theme, including a custom one. See more about theme's here.
  • Added: Added a hover effect to card to give more feedback to the user.
  • Added: Kavita now comes with an e-ink theme out of the box, optimized for e-ink devices
  • Added: Added tooltip to API regenerate button to warn user about it invalidating all existing clients.
  • Added: Added file parsing support for 'Series 001 (Digital) (Name123)'
  • Added: Series detail now shows reading lists where said series has some connection to.
  • Added: Series detail will now show Last Read date by the user.
  • Added: Implemented the ability to update metadata on series from the UI. Each field can be manually edited and locked. Once locked, no updates will occur on that field, even if the metadata source (ComicInfo) is updated. Fields can be unlocked from the UI. This does not write to the ComicInfo.xml file.
  • Added: New, redesigned screens for Chapter/Volume info (now called details). This new modal screen features expanded metadata (from ComicInfo if in underlying file), ability to see the bookmarks in said Chapter/Volume, a quicker way to change cover image, and overall, better experience.
  • Added: For archives, when parsing, set the SeriesSort from ComicInfo if it exists (this is a pending v2.1 draft spec)
  • Added: Added ETag on headers for Bookmark and Manga images to allow browser to cache some files
  • Added: Manga reader now has a modal to show all the shortcut keys
  • Added: Manga reader now has a configurable background color in user settings, defaults to black
  • Added: Manga reader has a new setting to disable showing screen hints, like overlay when pagination direction is changed. Users can now disable in user settings.
  • Added: Cache control on reader images are cached for up to 10 mins
  • Added: Added mark as read/actionables on Files in volume detail modal.
  • Added: Errors that occur in background tasks, like Backup or Library scan, will now push to events widget to inform the user that said tasks were aborted. User can now click the error and get more information (or check logs for the same information).
  • Added: Side nav added to the application. From the side nav you can easily reach your libraries, reading lists, collections, and user settings.
  • Added: Hooked in the ability to search by release year (along with series optionally) and series will be returned back.
  • Added: Filter screen now lets you filter against a series name, using same contains logic as search. (https://feats.kavitareader.com/posts/93/filter-by-series-title)
  • Added: Download role will now block users over ODPS from downloading items. OPDS-PS will still function.
  • Added: Added stat collection on new features to help focus development efforts. New stats include: Number of Users on an install, Total Files per Install, Admin's theme, Admin's reading mode, Number of collections and reading lists, and if OPDS is enabled.
  • Added: When deleting a library, send Series Removed events for each series in said library, to remove from user's pages without a refresh

Changed

  • Changed: Updated to Angular 13 and updated many dependencies
  • Changed: Updated to .NET 6.0.2
  • Changed: Upgraded to Bootstrap 5
  • Changed: Manga Reader will now use regular images to render pages to the user. A canvas (previous implementation) will be used solely for page splitting. This has improved resolution for Fit to Screen rendering on smaller devices.
  • Changed: Dark mode is now Custom theme
  • Changed: A ton of work behind the scenes to unify the styles we user per component.
  • Changed: A major rework to the events widget to provide detailed information about what is occurring during library/series scans and cover refreshes. It will now send filenames being scanned, what series is being updated or where cover generation is.
  • Changed: Changed tag badges on the filter to be green instead of outline on dark theme.
  • Changed: All toasts relating to task queuing now have 'info' instead of 'success' styles.
  • Changed: Width of search bar now spans entirety of navbar on all viewport sizes.
  • Changed: Series Detail page is now generated completely in the backend. This allows for greater flexibility and speed. On average, users should see 50% speed increase on page load and site responsiveness.
  • Changed: Continue reading or Read button on series detail is now enabled on load. You can skip waiting for the volumes and chapters to load.
  • Changed: Series Detail page will now show Books under Books tab only
  • Changed: Series Detail page for Book Libraries will now render titles as 'Index - Book title'
  • Changed: Chapters/Issues tab will no longer show any chapters that are just a volume (ie Btooom! - v01.cbz)
  • Changed: Removed file parsing support for 'A Compendium of Ghosts - 031 - The Third Story_ Part 12' due to complexity in parsing
  • Changed: CopyFilesToDirectory will now allow for one duplicate copy over and put (2). This allows for old bookmarks to handle duplicates on download.
  • Changed: Removed no-connection route and component since it is no longer in use by the app.
  • Changed: Series Detail page now works slightly different. Library type Books will never send chapters back. It will only send Specials or Volumes back. Volumes are renamed to be more user friendly. Non-book types had many fixes to streamline what renders on the screen.
  • Changed: Made the badge expander button smaller to match tag badges
  • Changed: Log message for Scan Service has been tweaked to make it easier to find total scan time vs scan time for a chunk of work.
  • Changed: Multi-select typeaheads now have a close icon to clear out the field
  • Changed: Fixed up some styling on Edit Series modal for phones.
  • Changed: (Performance) Optimized some code in ArchiveService to avoid extra memory allocations.
  • Changed: Tweaked on deck to only show series that have progress within 30 days.
  • Changed: Ignore @recycle directories on QNAP devices
  • Changed: Disabled some options in the menu when you're in a mode that doesn't support for Manga Reader
  • Changed: Moved library type resolution into getChapterInfo resulting in...
Read more

v0.5.1.1 - Email Migration Hotfix

12 Feb 22:59
2193451
Compare
Choose a tag to compare

There have been a significant amount of reports that users are struggling to receive the email link for email migration or they are unable to find in their logs (usually due to a logging level mismatch). We have altered the migration code to not require any email to be clicked and instead as long as you pass correct login credentials, email migration will successfully validate.

We will continue to look into the email functionality and smooth out existing flows. Thank you for being understanding.

Changed:

  • Changed: Email migration will now auto validate the email as long as user provides the correct username/password

v0.5.1 - Search & Account Enhancements

11 Feb 15:42
Compare
Choose a tag to compare

Another jam packed update is here and it lays out some important foundational work for future updates. The focus of this update was account management and search overhaul. Both are functions that were built out very early in the project and haven't had much love in quite some time. The key accomplishments that I wanted was making account registration easier and more streamlined and overhaul search to work against the newly added metadata from last release.

First off, accounts now require emails to function. When you start v0.5.1 up, a one time migration will occur to have you confirm your email address. After that, you can now easily invite users to join your server and your user's can register their account from a unique link sent from your server. User's can now use forgot password as well to change their password, without you having to change and send to them manually. Emails will not be sent if your server is not accessible to the web, instead a link will be generated in your Logs under Email Link.

If you are concerned about your email, please note, that our email service (gmail) automatically delete emails that flow through them immediately and is only accessible by myself. If you are not satisfied with this, we offer a separate service for the email, so you can use your own SMTP server. You can find details here. If you don't want that, you can either access and invite users when your server is not accessible to the web (aka localhost/internal ip) or change the email service to a bad url, which will always fail and use the fallback.

Next up is search and I have to give a huge thanks to @therobbiedavis who really polished the UI up quite a bit. Our search now searches against the metadata fields, like people, genres, tags, it can search against collections and reading lists and is still blazing fast. The UX has been really polished and should work well on even the smallest devices.

As an added bonus to this release, we have refresh tokens which keep you authenticated without you having to re-login and Tachiyomi progress syncing is done and a Pull Request is open to have Tachiyomi support us.

This has been another great release. The next 2 releases are planned with a focus on UX and the readers. It will take some time, please be patient, but I think the results will speak for themselves.

Added

  • Added: Added 'f' as keybind to toggle fullscreen on manga and book readers.
  • Added: Added Refresh Tokens. Users are issued tokens that last 14 days, just before the 14 days, the UI will request a new token to avoid having to re-authenticate.
  • Added: Changed the Dockerfile to include a health check to make sure Kavita is running smoothly.
  • Added: Added support for Tachiyomi to sync progress
  • Added: Added a new section to the dashboard that shows when new volumes and chapters are added to the library, providing more detail than just the Series itself (Recently Added Chapters)
  • Added: Invite users to your server through email and they can setup their accounts from the emailed link
  • Added: All accounts now must have an email assigned to their account and must verify said email.
  • Added: Added ability to reset password via email from login page.
  • Added: Implemented a new role 'Change Password'. This role allows you to change your own password. By default, all users will have it. A user can have it removed by an admin.
  • Added: Added a new activity stream on the dashboard which shows Recently Updated Series with a number badge showing the number of chapter/volumes added.
  • Added: Added the ability to search for metadata fields (people, genre, tags), series, collections, and reading lists. This also applies to OPDS where applicable.
  • Added: Added data collection on 2 new fields: NumberOfLibraries which will help for some upcoming design work and HasBookmarks, to see if other users are using this functionality and the scope of changes I can make to stabilize them further.

Changed

  • Changed: When migrations occur, create a temp/migration/version/kavita.db backup, attempt to run migrations and if any fail, restore the temp/migration/version/kavita.db backup and exit immediately with verbose logging.
  • Changed: Admins should have ability to delete a user's reading list (api only)
  • Changed: Moved calculation for getting the resume point to the backend
  • Changed: Removed showing toasts when series are added to the server since cards will show automatically.
  • Changed: Changed how Kavita finds the ComicInfo.xml to prefer top-level documents, which is the current way most tools work.
  • Changed: Series detail now will have dedicated tabs for Volumes and Chapters/Issues, in addition to Storyline (which is the existing view). Storyline is selected by default and has side-by-side grouping of volumes and chapters. Volumes shows just Volumes, Chapters/Issues shows just those underlying chapters, especially good for users with chapters grouped into volumes.
  • Changed: Added a spinner when epub reader is loading the book
  • Changed: Server settings is now next to progress button in header.
  • Changed: Admins can change an admin's username/role/library access.
  • Changed: Admins can remove another user's admin role.
  • Changed: Changed (you) to a star to indicate who you're logged in as.
  • Changed: Editing a user's role/library access is now streamlined.
  • Changed: (Performance) Put an optimization in refresh cover images to avoid 3 db calls.
  • Changed: Brand spanking new UX for search screen. Search will now open up the results in a modal like window, the search bar will grow to eat the rest of the screen width.
  • Changed: Tweaked the card design to help them standout better on dark mode.
  • Changed: Users can now user their own email service (docker) to allow them to use their own SMTP servers. By default, Kavita will use it's email service, which auto-deletes email records after sending, even on failure. No emails leave the user's install until an invite occurs, giving the user the opportunity to use their own service.
  • Changed: Changed the default margin on mobile devices for book reader to 5% to give a little padding from edge
  • Changed: On Bookmarks tab in user settings, the series name will now show the bookmarks and where the edit button is now a button to open series.
  • Changed: Changed how we delete a bookmark so the logic is more precise
  • Changed: On super small screens (less than 300px width), the server settings button will move under account dropdown
  • Changed: Webtoon reader will now hide all images until the first load is complete to avoid any layout shifting
  • Changed: Adjusted the rendering on reading list page to be better on smaller screens (and worse on larger ones). This will be addressed in UX release.
  • Changed: Bookmark file management now happens in real time for deleting files and no longer runs on a scheduled task.

Fixed

  • Fixed: Fixed an issue where the copy button wasn't working on the '3rd Party Clients' page.
  • Fixed: Fixed an issue where a user who's logged in but has download role removed and then tries to download a file, Kavita would allow the download as the claim was still present in their JWT.
  • Fixed: In directory picker, clear the filter when you load a folder
  • Fixed: EPUB parsing was missing setting the Day metadata tag
  • Fixed: Fixed the spelling of 'On Going' to 'Ongoing'
  • Fixed: Removed filtering button on Reading List page since it doesn't make sense
  • Fixed: Fixed a bug where the events widget was visible for non-admins
  • Fixed: Fixed an issue where the pagination would reset to 1 on the library-details page when refreshing or navigating directly to a specific page number.
  • Fixed: When normalizing series names, if the series has no alphanumeric characters (ie non-roman), return the original name back rather than empty string.
  • Fixed: When no user exists for an api key, throw a 401.
  • Fixed: Fixed a bug where users couldn't select a collection (via add to collection) when they had a lot of them.
  • Fixed: Fixed a bug where some covers would generate with green overlays and offsets due to an underlying bug in libjpeg
  • Fixed: Fixed a bug where marking a chapter as unread was actually marking it as read
  • Fixed: Fixed a regression when reading epubs, the last page wouldn't count it as totally read
  • Fixed: When deleting folders in bookmark cleanup, delete empty folders correctly
  • Fixed: When a new library is created, some cards wouldn't show the library name due to caching. Reworked the caching code to be lighter on memory and fix the issue as well.
  • Fixed: Fixed a bug where some book style overrides were duplicating. New logic targets only elements that really need the tag.
  • Fixed: Fixed a bug where Filter options were not in alphabetical order
  • Fixed: Don't throw an exception when we are trying to save progress and there is nothing new to save in manga reader
  • Fixed: Fixed a bug where checking for update did no validation if current version is already ahead/same before telling UI to open modal
  • Fixed: Fixed a bug where sort options were not working on all series page
  • Fixed: Fixed an issue when downloading bookmarks, sometimes a filename conflict can occur. Filenames will be prepended by chapter Id
  • Fixed: Fixed a bug where typeahead wasn't filtering as you type and was allowing multiple selection of same item
  • Fixed: Fixed an issue where download event wasn't sending consistently when downloading files leaving the progress widget showing something downloading indefinitely
  • Fixed: Fixed a bug in the webtoon reader where we were using the wrong dimensions for fitting images to screen
  • Fixed: Fixed a bug in Get Next/Prev Chapter, where chapters were not correctly between volumes and specials. They now behave correctly. The reading order is volumes -> Chapters -> Specials.
  • Fixed: Fixed a bug where tap to paginate in the...
Read more

v0.5.0 - Local Metadata Support + Tachiyomi Extension

18 Jan 23:29
7af39c3
Compare
Choose a tag to compare

It's been some time since our last release, so much so that I almost forget what v0.4 was all about. v0.5 is finally here and is the largest release so far with 32 features, 31 changes, 36 bugfixes delivered. Thank you for waiting and without further ado, let's get into it.

Local metadata is here and Kavita will now respect your metadata over your filenames and in addition, pull in all that data. You can now slice and dice against that metadata from collections and library detail to explore your data. In addition, some fields from EPUBs are mapped into a respective ComicInfo field, so book collectors rejoice, you can now sort by author.

In addition, we now have a Tachiyomi Extension! Starting with v0.5, you'll be able to hook up Tachiyomi with Kavita and start consuming content. While the extension is feature complete, we are still working on integrating progress sync for Kavita into the Tachiyomi application. This will come at a later date. Thank you to @ThePromidius for building the app and the discord testers for beta testing for the past month.

This release is so jam packed, it's hard to pick out some other really cool features. Some of my favorites are PDF rendering has been multi-threaded and is way faster, bookmarks are stored differently and now allow for you to see image previews and also not worry that the underlying image is changed when you swap out the file. We updated to .NET 6, which comes with a ton of performance improvements and we've reworked all the cache logic to ensure that we only open your files when something new has happened.

I want to give a special shoutout to @ChristofferGreen for again coming in and helping our downstream libraries get PDF support on ARM 64-bit machines and @ThePromidius for working extremely hard to build out a Tachiyomi Extension for Kavita.

Lastly, the next release will not be this big. This release was so large due to the scope of changes to support local metadata and the fact that I took a holiday in December. I have replanned the work for the year on the Projects tab, so take a look there if you're curious what is coming. Our wiki will have updated pages in the coming week with how all the new features work. If anyone is interested in helping with updating the wiki, please drop me a pm in discord.

Note: Docker images older than v0.4.4 have been removed. Please try to keep up to date.

Added

  • Added: The color theme (dark mode) will now tell the browser that the color scheme is dark and the browser can render the scroll bar a darker color. (#793)
  • Added: When a user is downloading files from Kavita, the events widget will now show those events (#806 )
  • Added: Version updates are now pushed to the events widget and allow the user take action from there (#806)
  • Added: Password requirements are now shown on register form in a tooltip (#804)
  • Added: Updated application to .NET 6 (#799)
  • Added: During Library Scan, Parser can now take information in ComicInfo.xml and Epub and use it for Series Name, Volume Number, Chapter Number. This will overwrite any information parsed out of the filename.
  • Added: Genres, People (Inker, Penciller, Editor, Artist/Cover Artist, Publisher, Writer, Letterer, Colorist, Character, Translator), Age Rating, and Tags are now extracted from ComicInfo.xml/epub files and related to both Chapter/Issues and Series. Series will be a summation of all genres/people on chapters/issues.
  • Added: Chapter Title can now be extracted and viewed on cards via hovering to see in tooltip or in the readers directly
  • Added: Sort Title will now be populated from books (no comicinfo.xml tag) if the tag is present in the epub and the book is not part of a series. (#817)
  • Added: AgeRating is now supported in Kavita. This is stored at both the chapter level and series level. Series level contains the highest (worst) rating of all the chapters
  • Added: ReleaseDate is now supported in Kavita. This is stored at both the chapter and series levels. At a series level, only the lowest year is stored representing the first release of the Series.
  • Added: Kavita now includes parsing support for European comics with Tome notation and HS identification. In addition, Br Fr will be cleaned out of titles. (#835)
  • Added: Tachiyomi now has a dedicated extension that works with Kavita. Requires Kavita v0.5+
  • Added: Ability to filter series from Library, On Deck, Recently Added by multiple fields, including: Genre, Format, Library, People (all people types from ComicInfo v2.1), Rating, Read Status, Collection Tags, and Tags
  • Added: Added support for ComicInfo v2.1 draft's Translator tag
  • Added: Added support for ComicInfo v2.1 draft's Tags tag
  • Added: You can now Sort by Sort Name, Created, Last Modified on screens that don't have existing sorting (ie You can't apply custom sort on Recently Added as that already uses a custom sort)
  • Added: New All Series page. This page will combine all series from all libraries in one page and let you apply custom filters on it. You can reach this page by clicking 'Libraries' on the home page
  • Added: Series can now be tagged with Language via ComicInfo and filtered in the UI.
  • Added: Added a re-occuring task to cleanup the Database of abandoned entities rather than doing the check exclusively after a scan.
  • Added: Ignore @Recently-Snapshot folders during scanning for QNAP devices
  • Added: PDF Rendering is now multi-threaded with a drastic speed up for those who are reading PDFs
  • Added: Implemented fullscreen mode in the readers.
  • Added: View bookmarks now shows the actual images due to new storage mechanism.
  • Added: Users can now reset their user preferences to Kavita Installation defaults in User Settings
  • Added: Before any database migrations run, Kavita will now perform a backup. The db itself will only be stored in temp folder and will be cleaned up the next day. If your application fails to startup, then stop Kavita, restore this db in config, and restart to try again.
  • Added: Added additional UI checks to ensure user is authenticated before loading sub-modules.
  • Added: Implemented Publication Status in SeriesMetadata and the ability to filter it. This is derived from Number and Count fields in ComicInfo.xml and will determine if a series is On Going or Completed.
  • Added: Added a tooltip to New Library modal to help explain what the different types do
  • Added: Added a exclusion to file scanning code to ignore .qpkg folders (QNAP users)
  • Added: You can now click on metadata tags from Series Detail and it will load up the search screen with a preset of said field
  • Added: Bookmarks are now backed up during backup procedures
  • Added: Delete Series will now send a UI event so series can be removed from client's UIs without refresh

Changed

  • Changed: Password requirements are now relaxed, only requiring 6-32 characters.
  • Changed: Metadata refreshing (cover images) now no longer uses a multi-threaded implementation. Due to the heavy I/O, this should not result in much performance decrease.
  • Changed: ComicInfo.xml will only be searched inside files with extension (cbz, cbr, c7, etc) to avoid extra time on files unlikely to have them in
  • Changed: Changed how metadata service selects the first volume to read summary info from. It will now select the first non-special volume rather than Volume 1.
  • Changed: Rewrote GetCachedPagePath() to be much more straightforward & performant.
  • Changed: When a card is selected for bulk actions, there is now an outline
  • Changed: From filename parsing, if a series starts with - or , Kavita will clean it out
  • Changed: Refactored natural sort order to behave closer to how Windows works. This should lead to better cover generation in more cases
  • Changed: Updated how EPUB Table of Contents are generated to handle some unique cases when Kindle packs the metadata
  • Changed: Refactored the UI to show OPDS as 3rd Party Clients since Tachiyomi now uses OPDS url scheme for authentication
  • Changed: Reduced the size of the unread badge on cards
  • Changed: New installs will start off with backups daily
  • Changed: Stack traces will be included with the error messages going forward (not exposed to UI)
  • Changed: Removed all Bitmap operations, which removes the need for libgdiplus to be installed on systems (linux/arm only)
  • Changed: Don't show an exception when bookmarking doesn't have anything to change
  • Changed: Refactored User Settings to move Password and 3rd Party Clients to a tab rather than accordion.
  • Changed: Reduced menu overlay auto close timeout to be 3 seconds
  • Changed: Overlay menus now have a blur effect (this is only on Chrome)
  • Changed: Paging direction overlay now shows arrows to help user understand which direction is next
  • Changed: Removed the color override options on manga reader
  • Changed: Bookmarks are now stored as files on the user's disk. They store the raw image from the archive/pdf/image. Due to this, we allow the user to change the bookmark directory to a custom. Do not place files in the bookmark directory manually, Kavita will delete them.
  • Changed: Updated Server Settings page to use 2 col for some rows.
  • Changed: Treat folders that start with ._ as blacklisted during scanning
  • Changed: Stack multiple user preference controls into the same row
  • Changed: (Performance) Implemented some optimizations to reduce the cover generation on second loads when files change
  • Changed: (Performance) Reduced the amount of redundant checks when processing files
  • Changed: Simplified the logic for when fit to screen rendering logic occurs. It works on all images not just cover images.
  • Changed: Parser will now clean titles by replacing multiple empty spaces with a single one. This occurs when a special keyword is being replaced from series name.
  • Changed: (Performance) Added a short circuit in CanOpen to check for rar files and force SharpCompress for deflating. This av...
Read more