Joseph Milazzo cf4fd2cb9c
Bugs, Enhancements, and Performance (#580)
* Added parser case for "The Duke of Death and His Black Maid - Ch. 177 - The Ball (3).cbz"

* Removed a file that is created and modified every test run.

* Fixed a bad parser case for "Batman Beyond 02 (of 6) (1999)" which was consuming too many characters

* Removed a lot of "Volume" parsing for Comics that don't make sense. This is prep work for the upcoming Comic Rework release.

* Reworked a lot of parsing cases for comics based on naming conventions observed from releases found online.

* Added a way for external scripts to use a user api key to authenticate

* Fixed an issue if the manga only had one page, the bottom menu would be missing page and chapter controls.

* Fixed a bug where on small phones, nav bar could overflow due to scroll to top

* 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".

* Even more handling of parser cases. Manga parser should be as it was but more robust to handle bad naming.

* Fixed: Don't force metadata refresh on Scan Series, only on refresh metadata

* Implemented the ability to automatically refresh after a series scan based on when server finishes. Remove a duplicate API call from series detail.

* Removed another API call for series metadata that isn't needed.

* Refactored Message creation to a factory, hardcoded strings are centralized, and RefreshSeriesMetadata sends an event and is refactored to be async.

* 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. Now we detect said condition and will go one level higher, resulting in potentially more I/O, but the series will not be deleted.

* Added the Read in Incognito context item for Chapter cards

* Skip an additional check for series summary for series that aren't EPUB or Archive formats.

* Fixed an issue where cover image generation could occur due to a bad check on LastWriteTime on the underlying file.

* Added some extra comic parser tests

* Added a ScanLibrary event (not hooked up in UI)

* 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).

* Removed an hr from series detail and ensure we update the cover image for series when scan series finishes.

* Updated the infinite scroller to use a Flags pattern for the debug mode. Updated a few logical conditions for mobile.

* Removed the concurrency check on row progress as if too many calls hit the DB, it will throw, but it doesn't matter.

Fixed a bad logic code which could cause scrolling after hitting the bottom of the chapter.

* Ensure prefetching uses totalPages + 1 since we pass in totalPages as - 1 from manga reader

* Fixed issue where last page of webtoon wouldn't be prefetched due to a < instead of <= on prefetching code

* Implemented ability to send images from archives to the UI without incurring any extra memory pressure.

* Dropdown menus now have a darker background

* Webtoon reader now works on mobile.

* Fixed how keyboard presses for up/down/left/right work with MANGA_UD reading mode. See issue #579

* Fixed cont reader for webtoons on mobile

* Fixed a small issue where top spacer would too quickly switch to prev chapter

* Updated user preferences to use same slider style. Removed some css that is not used.

* Added comic parser case for "Saga 001 (2012) (Digital) (Empire-Zone)"

* Added accessibility toggle to reading list order and aligned sliders to all use the same style.

* Removed a todo for checking on new image serving code. It works great.

* Fixed a missing await

* Auth guard will now check if an existing toast is present giving same message before poping the toast.

* Fixed alignment on phones for reading lists

* Moved sorters so they aren't resused between multiple threads. Slightly higher memory footprint.

* Fixed a broken unit test

* Code smells

* More unit test fixing
2021-09-15 11:06:29 -07:00
2021-08-22 11:39:13 -07:00
2021-07-17 14:03:11 -05:00
2021-09-12 09:48:21 -07:00
2021-06-24 19:31:42 -05:00
2021-07-17 14:03:11 -05:00
2021-07-22 21:13:24 -05:00
2021-07-17 14:03:11 -05:00
2021-06-07 16:04:08 -05:00
2021-08-27 18:08:32 -04:00
2021-07-19 18:55:01 -05:00
2021-07-17 14:03:11 -05:00
2021-06-17 18:07:51 -05:00
2021-08-28 15:32:24 -07:00
2021-08-27 10:19:25 -07:00
2020-12-12 17:03:06 -06:00

Kavita

!high level view

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

Release License Downloads Docker Pulls Maintainability Rating Security Rating Backers on Open Collective Sponsors on Open Collective

Goals

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

Support

Reddit Discord GitHub - Bugs and Feature Requests Only

Demo

If you want to try out Kavita, we have a demo up: https://demo.kavitareader.com/

Username: demouser
Password: Demouser64

Setup

Non-Docker

  • Unzip the archive for your target OS
  • Place in a directory that is writable. If on windows, do not place in Program Files
  • Linux users must ensure the directory & kavita.db is writable by Kavita (might require starting server once)
  • Run Kavita
  • If you are updating, do not copy appsettings.json from the new version over. It will override your TokenKey and you will have to reauthenticate on your devices.

Docker

Running your Kavita server in docker is super easy! Barely an inconvenience. You can run it with this command:

docker run --name kavita -p 5000:5000 \
-v /your/manga/directory:/manga \
-v /kavita/data/directory:/kavita/data \
--restart unless-stopped \
-d kizaing/kavita:latest

You can also run it via the docker-compose file:

version: '3.9'
services:
    kavita:
        image: kizaing/kavita:latest
        volumes:
            - ./manga:/manga
            - ./data:/kavita/data
        ports:
            - "5000:5000"
        restart: unless-stopped

Note: Kavita is under heavy development and is being updated all the time, so the tag for current builds is :nightly. The :latest tag will be the latest stable release. There is also the :alpine tag if you want a smaller image, but it is only available for x64 systems.

Feature Requests

Got a great idea? Throw it up on the FeatHub or vote on another idea. Please check the Project Board first for a list of planned features.

Feature Requests

Contributors

This project exists thanks to all the people who contribute. Contribute.

Donate

If you like Kavita, have gotten good use out of it or feel like you want to say thanks with a few bucks, feel free to donate. Money will go towards expenses related to Kavita. Back us through OpenCollective. You can also use Paypal, however your name will not show below.

Backers

Thank you to all our backers! 🙏 Become a backer

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. Become a sponsor

Mega Sponsors

JetBrains

Thank you to JetBrains for providing us with free licenses to their great tools.

Sentry

Thank you to for providing us with free license to their software.

License

Description
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.
Readme GPL-3.0 245 MiB
Languages
C# 60.9%
TypeScript 24.1%
HTML 12.2%
SCSS 2.5%
Shell 0.1%