Joseph Milazzo 82b5b599e0
Foundational Cover Image Rework (#584)
* Updating wording on card item when total pages is 0, to be just "Cannot Read" since it could be a non-archive file

* Refactored cover images to be stored on disk. This first commit has the extraction to disk and the metadata service to handle updating when applicable.

* Refactored code to have the actual save to cover image directory done by ImageService.

* Implemented the ability to override cover images.

* Some cleanup on Image service

* Implemented the ability to cleanup old covers nightly

* Added a migration to migrate existing covers to new cover image format (files).

* Refactored all CoverImages to just be the filename, leaving the Join with Cover directory to higher level code.

* Ensure when getting user progress, we pick the first.

* Added cleanup cover images for deleted tags. Don't pull any cover images that are blank.

* After series update, clear out cover image. No change on UI, but just keeps things clear before metadata refresh hits

* Refactored image formats for covers to ImageService.

* Fixed an issue where after refactoring how images were stored, the cleanup service was deleting them after each scan.

* Changed how ShouldUpdateCoverImage works to check if file exists or not even if cover image is locked.

* Fixed unit tests

* Added caching back to cover images.

* Caching on series as well

* Code Cleanup items

* Ensure when checking if a file exists in MetadataService, that we join for cover image directory. After we scan library, do one last filter to delete any series that have 0 pages total.

* Catch exceptions so we don't run cover migration if this is first time run.

* After a scan, only clear out the cache directory and not do a deep clean.

* Implemented the ability to backup custom locked covers only.

* Fixed unit tests

* Trying to figure out why GA crashes when running MetadataServiceTests.cs

* Some debugging on GA tests not running

* Commented out tests that were causing issues in GA.

* Fixed an issue where series cover images wouldn't migrate

* Fixed the updating of links to actually do all series and not just locked
2021-09-21 19:15:29 -05:00
2021-08-22 11:39:13 -07:00
2021-07-17 14:03:11 -05: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%