Kavita

Kavita is a fast, feature rich, cross platform reading server. Built with 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.

GPL-3.0 License

Stars
5K
Committers
95

Bot releases are hidden (Show)

Kavita - v0.4.7 - Comic Rework

Published by majora2007 about 3 years ago

v0.4.7 is here with a large rework on how Kavita handles comics. Working with our community and some heavy comic rack users, we went to work building out the most common naming conventions. From testing for release, nearly all comics out of the box were matching correctly.

In addition, as is custom, quite a few other features made it into the release as well. The most important is a complete rewrite in how Kavita performs database updates in the Scan Loop. As mentioned in the last release, the performance improvements for memory was split into two parts, this release sees the completion of the second part. Kavita now breaks up work into smaller chunks and processes them. In addition, more pages will respond to updates from the Server, rather than making you refresh.

To wrap up, I want to highlight a few enhancements made that I think deserve a shout-out. First, we have support for half-volumes, a feathub request. Now you can have Volume 1.5 and Kavita will properly recognize and order it. Second, the book reader got some extra love and the resume feature that restores your last scroll position is now accurate to the line. Lastly, another feathub request has been implemented which is the ability to disable authentication for Kavita. You can disable the need to have passwords on your account for non-admins and login directly with your account.

Next up is an overhaul to the Search code to make it more flexible and cleanup a few bugs. Next release will be the last bite sized release before the first pass of metadata support.

