Joseph Milazzo cf7a9aa71e
Reading Lists & More (#564)
* Added continous reading to the book reader. Clicking on the max pages to right of progress bar will now go to last page.

* Forgot a file for continous book reading

* Fixed up some code regarding transitioning between chapters. Arrows now show to represent a chapter transition.

* Laid the foundation for reading lists

* All foundation is laid out. Actions are wired in the UI. Backend repository is setup. Redid the migration to have ReadingList track modification so we can order them for the user.

* Updated add modal to have basic skeleton

* Hooked up ability to fetch reading lists from backend

* Made a huge performance improvement to GetChapterIdsForSeriesAsync() by reducing a JOIN and an iteration loop. Improvement went from 2 seconds -> 200 ms.

* Implemented the ability to add all chapters in a series to a reading list.

* Fixed issue with adding new items to reading list not being in a logical order. Lots of work on getting all the information around the reading list view. Added some foreign keys back to chapter so delete should clean up after itself.

* Added ability to open directly the series

* Reading List Items now have progress attached

* Hooked up list deletion and added a case where if doesn't exist on load, then redirect to library.

* Lots of changes. Introduced a dashboard component for the main app. This will sit on libraries route for now and will have 3 tabs to show different sections.

Moved libraries reel down to bottom as people are more likely to access recently added or in progress than explore their whole library.

Note: Bundles are messed up, they need to be reoptimized and routes need to be updated.

* Added pagination to the reading lists api and implemented a page to show all lists

* Cleaned up old code from all-collections component so now it only handles all collections and doesn't have the old code for an individual collection

* Hooked in actions and navigation on reading lists

* When the user re-arranges items, they are now persisted

* Implemented remove read, but performance is pretty poor. Needs to be optimized.

* Lots of API fixes for adding items to a series, returning items, etc. Committing before fixing incorrect fetches of items for a readingListId.

* Rewrote the joins for GetReadingListItemDtosByIdAsync() to not return extra records.

* Remove bug marker now that it is fixed

* Refactor update-by-series to move more of the code to a re-usable function for update-by-volume/chapter APIs

* Implemented the ability to add via series, volume or chapter.

* Added OPDS support for reading lists. This included adding VolumeId to the ReadingListDto.

* Fixed a bug with deleting items

* After we create a library inform user that a scan has started

* Added some extra help information for users on directory picker, since linux users were getting confused.

* Setup for the reading functionality

* Fixed an issue where opening the edit series modal and pressing save without doing anything would empty collection tags. Would happen often when editing cover images.

* Fixed get-next-chapter for reading list. Refactored all methods to use the new GetUserIdByUsernameAsync(), which is much faster and uses less memory.

* Hooked in prev chapter for continuous reading with reading list

* Hooked up the read code for manga reader and book reader to have list id passed

* Manga reader now functions completely with reading lists

* Implemented reading list and incognito mode into book reader

* Refactored some common reading code into reader service

* Added support for "Series -  - Vol. 03 Ch. 023.5 - Volume 3 Extras.cbz" format that can occur with FMD2.

* Implemented continuous reading with a reading list between different readers. This incurs a 3x performance hit on the book info api.

* style changes. Don't emit an event if position of draggable item hasn't changed

* Styling and added the edit reading list flow.

* Cleaned up some extra spaces when actionables isn't shown. Lots of cleanup for promoted lists.

* Refactored some filter code to a common service

* Added an RBS check in getting Items for a given user.

* Code smells

* More smells
2021-09-08 12:03:27 -05:00
2021-08-22 11:39:13 -07:00
2021-07-17 14:03:11 -05:00
2021-09-08 12:03:27 -05:00
2021-09-08 12:03:27 -05:00
2021-09-08 12:03:27 -05:00
2021-06-24 19:31:42 -05:00
2021-09-08 12:03:27 -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%