Added

  • Added: When a library scan is in progress, show a spinner on the Manage Libraries page in admin dashboard (#607 )
  • Added: Added Last Scan on manage libraries screen to show when the last scan occurred.
  • Added: Collection Detail page will now automatically load series that are added in other screens without manual refreshing
  • Added: New setting to disable authentication on your Kavita instance. This opens you up to potential hacking or users logging into accounts they shouldn't. Use at your own risk. (#465)
  • Added: Login page will automatically fill in username based on last login on device
  • Added: (Parser) Added support for comics-downloader's default naming convention to parser: seriesname-chapterpadded.cbz (ex: spawn-023.cbz or spawn-chapter-023.cbz)
  • Added: Added the ability to have decimal based volume numbers, which are common in ebooks or comics as interlude volumes. (#622 )
  • Added: Manage Libraries tab in admin dashboard will now show a spinner when a library scan is in progress. Hovering over spinner shows when the scan started. Afterwards, the Last Updated will update.
  • Added: When an OPDS collection is empty, we now send an Entry saying 'Nothing here'
  • Added: Added parsing for multiple keywords for comic specials (OneShot, Book, Compendium, Omnibus, TPB, FCBD, Absolute, Preview).
  • Added: (Parser) Expanded parser for comics to include many more common naming conventions, including those used by ComicRack users.
  • Added: Scan Series, Scan Library, and Refresh Metadata now all use chunking to perform the main work. Each series is still parallelized, but only X entities are loaded into memory at once, significantly reducing memory consumption (1GB (old) vs 200MB (new) on 12k files) (#167 and #604)
  • Added: UI will now show toasts when new series are added to Kavita
  • Added: UI will now update on library detail view with new cards when they are added to library
  • Added: We now publish some API docs on api.kavitareader.com. These are read-only, to use and test with Swagger you still need to run a local instance.

Changed

  • Changed: When a user attempts to refresh metadata from UI, warn them that this is a heavy call and a scan library is likely the better option (#601)
  • Changed: Docnet has been updated to latest release, which includes our contributions for ARM support. Pi users no longer need to copy the library file in manually for PDF Support (#468)
  • Changed: Parser now uses culture invariant regex matching to hopefully help with very unique edge cases on Italian systems.
  • Changed: New design for the Login screen to support disabled authentication. Now the login screen will show all user names on your instance and you can click to login. If authentication is disabled, you do not have to type a password assuming it is a non-admin account. Admin accounts still require authentication. If authentication is enabled, the login screen will be similar to existing with just some UX changes.
  • Changed: Removed extra language binaries on build. This removes ca, fr, zh, etc folders reducing build size.
  • Changed: Usernames and library names on cards now use sentence case. Capitalizing at least the first character.
  • Changed: When flattening directory for caching, force the order of directories based on natural sort. Some users OS were giving different order in some rare cases.
  • Changed: Hashing for images now takes into account the last time it was modified, so browser doesn't cache old entries. This usually affects when files inside an archive are modified and re-read. (#631)
  • Changed: + is now allowed in normalization scheme. This allows series that use + as a way to denote sequels to not merge with their prequel series. (#632)
  • Changed: We can now parse the full comicInfo.xml to spec from archives and emulate the fields of comicinfo from epub files. (this is foundational work, does not change how Kavita works)
  • Changed: Removed Sentry from Kavita. It was no longer providing useful debug information (#629 )
  • Changed: Book reader now has pinpoint accuracy in remembering the last line you were reading.
  • Changed: Book reader's side drawer and action bars are now a darker shade of black to help them stand out from the reader (dark mode only)
  • Changed: Removed the ability to Save to User preferences your book settings. This was causing more confusion than benefit.
  • Changed: Cleaned up the book reader's UX by applying shadows around some of the menu components and buttons
  • Changed: Changed pages throughout the app to show 'Issue' instead of 'Chapter' for Comic libraries.
  • Changed: 'Volume/Chapters' to just be Chapters (or Issues if comic library, Books if Book library). This naming convention is applied throughout the application.
  • Changed: Removed parser support for '01 Spider-Man & Wolverine 01.cbr'. This is a poor naming convention and is conflicting with valid cases.
  • Changed: Changed Save to Defaults on light mode to be a primary button on Book reader side nav
  • Changed: On Book reader, inform the user that pressing save is not required for changes to take effect and that margin will be reset if they are on mobile.
  • Changed: Automatic Scaling on the Manga reader will now self-adjust after one image load occurs (non page spread) and will take into account image dimensions for choosing a better fitting option.
  • Changed: (Performance) Changed some code to avoid a byte[] copy for getting cover image of epubs
  • Changed: Scan Library and Refresh Metadata now saves to DB in Chunks meaning you don't have to wait for whole Library Scan to start using Kavita
  • Changed: Added more checks in the Scan Series loop to ensure that we never go above the library root for handling an edge case where files are super poorly named
  • Changed: Log messages in Scanner Service or Refresh Service will now have the service name in [] and are more verbose to give indication of what's happening.
  • Changed: Changed how selection works on mobile to be less eager to trigger on mobile devices. Mobile now will allow a certain amount of time to pass. If you change scroll at all, the selection code will not trigger. (#606)
  • Changed: Don't force title case for library name and user names. They will now capitalize the first letter and leave the rest as is.

Fixed

  • Fixed: Fixed an issue where trying to read in incognito on a volume consisting of multiple chapters could grab the wrong chapter (ie chapter 3 instead of chapter 1)
  • Fixed: Carousels should be back to normal now on mobile devices. Don't process touch events when selection is disabled. (#617)
  • Fixed: Fixed an issue where marking multiple items as unread would render them as read on the UI.
  • Fixed: User last active time now shows time
  • Fixed: Manga Reader's Up/Down mode was having the wrong click direction. Up should go back a page, but in previous code was going forward.
  • Fixed: Fixed a bug where we would reset dark mode on the book reader to dark mode if our site was on dark mode, despite user setting light mode. (#633)
  • Fixed: Scan Series when nothing was updated in DB could skip kicking off a refresh metadata
  • Fixed: After library scan, cleanup old Collection tags that have no series left
  • Fixed: Fixed a small gap difference on the pagination bar in book reader drawer.
  • Fixed: Next button doesn't properly show disabled state after no next chapter is found in book reader
  • Fixed: Next button sometimes shows double arrows (load next chapter) when there are more pages to read in current chapter in book reader
  • Fixed: Fixed padding issue causing the appearance of a block above the book reader's bottom navigation bar
  • Fixed: Fixed a bug where the full file name (including file extension) was being considered for parsing as the series name for specials, rather than just the file name without the extensions
  • Fixed: Implemented parser support for '2000 AD 0366' (#649 )
  • Fixed: All tasks now reflect the user's timezone rather than in UTC (#651)
  • Fixed: Fixed a bug where deleting items from a reading list would not actually delete them
  • Fixed: Fixed a bug where we didn't save a file's last write time in the DB so we ended up opening files for page calculation each time.
  • Fixed: Fixed a regression from last release where Scan Series could fall into scanning higher level folder (root folder) due to files being deleted rather than original case of files being really poorly named.
  • Fixed: Fixed a concurrency issue with natural sorted when used in ArchiveService.
Kavita - v0.4.6 - Reading Lists

Published by majora2007 about 3 years ago

This was supposed to be a small update to add reading lists, but I got carried away again. Instead, while you still get reading lists, you also get a TON of performance improvements, and UX enhancements across the board.

So what are Reading Lists? Reading lists are an order list of chapters that you have complete control over. Great for things like story arcs between multiple series, series that have unique names to read the full arc, or just a way to collect new chapters on your server to read them in one sitting. What's great about our reading lists is you can read through them in the order you defined without closing the reader. This means that once you start reading, even if the first item is a manga and the next is a book, Kavita will handle all that transition logic for you, so you just get the no distractions experience.

Next up is the performance improvements, where I wanted to tackle the memory usage in Kavita. I've planned to do this in 2 passes and what you're seeing now is the first pass. Every API in the system was looked at and optimized for speed and memory pressure. The goal was to reduce the amount of memory used while speeding up how fast Kavita processes items. This lead to changing how we handle cover images resulting in huge gains in memory pressure, but also slightly slower scans and a large migration off the bat. If you have a large library, the first run will be slow as we migrate the cover files to the new storage system. If something goes wrong, a simple scan will fix everything.

This was a really fun release tackling a lot of fun projects, like continuous reading in the webtoon reader and book reader, the performance optimizations, and the multi-selection functionalities. It is jammed pack full of new stuff not mentioned (like WebP support) in the opening post. Next release is focused on our Comic users, with a complete overhaul of the comic parser along with some further enhancements to reading lists and performance.

A few off topic notes:

  1. Pi users rejoice! @ChristofferGreen worked with our downstream libraries to add support for Pis. This release will now support PDFs for you. You may need to manually install libgdiplus on your system.
  2. Panels users (iOS OPDS app), will soon be able to interact with Kavita via OPDS. The developer has reached out to me as of this post date that Kavita is now fully functioning on their app and will be out in the next release.

Added

  • Added: New reading mode called Incognito. Can be activated from a volume or chapter and persists during continuous reading. When this mode is activated, progress will not be saved to Kavita, allowing you to read a few pages before you decide to track progress. When Incognito is activated, a glasses icon will appear in the reader next to title. (#545)
  • Added: Reading Lists can now be created by adding any series, volume, or chapter to an existing or new reading list. Lists can be promoted so all users on the server can read them (RBS still applies, like collection tags). You can read through a reading list (continuous reading support), remove all read items in bulk, and order your items however you want with drag and drop. (#268)
  • Added: Continuous Reading for books! Books when on first or last page, will now show a double arrow to indicate that you can move to the next book (if it's in that series).
  • Added: WebP support (within archives or raw images). This will work with all browsers except Safari on MacOS < Big Sur 11. Those users will need to use a different browser.
  • Added: Continuous Reading between different readers! What if you have a reading list of mixed media, some archives and some epubs? No problem, go ahead and press read and the readers will make sure to move you to the correct ones without leaving the reading interface.
  • Added: OPDS support updated with Reading Lists
  • Added: Added a parser case for 'Series - - Vol. 03 Ch. 023.5 - Volume 3 Extras.cbz' which is a common name from FMD2
  • Added: Added dedicated buttons in book drawer to jump to previous/next chapter
  • Added: Added the ability to use continuous reader with webtoon reader without having to open the menu. When you scroll to the top and bottom, a new section will insert prompting you to scroll into the space to trigger the next or prev chapter load. (#565)
  • Added: In manga reader, added the ability to press 'b' to bookmark/unbookmark a page. (#571)
  • Added: Added a case for 'A Compendium of Ghosts - 031 - The Third Story_ Part 12 (Digital) (Cobalt001)' to be less aggressive in consuming characters until the number.
  • Added: Added parser case for 'The Duke of Death and His Black Maid - Ch. 177 - The Ball (3).cbz'
  • Added: Added a way for external scripts to use a user api key to authenticate (this essentially allows 3rd party scripts to interact with Kavita).
  • Added: Implemented the ability to automatically refresh the web browser after a series scan based on when server finishes. This will push the event to the user and if they are on series detail, the page will automatically update to reflect new status on backend
  • Added: Added many more manga and comic parsing cases which leads to catching more file naming conventions
  • Added: When you cross a chapter boundary via continuous reading in book reader, a toast will show up
  • Added: Added parser case for 'Chapter 63 - The Promise Made for 520 Cenz.cbr' where regex was consuming too many characters
  • Added: Admins can now see themselves in the manage users page. No operations are still possible on your current account, create a secondary admin if you need to modify your permissions.
  • Added: Added some messaging when you are trying to add a user to a library but haven't setup any libraries yet.
  • Added: Added parsing case for 'Batman Beyond 04 (of 6) (1999)' to properly parse out chapter as 4.
    Added: Added the ability to perform certain operations on multiple items in one go. For example, you can select volumes 1-10 by clicking volume 1, holding shift then clicking volume 10 and clicking the new bulk operations bar that pops up and marking as read, marking as unread, or adding to a reading list. Integrated on library detail, collection detail, and series detail page. (#549 )

Changed

  • Changed: (Performance) Huge performance improvement to GetChapterIdsForSeriesAsync() by reducing a Join and iteration loop. Improvement went from 2 seconds -> 200ms.
  • Changed: (Performance) Updated all APIs to use a lighter, faster GetUser call to minimize extra memory pressure where not needed.
  • Changed: (Performance) Refactored the performance of GetChapter/BookInfo API to have a 10x speed improvement and to use common code, rather than duplicating code. This should speed up initially opening a book or manga for reading. (#563 )
  • Changed: (Performance) Speed up SaveProgress from 50ms -> 10ms on average.
  • Changed: (Performance) Speed up GetNextChapterId/GetPrevChapterId from 1.2 seconds on average -> 400ms.
  • Changed: (Performance) Refactored OPDS to use faster API lookups for User
  • Changed: (Performance) Removed 2 stream copies (stream copy + array copy) for SharpCompress archive cover image code and for PDF page extraction, further reducing unnecessary memory pressure.
  • Changed: (Performance) Refactored GetUserByUsernameAsync to have a new flavor and allow the caller to pass in bitwise flags for what to include. This has a get by username or Id variant. Code is much cleaner and snappier as we avoid many extra joins when not needed.
  • Changed: (Performance) Performance improvement on metadata service. Now when we scan for cover image changes, we emit when a change occurs and only then do we update parent entities (array copy)
  • Changed: (Performance) Implemented ability to send images from archives to the UI without incurring any extra memory pressure.
  • Changed: (Performance) Huge updates to metadata refresh. On 650GB, 12k file DB, metadata refresh now only takes 2.2 seconds to check all files to updates to cover images, summary, etc.
  • Changed: (Performance) Removed some duplicate API calls from series detail page
  • Changed: (Performance) General performance tune ups throughout the code averaging 1-4x speed ups.
  • Changed: (Performance) Cover Images are now stored on disk in the covers/ directory. On first run, existing covers will be migrated from the DB to disk, which can take up to 20 mins depending on side of library (20k files took 20 mins). This change significantly decreases memory usage during scanning and during serving cover images without any degradation in experience.
  • Changed: Added some extra help information for users on directory picker, since linux users were getting confused (#559)
  • Changed: After adding a new library, we now show a toast informing user a scan has been scheduled (#542)
  • Changed: (UX) Changed the design of accordions to match more of my style, with dedicated chevrons (#543)
  • Changed: (UX) Home page now has libraries at the bottom and tag list to quickly jump between Home, Lists, and Collections
  • Changed: (UX) Updated tabs to use a pill shape, rather than normal tab set (#551)
  • Changed: (UX) Cleaned up some extra spaces when actionables (overflow dots) isn't shown to the left of titles.
  • Changed: In webtoon reader, when you hit end of the scroller, we will automatically force the last page to be read.
  • Changed: Upon moving between chapters in continuous reading, a toaster will inform you of the transition.
  • Changed: Removed a lot of Volume parsing for Comics that don't make sense
  • Changed: Reworked a lot of parsing cases for comics based on naming conventions observed from releases found online.
  • Changed: Tweaked a lot of regex for manga parsing to handle some cases where poorly named files, like 'Vol. 03 Ch. 21' would end up parsing as Series 'Vol. 03'.
  • Changed: Dropdown menus now have a darker background
  • Changed: Fixed how keyboard presses for up/down/left/right work with MANGA_UD reading mode. Up/down only work when using Up/Down mode. (#579)
  • Changed: All sliders in the app (user preferences) now use the same style
  • Changed: Auth guard will now check if an existing toast is present giving same message before popping the toast.
  • Changed: Moved sorters so they aren't reused between multiple threads. Slightly higher memory footprint. There was a rare exception thrown in the sort code due to concurrent access.
  • Changed: Tabs within modals are now vertical, unless you are on mobile (#552)
  • Changed: Updating wording on card items when total pages is 0 to be 'Cannot Read' since it could be a non-archive file.
  • Changed: After a library scan, only cleanup cache directory and leave a full cleanup for scheduled tasks
  • Changed: After we scan library, do one last filter to delete any series that have 0 pages total.
  • Changed: Series detail will no longer use gutters for card layout to render slightly better on mobile

Fixed

  • Fixed: Fixed a bug where marking as unread on a Volume would actually call mark as read instead. You can now mark a volume as unread.
  • Fixed: Fixed a bug where pressing save on edit series modal could clear out tags if you didn't interact with tags, like just updating cover image (#561)
  • Fixed: Fixed an issue where cover image generation was failing to pick the correct file under rare condition (#491)
  • Fixed: Fixed up the parser for 'Kimi no Koto ga Daidaidaidaidaisuki na 100-nin no Kanojo Chapter 11-10'
  • Fixed: Ensured we delete bookmarks and reading list items when chapters are deleted (#566 )
  • Fixed: Series cover image no longer stretches on larger screen resolutions. (#572)
  • Fixed: Fixed 'Could not save progress' errors spamming when reading on webtoon reader. (#570)
  • Fixed: Fixed an issue in webtoon reader when we'd load a totally read chapter, we'd actually load second to last page
  • Fixed: Fixed an edge case where when tap to paginate was on in Book reader, the reader might look at those elements for saving last scroll position
  • Fixed: Fixed an edge case where when tap to paginate was on in Book reader, the reader might look at those elements for saving last scroll position
  • Fixed: Fixed 'Could not save progress' errors spamming when reading on webtoon reader. (#570)
  • Fixed: Fixed an issue where the scanner when parsing files could throw an exception when a series was deleted but still tried to update volumes for it (#558)
  • Fixed: Fixed a bad parser case for 'Batman Beyond 02 (of 6) (1999)' which was consuming too many characters
  • Fixed: Fixed an issue if the manga only had one page, the bottom menu would be missing page and chapter controls.
  • Fixed: Fixed a bug where on small phones, nav bar could overflow due to scroll to top
  • Fixed: Don't force metadata refresh on Scan Series, only on refresh metadata
  • Fixed: Fixed a bug when really poorly named files are within a folder that contains the series name, fallback couldn't occur due to it being taken as root folder and would delete the series. Now we detect said condition and will go one level higher, resulting in potentially more I/O, but the series will not be deleted.
  • Fixed: Added the Read in Incognito context item for Chapter cards
  • Fixed: Fixed an issue where cover image generation could occur due to a bad check on LastWriteTime on the underlying file.
  • Fixed: (Webtoon reader) Ensure prefetching uses totalPages + 1 since we pass in totalPages as - 1 from manga reader
  • Fixed: (Webtoon reader) Fixed issue where last page of webtoon wouldn't be prefetched due to a < instead of <= on prefetching code
  • Fixed: Fixed an issue where after opening a volume's info modal from series detail trying to open a chapter info modal, it wouldn't work
  • Fixed: Fixed an issue in which & in folder names wouldn't show nested folders. (#593 )
  • Fixed: Fixed an issue where changelog in system view would show previous versions as 'available' even if you were on a latter release.
Kavita - v0.4.5 - OPDS Support

Published by majora2007 about 3 years ago

OPDS support is here! This has been a hot ask from many users and we have delivered. Admins can now enable OPDS for their server and users can grab their own OPDS url from User Settings. If users are using a client that supports OPDS-PS (page streaming) then their progress will be recorded on Kavita (Currently only chunky for iOS supports this). In addition we support Open Search out of the box, for clients that support searching, you can do full text searching just like on Kavita.

In addition we fixed a rare case where stat collection would take up resources or timeout when our hosting would go down, locking up your system. Even if disabled, the collection code ran (but it wouldn't send it out) and could block the main thread. This has been resolved. If stat collection is disabled, nothing will run and in cases it is enabled, it is all done in a separate thread.

Added

  • Added: OPDS with Open Search and Page Streaming support. This must be enabled at the server level for any feeds to work. Disabling it will instantly stop serving any feeds. Page Streaming means you can stream one page at a time and will capture progress. See our wiki for how this works. (#526)
  • Added: API key for users. In order for users to use OPDS, they must use a uniquely generated OPDS Feed url generated for them. This uses an API key, which acts as a password for the user to load up their libraries, etc. (#526)
  • Added: Timeout added for Stat collection. After 30 seconds, fail the stat collection and try again the next day. (#526)
  • Added: (Parser) Added support for MangaPy's default naming convention to parser: vol_001-1.cbz (#538)

Fixed

  • Fixed: Fixed an issue with ordering of chapters within a volume for selecting first cover image. (#524)
  • Fixed: Fixed an issue where when new files were added, the Series cover wouldn't be set due to a logic miss when changing cover generation code from last release. (#527)
  • Fixed: On desktop devices, when reading with fit to width or original, next page wouldn't reset scroll position. (#535)

Changed

  • Changed: Stat collection now runs in a separate thread and will not block startup. Checks for if stat collection is enabled will now occur in more places to ensure extra work takes place if it's not enabled. (#534)
  • Changed: (Accessibility) Updated Server Settings and User Settings to handle better on screen readers (#352)
Kavita - v0.4.4 - Bookmarks, Custom Cover Images and Polishing

Published by majora2007 about 3 years ago

v0.4.4 is here and is a mixed bag of new features, fixes, and polishing changes. A lot has happened during this release, it's hard to get started.

Up first is Bookmarks, a feature I've been wanting to build out for a few months now. Bookmarks let a user tag pages during reading and later download them for the whole series. You can see how they work on the wiki

Next, we have Custom Covers for Series, Volumes, Chapters, and Collections. Admins can now upload custom cover art for these entities which will lock in place and stick around until they are reset or changed again. See our wiki on how to get started.

Following Custom Covers, it would be really cool if we could actually see the covers for collections when looking at the series in said collection. Well fear not, this update contains just that! We've updated to our first pass of the Collection page redesign which now lets you see the cover art up front and the summary if you've added one. We also expose filters for the collection so you can quickly use the same filters for your library view.

Our last big feature is the ability to check for updates from within the app itself. You can visit the System tab itself to view information about your install and see if there are any updates, or you can view the change log to review all the published stable builds. I know it's not auto updating, but it's the first step getting there.

There are a lot of other changes throughout Kavita, like our completely new download handler, performance improvements in the scanner, or the small polishing stories like auto focusing on username on login page. We hope you enjoy this release.

Going forward, releases will target one big feature and bugfixes or smaller changes. This will allow for us to deliver faster and have to spend less time on testing. Next up, OPDS support!

Added

  • New button in manage server to manually create a backup of DB (Fixes #322)
  • ._ files are now ignored from all I/O operations. This means they will not be considered when scanning a library, for cover generation, or even for comicinfo.xml selection (if you have ._comicinfo.xml and comicinfo.xml, the latter will be picked) (#440)
  • Added 'In Progress' page to see everything you are currently reading (#442)
  • Added the ability to filter series based on format from In Progress, Recently Added, Library Detail, Collection Detail pages. (#442)
  • Added total items to the above pages to showcase total series within Kavita (#442)
  • Kavita is now an official app on the Unraid software store (#429)
  • Ability to check for updates (stable-only) and be notified with a changelog. (#464)
  • Added the ability to bookmark certain pages within the manga (image) reader and later download them from the series context menu. (#469)
  • Cards when processing a download shows a spinner for the progress of the download (#483)
  • Added the ability to customize cover images on Series, Volumes, Chapters, and Collections. The new form allows you to drag and drop, upload a file from PC, or paste a url in. You can reset the cover image and it will refresh from the source files. The images after the user has uploaded is locked in place, refreshing metadata will not change the cover image. You must use the form (or API) to perform the reset action. (#499)
  • Added new code to remove any user progress items after a series is deleted from DB. (#507)
  • Added new code to remove collection tags after all series are deleted that had said tag (#502)
  • All users can now view info about a volume/chapter. From the Chapter modal, chapters bundled into a volume can be read by clicking on the image, marked as read/unread, and reading progress can be seen.
  • Added System page in admin dashboard to see current version, OS information, and links to all Kavita resources.
  • Added a section in User Settings to show all bookmarks for all series you have saved bookmarks to. You can clear them, view individual chapters, and download whole series bookmarks. (#508)
  • Added a new tab to Admin dashboard to show all releases (changelog). The release that is installed will be denoted by a tag badge. (#511)

Fixed

  • Fixed an issue where marking a series as Unread when the DB gets skewed with duplicate progress rows for that item, would break. Now we cleanup any extra rows we see during the operation. (#435)
  • Pagination is now slightly smaller (only 8 pages) as on mobile, it was cutting off screen. (#447)
  • Fixed an issue in In Progress where it would not pull the series with correct pagination due to the unique situation with the query. All series that are in progress should now return. (#452)
  • After marking something as read/unread or changing name on series, the in progress/recently added cards don't refresh
  • Fixed an issue where after adding a new folder to an existing library, a scan wouldn't be kicked off (#469)
  • In some cases, after clicking the background of a modal, the modal would close, but state wouldn't be handled as if cancel was pushed (#469)
  • Fixed an issue where some series (usually pdf or image) would get deleted and recreated during library scans, thus keeping them always Recently Added (#470)
  • Saving reading progress can duplicate rows which causes the chapter unable to be read unless DB modification was done. This fix will ensure in race conditions that only 1 row is ever created. For existing issues, we will always grab first row. (#507)
  • Concurrency checks in the DB were not fully implemented. No user facing changes. (#507)
  • Card items will remain the same size regardless of read status (previously 5px off) (#507)
  • Fixed an issue where kicking off refresh metadata from Series in UI was calling wrong API and a refresh metadata was being done for the whole library rather than just for the individual series. (#512)
  • Fixed a case where during refreshing metadata, volumes would re-run cover generation again, after it had already been done. (#512)
  • Fixed an issue where a check to see if the underlying file had changed since we last scanned was returning true when it shouldn't have. This should reduce I/O on refreshing metadata. (#512)

Changed

  • (Performance) Added the ability for epubs to cache, allowing faster page load for users with network mounted storage. (#433)
  • Suppress max page error on bookmark api and just adjust the pages for the user. (#445)
  • During library scan and series updates, Series names for Epubs will now trim excess white space (#447)
  • Log files now roll (kavita, kavita1, etc) up to 5 files, each with a max of 10MB each. After all 5 files fill up, they will roll over. (#448)
  • Moved the server actions into a dropdown as there were too many buttons on screen for mobile devices (#464)
  • On load of Login Screen, auto focus the username field
  • Admin contextual actions on cards will now be separated by a divider to help differentiate. (#469)
  • Performance enhancement on an API used before reading (#469)
  • When calculating unique filetypes used within Kavita instance, use lowercase so CBZ and cbz don't count as duplicate entities before sending to KavitaStats. (#470)
  • Downloads now always take the backend filename and are streamed in a more optimal manner, reducing the javascript processing that was needed previously. (#483)
  • When a file is being cached before reading, if there are any errors, delete the cache directory so next try can occur. (#499)
  • Brand new Collection detail page by splitting into dedicated page and giving the user the opportunity to view the summary information around it. (#500)
  • When the route changes, any open modals will dismissed (#501)
  • User Settings now is within a lazy loaded module. This reduces the load time for the home page slightly. (#508)
  • User Settings now uses tabs for the newly added bookmarks (#508)
  • Profile links (top right) are now anchors, so you can open in a new tab if you so want to (#511)
  • If you have image files that are named cover|folder.ext in your library, they will now be ignored (#513)
Kavita - v0.4.3 - Webtoons, PDF, Mixed Media and a Wiki!

Published by majora2007 about 3 years ago

v0.4.3 is out and it's action packed. What was supposed to be a small update for the dev team to get our build system in order turned out to deliver some huge wins for Kavita.

First up is the new Webtoon Reader mode for Manga/Comic reading. This mode can be activated by clicking the reader mode in the menu. In webtoon mode, you scroll constantly through the pages. Like always, page progress is tracked and we deploy a custom buffing scheme to make it fast and performant, even on mobile devices. Some options in the reader are not applicable under the webtoon reader, like page splitting or fitting, so they will be disabled.

Next up, mixed media libraries. Have you ever had your Light Novels and your Manga and wanted to have them in the same library? Well now that's possible. Going forward, a library is more just a grouping of media. You can have different media types (like epub and cbz) and they can sit next to each other in the same library. Icons will show next to the series name to help you understand that one is a book and one is an archive file.

And lastly, we have PDF and raw image support. PDF support allows for you to read your PDFs within the manga/comic reader. We tried our hardest to provide a more book-like experience, however, PDF support is pretty limited for these functionalities. Raw image support is another new functionality where you can have loose leaf images that behave just like normal archives. There are some best practices to make the images easy to read, see the following:

└── Manga 2
    └── Vol. 1
        └── Ch.1 - Ch.3
            ├── 1.zip
            ├── 2.zip
            └── 3.zip

We also now have a Wiki, which is still a Work in Progress, but has a ton of information to help you with some questions and best practices. If you are interested in helping us build this out, drop us a line in our discord.

There is a ton more to this update, but before we get to it, I want to give a shout out of thanks to those who have donated to us, which are helping us pay for the hosting on our demo, our site, and our stats server. Thank you Allen Sampsell, Aleksey Gring, and H4v3n for your generous donations. The Kavita team appreciates it.

Added

  • Webtoon Reader mode is here. You can now read webtoons (or manga) by solely scrolling. Progress is kept and you can switch to/from it as a reading mode within the Manga Reader (#392)
  • Added support for PDFs within Kavita. PDFs will open in the Manga reader and you can read through them as images. PDFs are heavier than archives, so they may take longer to open for reading. (#187)
  • Raw Images (Manga/Comic) library types are here. They support loose leaf images within a folder. It is advisable to put a second folder named Volume 1 so the files group as one volume, otherwise they will all be separate specials, not fun. (#375)
  • Added a server admin about tab with information about current version and links to discord, github, donations, etc (#391)
  • Added iOS and Android icons when saving the page to your home screen (#356)
  • Added Library-based action menu to the Library view. You can now scan from the library page without having to go back to dashboard (#363)
  • Added Scan Series. From the series actionable menu, instead of scan library, which would kick off a filesystem scan on the library the series belonged to, instead we have "scan series" which will scan the folders represented by that series. If that series has files in the root of the library, the library root is scanned, but only said series files will be processed. This can make a refresh occur in under 500 ms (#371)
  • (Parser) Added an alternative, folder-based parsing scheme that should help users with Comic or Ubooquity based naming. Can now also check for folder structure like the following (#313):
└── Manga 2
    └── Vol. 1
        └── Ch.1 - Ch.3
            ├── 1.zip
            ├── 2.zip
            └── 3.zip
  • (Parser) Added parser cases for naming conventions FMD2 uses, including Vol.tbd (#361)
  • (Stats) We are collecting a few new pieces of information for those that are allowing anonymous stat collection. We have added if you are on docker, if you are using the dark mode, and the number of cores. Please remember this data is anonymous and not tie-able back to you. You can inspect what we collect here. (#407)
  • (Accessibility) Nearly every page has had a title set for it (#422)
  • Added a new button on admin dashboard to clear cache for the whole server (#428)
  • Added Timeout for Regex matching to ensure malicious filenames don't crash system

Changed

  • Major change in how Kavita libraries work. Kavita libraries will now allow for mixed media types, that means you can have raw images, archives, epubs, and pdfs all within your Manga library. In the case that the same Series exists between 2 different types of medias, they will be separated and an icon will show to help you identify the types. The correct reader will open regardless of what library you are on. Note: You might have a lot of random series if you have images floating in your folders. (#416)
  • Long running API requests like Mark as Read on a series card now disable the buttons until the request finishes (#381)
  • When navigating to a url and being redirected to authenticate, Kavita will attempt to redirect after authentication to the original url
  • Updated a few locations to redirect users back to library path instead of home, to prevent a back loop
  • Refactored how downloading works on the UI side to use the backend's filename whenever possible, else provide a custom name (and use backend's extension) for bundled downloads. (#405)
  • For Specials, Get Next/Prev Chapter should use the filename instead of arbitrary Number (which is always 0). Use the same sorting logic when requesting volumes on series detail, so sorting can happen in the backend. (#422)
  • Moved the download logs to the new System page (#428)

Fixed

  • Fixed a bug where certain titles could loose custom name overrides after a scan (#384)
  • (Parser) Fixed a bad parsing case for "Series Name - Vol.01 Chapter 029 8 Years Ago" where somehow the chapter would parse as "029 8", thus making the file a special rather than chapter 29.
  • When viewing a volume's files from a card's action menu, files were displayed in an arbitrary order instead of the reading order. This applied only for Specials and Raw Images. (#378)
  • Fixed a bug with reading order when you have a volume file and chapter files bundled in one virtual volume, the continuous reader would not be able to navigate through them properly (#380)
  • When server connection was lost and restored, the no connection page did not restore you to your previous page (#379)
  • After creating a new user, the Last Active would show "01/01/0001" to denote never active, now "Never Active" will show (#376)
  • (Manga Reader) Fixed an issue with Manga reader where every 7 pages a hard request would be made (and thus a loading indicator). Now pre-fetching works much better and loading indicators should almost never be seen. (#372)
  • (Book Reader) Fixed an issue where Book Reader would not properly save the last position when a book didn't have a Table of Contents, even though it should regardless of Table of Contents (#360)
  • (Book Reader) Fixed an issue where Book Reader wouldn't let you click on anchors in the page, when "Tap to Paginate" was on (#364)
  • (Book Reader) Aligned the cover overlays for where to click for Tap to Paginate to the same colors as Manga Reader (#365)
  • (Parser) Special Markers were taking series name parsed from filename which was unreliable. Instead, it will attempt to parse it from folder name (till library root). i.e) /manga/Hippos Attack/Specials/Artbook SP01.cbz -> Series name: Hippos Attack (#359)
  • Fixed an issue where after adding a collection tag to a series, upon closing the modal, the underlying page didn't reflect the new changes (#393)
  • Fixed an issue when the series detail thumbnail was too long it would push down the Volumes/Specials selection (#412)
  • After adding a role to a user, ensure the screen updates immediately (#413)
  • Fixed a bug where epubs would download as zip files instead of their native extension (this also applies to Manga/Comic libraries) (#399)
  • Fixed an issue where checking if a file was modified since last scan always returned true, meaning we would do more I/O than was needed (#415)
  • There wasn't enough spacing on the top menu bar on the Manga reader (#416)
  • Fixed a bug where user preferences dark mode control always showed true, even if you were not using dark mode (#416)
  • Fixed a bug where a forced metadata refresh wouldn't trigger a volume to force a refresh of cover image (#422)
Kavita - v0.4.2 - Downloading and Redesigned Manga Reader!

Published by majora2007 over 3 years ago

Welcome to v0.4.2! This release we saw 2 new developers join on and help in closing issues and building new features. This release also is home to a complete redesign of the Manga/Comic reader, the ability to download files from the UI, tons of parsing enhancements around specials and book grouping, and more user experience enhancements.

In addition to the action packed change log, we have added a new service to our mix. First, our website is now hosted at kavitareader.com instead of the previous github.io url. We now have KavitaStats, which is our way to collect anonymous install data to help us better understand our users. We collect important information like version of Kavita you run, types of files you use Kavita with, your OS, and your culture. There is no way to tie this data back to the end user. You can opt out under server settings.

We have a demo available! Want to try before you download? Then try out our demo. You can find the link and username/password on our readme.

We are now on Open Collective if you want to sponsor or donate to the project. Open Collective allows for transparent accounting around where your money is going to. Donators will now show on the Readme. We appreciate any support.

Added

  • Added a filter to the Directory to quickly filter folders and made the folder list scrollable rather than scrolling the whole body of the modal
  • Added ability to change the port Kavita listens on from Admin page. Requires server restart to take effect.
  • Added ability to change logging level from the Admin page. Requires server restart to take effect.
  • Library type and number of folders shared is now visible on Manga Libraries page
  • Ability to download your files! This role must be assigned to users, it is not enabled by default. Will automatically zip up if there are multiple files. Can download individual volume/chapters or whole series.
  • Added a way to force Kavita to treat a file as a "Special" by using SP##, where # is a number in the filename.
  • Added rel="norefferrer" on all links within a user's epubs to prevent tracking
  • Book Series grouping is now supported
    • Epub 3.2's can now use belongs-to-collection tag to group books into series Spec
    • Any Epub can use calibre:series_index, calibre:series, calibre:title_sort Details

Changed

  • Specials on the UI are now sorted before being displayed
  • Directory Picker will now let you share the current folder from any time in the picker flow
  • Headings are now consistent between User Preferences and Admin screen
  • Specials in the UI now hide the extensions
  • Reworked how errors are handled within the app to hopefully reduce the amount of duplicate errors received
  • Major rework on how book reader stores progress within a single page. With new method, it should work for any book. Resume to exact line you left off from any device.
  • Complete redesign of the Manga/Comic reader View GIF
    • Menu now opens in a bottom drawer and has a scroller to jump to pages, jump to first/last page, and jump between volume/chapters
    • Quick actions easily available to change reading direction, change reader mode, color tones, and access extended settings
    • Extended settings area for settings unlikely changed
    • Ability for menu drawer to auto close after 6 seconds. You can adjust within extended settings or on user settings page
    • Ability to apply extra darkness or a sepia tone to reduce blue light
    • New reader modes: Left/Right, Up/Down
    • Information about the volume/chapter you are reading is now showed in the top drawer
    • When applying reader modes or reading directions, the clickable areas will now show an overlay to help you understand where to click
    • Image scaling and Image splitting now show some contextual icons to help the user understand what they do
    • Close book button is now in the top drawer menu
  • (Book Reader) Show current page and total pages on the progress bar in setting drawer
  • Dark mode is the default for new users
  • .DS_Store and @eadir directories are completely skipped the Scanner
  • Scanner will now pickup files without any numbers in them. This means files that couldn't previously be parsed will show up as a filename in your series.
  • Removed "Anthology" as a keyword for treating a file as Special due to series having this word in their name.
  • When debug log level, database parameters will be written to logger. This is not sensitive data and aids developers.
  • Redesigned Login Screen and Nav bar

Fixed

  • Fixed an issue with Continuous Reading button not working correctly after manually updating a volume with multiple chapters as read/unread
  • Fixed a bug on Directory Picker where pressing "Go Back" could result in being stuck not on Drive list
  • Dark mode theme is not persisting when logging out of app
  • When marking a series as read/unread, the in progress activity stream does not update
  • Continue reading button was broken on Firefox due to the way Firefox implemented a sort
  • "Amazing Man Comics chapter 21" would parse series as "Amazing Man Comics chapter" and volume "21"
  • "Amazing Man Comics issue #21" would parse series as "Amazing Man Comics issue" and volume "21"
  • Some archive files when opened for reading would be in a shuffled order resulting in bad reading order
  • Fixed some inconsistencies in getting next/prev chapter item for Continuous Reader
  • Fixed an unusual issue for arm versions of the docker container where files would fail if timestamp info wasn't copied over
Kavita - v0.4.1.1 - Hotfix

Published by majora2007 over 3 years ago

There was a critical database exception that escaped testing and a hotfix had to be issued to fix it.

Fixed

  • Database update during Scan Library would fail due to a constraint issue with SeriesMetadata table
  • An edge case for Continue Reading button was caught where after marking a volume with multiple chapters as read/unread, the calculation for continue reading button wouldn't be properly updated

Please update.

Kavita - v0.4.1 - Collection Support

Published by majora2007 over 3 years ago

Collections are here! You can now tag your series with custom tags to group and explore them. A collection is a custom tag that can be applied to any series in Kavita. You can view all collection tags on the home page or by clicking the "Collections" header above the reel on home page. From there you can drill down and view all your collection tags.

If you need to quickly remove a few series from a collection tag, click the actions button on the collection tag and you can quickly use Edit action to modify multiple series at once.

Collections don't have to just be for you. Do you have users? Want to promote a collection to all your users but keep some private to just you? Well you can do that. In that same edit action above, you can Promote a collection to be server-wide. All users can see the items with that collection (assuming they have access to those libraries), while the admin has complete control over what gets marked in it.

Note: There was a critical issue. The assets on this release have been updated.

Added

  • Collection support which allows admins to tag series and view them in a collection with cross library support.
  • Dark Mode! Each user can set their preference if they want to use Kavita with a custom dark theme. Persists across devices.
  • Sentry Integration. Sentry is an error management platform to help the developers catch errors before it becomes a problem. All data is anonymized.
  • JWT Token Key Generation on startup. New users will not need to setup their own encryption key (but still can if they wish to)
  • Added 7z, 7zip, and cb7 archive support
  • We now build Raspberry Pi docker images
  • (Book Reader) Added reading direction to the book reader, to keep feature parity with Manga reader
  • (Book Reader) Scroll position is now saved (and resumed on any device) on books that have chapter markers on a single page (usually Light Novels)
  • Recently Added and Collections pages from the carousel reel headers on home page

Fixed

  • A multitude of issues around Continuous Manga next/previous chapters when there were multiple chapter files per virtual Volume.
  • Fixed an error when parsing a filename with Part, where Part was taken as Chapter despite Chapter being in the title (ie Tomogui Kyoushitsu - Chapter 006 Game 005 - Fingernails On Right Hand (Part 002).cbz)
  • Fixed an issue around order in which chapters are inserted into the DB
  • Rewrote Continue Reading button to work more consistently
  • MinimumNumberFromRange would throw an exception when non numeric characters would somehow get into the range field. Now the code will default to 0.0 whenever there is invalid data.
  • Fixed a bug where archives with nested folders and folders of files with special characters would cause the end cached result to be skewed and the reading order would not be consistent
  • Fixed an issue on Windows OS where once an epub was opened in Kavita, the file was locked to the Kavita process
  • Fixed an issue where an admin changing the password for a user would cause the admin to be logged out and the password not changed
  • Removed Webtoon as an option when creating libraries. It is handled by Manga already
  • Some metadata keys get URI Encoded in epub html which led to failed lookups for anchor rewriting
  • Scroll to Top button doesn't disappear when scroll is at the top
  • Fixed a bug which when dark mode was activated or not, due to new system, the styles of the body would leak into the manga reader and background would not be black.
  • Fixes an issue where btn-information in dark mode was unreadable
  • Fixed an issue where if user came as null for some reason, a redirect to Login failed
  • Fixed a bug where opening settings sidenav then navigating to a new page in book reader would push the side nav down
  • Fixed an issue where carousel series card scan library would kick off the wrong library

Changed

  • Password requirements have been changed to 6-32 characters length
  • Increased the resolution of the Windows Icon
  • Book Reader now handles style scoping @import statements
  • When user becomes unauthenticated, quickly throw an exception to UI to inform them
  • Library Backup label is now "Library Database Backup" in the Server Settings
  • Changed Tabs on Series Detail to now be "smart". The tabs now auto-select based on the data.
  • When using Continuous Reading on manga reader, the url will now update after you cross chapter boundary
  • Section Title links on carousel reels now show an underline on hover/focus informing user they can click on it
Kavita - v0.4 - Book Support

Published by majora2007 over 3 years ago

Book support is finally here!

Many users have been holding out to switch from Ubooquity until we had proper book support and that day is finally here. Internal testing users have already switched and loved some of the improvements over Ubooquity. In addition, this update brings even more stability to parsing and how we scan your disk. Some parallelization has been removed to reduce high I/O for the sake of speed (this will help any Pi users).

How books work

Book support is currently limited to epub files only, mobi, pdf and other file formats are planned for a future release. Books will be parsed out based on both title and volume/chapter information. This allows us to have Light Novels mapped to multiple volumes, but other books, like Stephen King will be parsed out to their original title. Kavita does not enforce a strict folder grouping, you are free to keep all your Stephen King books in one folder, Kavita will map them out to separate entries.

Book Reader

Out of the box, the book reader has a few cool functionalities.

  • We have font family overrides, line spacing, font size, and margin.
  • We have dark mode, which applies a darker color to the whole screen and darkens images in the book. Navigating between pages does not cause the dark mode to be reapplied. It is consistent for the reading session.
  • We have tap to paginate which lets you tap on the sides of the screen to paginate, like how the manga reader works
  • We have a progress bar and go to page functionality like the manga reader (click the progress bar)
  • Table of Contents is visible at any time from the side nav. When you click on any link in the application, it will keep that state in mind. So you can always back out via the "Go Back" button in the action bar. Go Back will scroll you back to where you were.
  • Links that are external will open in a new tab.
  • Like the manga reader, your book settings can be saved and applied to all books or overridden for the book you are reading.

Future updates

In addition, this update will see a change in how releases are done. Instead of major releases every month or so, I will be splitting up features into minor release (v0.4.1, v0.4.2) with a new feature in each one. This will let me deliver faster and get feedback quicker. Join the discord to be apart of feedback and discussion of new features.

Change log

Added

  • Book Support and an awesome Book Reader to go along with it
  • Continuous Manga reading! The ability to move forward and back between different chapters/volumes seamlessly without leaving the manga reader. Please note, you will still incur the loading of the next volume when you transition.
  • Swiper support to the library page so you can now drag the cards to see more
  • Back to top button in the nav bar
  • You can now press the "G" button to open the prompt to go to page (otherwise click the progress bar)
  • Tap to Paginate (book reader) is now a user setting and can be turned on permanently in User Settings
  • (Manga Reader) New Scaling Option: Automatic. This will try to choose the best fit for your device's screen size.
  • RefreshMetadata action on series cards/series detail that will force a refresh of all metadata (cover images, summary) for just that series.
  • Skip to content for book reader (accessibility)
  • Series cards on the home page now show what library they are from and the library can be linked to see all series from said library
  • First time readers of books or manga will now have a popup shown and the menu or sidenav will open automatically for them
  • Documentation to the wiki explaining how to use the manga reader menu system
  • Close button on the manga reader

Changed

  • (Manga Reader) When changing the splitting options, the page re-renders instantly now.
  • (Windows) Kavita icon is now packed so the EXE now has an icon when running
  • Scaling default for Manga is now set to automatic by default. (new users only)
  • Behind the scenes accessibility improvements for screen readers
  • Search bar is now visible on small screen phone sizes
  • Series info modals now show what library the series belongs to (admin only)

Fixed

  • In Progress activity stream was not showing properly due to abandoned rows for progress after a series or volume was deleted during scan.
  • Recently added was not respecting a user's access to libraries
  • Home page, after marking a series as read/unread, the activity streams would show stale data. Data is now refreshed.
  • A LOT of book reader bugs during internal testing
  • When creating a new account and password validation errors occur, UI wasn't showing them
Kavita - v0.3.7 - Stability

Published by majora2007 over 3 years ago

This update is essentially 2 weeks of bugfixing and battle testing for existing Comics and Manga support. After these 2 weeks, I am positive this release is stable and can hold over anyone until the next release (v0.4 - book support).

New

  • More cover Image enhancements. Files with "cover" or "folder" are now taken before the first file
  • Parsing enhancements that translate chapters with "b" suffix to ".5" ie) Chapter 202b -> Chapter 202.5
  • Many performance enhancements to ensure the scan loop works faster and uses less memory. After initial scan, my test library of 230GB of manga takes 3 seconds to update new series.
  • Library cards are now alphabetically sorted on Homepage
  • Special grouping from last release has been refined and more specials are encapsulated, giving you ultimate control over reading order.
  • MANY parsing enhancements/fixes to cover many new scenarios found in the wild
  • Series reviews and summaries are now truncated by a read more button if they are longer than 250 characters
  • Series reviews are much easier to make and edit
  • When an archive cannot be read, we show a custom message and card design to inform the user
  • On Connection Lost when user refreshes browser, we will try to go back to page they lost connection on

Fixed

  • In Progress stream leaving old series due to abandoned rows being left in the DB
  • In Progress stream was not ordered according to reading activity
  • Don't allow specials to generate the series cover image (unless there are no better covers)
  • Search doesn't show results when user searches with a localized name
  • When changing the Name of a Series, it is being reset after a Scan Library
  • Many areas weren't using a natural sort, so things like page 2, page 10 would cause page 10 to come first
  • If a file was bound to a chapter, then extension changed, the file would stay with the chapter after a Scan Library, even though it's no longer on disk.
  • Read vs Continue button wasn't showing correctly based on reading progress
  • Go to Page (click the progress button) was off by 1
  • Hitting Go to First page button would cycle through a virtual page split if the first page was a split page
  • 2 split pages in a row would cause the second page to be shown as a normal page
  • After updating a user library access, underlying page wouldn't show [Admin]
  • Series' Summary and Reviews do not respect newline characters
Kavita - v0.3.6 - Comic Book Support

Published by majora2007 over 3 years ago

I didn't think I'd release comic book support so soon, but it was easy to add and needed for my testers. You can now add a "Comic" library that will parse your comics and provide the same experience as your Manga.

Change log:

  • Comic book support
  • Lots of parsing fixes and enhancements for Manga
  • Fixed scroll issue on context menu modal
  • When server looses connection, try to put user back on original page from no-connection page.
  • Enhanced the way we show "Specials" on series detail page. Now a "Specials" volume will show grouping all files that don't match. This will be enhanced in a future update.
Kavita - v0.3.5 - Linux now supported

Published by majora2007 over 3 years ago

Due to some issues with paths, Linux users were unable to create a library. This and a few more bugs have been squashed in this release.

Change log:

  • Date format on Volumes was showing incorrectly, removed as it's pointless (Last Modified) and replaced with Is Special designation.
  • Changed all dates to be of format MM/dd/YYYY
  • Fixed a bug with scrollbars in context modals
  • Fixed a bug where Specials were showing twice
  • First flow, ensure we go directly to library tab from "Create a library" link
  • After a user registers for the first time, ensure we put them directly on login page
  • Fixed directory picker not working consistently with windows and linux based paths.
  • Fixed a bug where if a chapter had multiple archive files, they wouldn't all be extracted and thus you'd only be able to read up to the first archive. Now all are uncompressed and the reader will seamlessly switch between them.
Kavita - v0.3.2 - Hotfix

Published by majora2007 over 3 years ago

This hotfix is for linux/docker users where it was not possible to add a folder to a library due an extra / at beginning of the string.

Kavita - Kavita v0.3.1 Hotfix

Published by majora2007 over 3 years ago

There was a major bug in Continue Reading button on the UI that has been fixed in this release. You can safety just copy the wwwroot folder from the release if you don't want to pull everything.

Kavita - Kavita v0.3 - The "Main Driver" Release

Published by majora2007 over 3 years ago

With this release I can now ditch Ubooquity - my previous manga server of choice - with Kavita for all my reading needs. I would consider this as a full release with manga being it's primary focus over standard comic books. That being said, Kavita has a long road ahead filled with a host of new feature possibilities, like Book support, or proper metadata support.

The change log is as follows (plus many other things I probably forgot):

  • Image loading and Caching has been completely rewritten. Caching during manga reading is now super fast, you will forget you're reading over a network connection. Almost all images in the app are now lazy loaded with caching done by the browser
  • Archive Support has been expanded to include RAR and many other various zipping formats thanks to using SharpCompress
  • You can now access context menus from series detail page
  • There is now pagination on series detail view, defaulting to 30 series per page
  • ComicInfo.xml from within your archives will now populate the summary field on series during library scan
  • You can now correct and fix matches on parsed series. e.g. Did Kavita think "One-Punch Man" was "One-Punch Men"? Correct it and future scans will ensure it parses as One-Punch Man
  • You can now edit series metadata in the app + write your own review
  • You can now search and navigate to any series from anywhere in the app
  • Complete UX overhaul for better support on phone, tablet, or PC
Kavita - Kavita v0.2

Published by majora2007 over 3 years ago

This was a fairly large release. This release originally was aimed at stabilizing and testing against a real library. During this, a ton of bugs were found that led to a complete rewrite to the DB structure and Scanning code. This helped Kavita have not only a more flexible structure, but improved matching and large speed ups.

This release delivers the following:

  • Stability & Bug fixes
  • Ability to configure server settings
  • Ability to scheduler re-occurring Tasks
  • Ability to mark a whole volume/chapter as read/unread
  • Ability to reset user logins
  • Ability to search library for items a user has access to
  • Ability to log to file with rolling backups
  • Ability to have user preferences reflect throughout app
  • Ability to split full spread manga pages
  • A full responsive pass-through on the app

Currently only building for Windows, create an issue if you want other OS builds.

Kavita - Kavita v0.1

Published by majora2007 over 3 years ago

First release of Kavita. This release is more of a milestone than a proper release (although you can actually use server). This release allows for:

  • User creation with Roles (admin/non-admin)
  • Role based access to Libraries
  • Segregation of Manga in different Libraries for whatever your needs
  • Ability to rate manga
  • Ability to track read progress
  • Ability to read archive-based manga (cbz, cbr, zip)
  • Ability to scan libraries ad-hoc
  • Cache management
  • Ability to read manga (no split page support)

While a lot was accomplished, a lot of the work is preliminary. This is the foundation for the next releases and polishing efforts.