* Added some basic OPDS implementation
* Fixed an issue with feed href
* More changes
* Added library routes and moved user code to a method so we can hack in fixed code without authentication
* Images now load on the OPDS reusing our existing Image infrastructure.
* Added the ability to download and moved some download code to a dedicated service
* Download is working, pagination is implemented.
* Refactored libraries to use pagination
* Laid foundation for OpenSearch implementation
* Fixed up some serialization issues and some old code that wasn't referencing helper methods
* Ensure chapters are sorted when we send them over OPDS
* OpenSearch implemented
* Removed any support for OPDS-PS due to lack of apps supporting it.
* Don't distribute development.json nor stats directory on build.
* Implemented In Progress feed as well.
* Ability to enable OPDS for server. OPDS now accepts initial call as POST in case app uses username/password.
* UI now properly renders state for OPDS enablement. Added Collections routes.
* Fixed pagination startIndex on OPDS feeds when there is less than 1 page.
* Chunky Reader now works. It only accepts UTF-8 encodings
* More Chunky fixes
* More chunky changes, such a fussy client.
* Implemented the ability to have a custom api key assigned to a user and use that api key as your authentication token against OPDS routing.
* Implemented the ability to reset your API Key
* Fixed favicon not being sent back correctly
* Fixed an issue where images wouldn't send on OPDS feed.
* Implemented Page streaming and fixed a pagination bug
* Hooked in the ability to save progress in Kavita when Page Streaming
* Fixed a bad comparision between JsonElement and null.
* Removed console.logs. Fixed bug in edit collection detail page where summary wouldn't update after editing it.
* Removed a UI package that is no longer used.
Fixed an issue where MarkVolumeAsUnread was using an old set of APIs and now uses the new, faster API.
* Lots of cleanup on the warnings in the solution. Deprecated IsLastWriteLessThan and made a new method HasFileBeenModifiedSince.
* Added some tests for the new extension method.
* Changed filter import to use correct import
* Scan Series now uses Refresh Metadata for Series, rather than library one.
* Fixed an issue where cover generation wasn't properly taking forced update into consideration. Removed a case of cover generation for no reason.
* Fixed series downloads not triggering backend call
* Removed some extra spam for the console
* Implemented the code to update RowVersion, which is our concurrency check
* Fixed a critical issue where more than one bookmark could occur for a given chapter due to a race condition. Now we use concurrency checks and we also gracefully allow more than one row, by only grabbing first.
* Cleaned up the logic for IHasConcurencyToken and updated the setters to be private.
* Lots of comments and when deleting a library, remove any user progress items for which chapters don't exist.
* When deleting a Series, cleanup user progress rows.
* Now after a scan of library, if a series is removed, collection tags are pruned as well if there are no longer any series bound to it.
* Updated the image on the Readme to show a better picture
* Small code cleanup to remove null check modifier as I check for null just before then
* Fixed images loading multiple times due to using function in binding with random. You can now click chapter images to read that chapter specifically.
* Fixed cards being different sizes when read vs unread
* Moved over Robbie's workflow changes from notifier. Commented out activity indicators as that is not shipping with this release.
* Remove code that isn't needed
* Reverted GA
* Changed GA to trigger only when HEAD is updated
# Added
- Added: Added the ability to bookmark certain pages within the manga (image) reader and later download them from the series context menu.
# Fixed
- Fixed: Fixed an issue where after adding a new folder to an existing library, a scan wouldn't be kicked off
- Fixed: 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
# Changed
- Changed: Admin contextual actions on cards will now be separated by a line to help differentiate.
- Changed: Performance enhancement on an API used before reading
# Dev
- Bumped dependencies to latest versions
=============================================
* Bumped versions of dependencies and refactored bookmark to progress.
* Refactored method names in UI from bookmark to progress to prepare for new bookmark entity
* Basic code is done, user can now bookmark a page (currently image reader only).
* Comments and pipes
* Some accessibility for new bookmark button
* Fixed up the APIs to work correctly, added a new modal to quickly explore bookmarks (not implemented, not final).
* Cleanup on the UI side to get the modal to look decent
* Added dismissed handlers for modals where appropriate
* Refactored UI to only show number of bookmarks across files to simplify delivery. Admin actionables are now separated by hr vs non-admin actions.
* Basic API implemented, now to implement the ability to actually extract files.
* Implemented the ability to download bookmarks.
* Fixed a bug where adding a new folder to an existing library would not trigger a scan library task.
* Fixed an issue that could cause bookmarked pages to get copied out of order.
* Added handler from series-card component
# Added
- Added: Ability to check for updates (stable-only) and be notified with a changelog. This is a first pass implementation.
- Added: Ability to use SignalR within Kavita (websockets)
=====================================
* (some debug code present). Implemented the ability to check and log if the server is up to date or not.
* Fixed a bug for dark mode where anchor buttons wouldn't have the correct font color.
Suppress filter/sort button if there is no filters to show.
Debug: Active indicators for users currently on your server.
Refactored code to send update notification only to admins. Admins now get a popup where they can open the Github release (docker users can just close).
* Fixed an issue where getLibraryNames on first load would call for as many cards there was on the screen. Now we call it much earlier and the data is cached faster.
* Fixed a dark mode bug from previous commit
* Release notes is now rendered markdown
* Implemented the ability to check for an update ad-hoc. Response will come via websocket to all admins.
* Fixed a missing padding
* Cleanup, added some temp code to carousel
* Cleaned up old stat stuff from dev config and added debug only flow for checking for update
* Misc cleanup
* Added readonly to one variable
* Fixed In Progress not showing for all series due to pagination bug
* Fixed the In progress API returning back series that had another users progress on them. Added SplitQuery which speeds up query significantly.
* SplitQuery in GetRecentlyAdded for a speed increase on API.
Fixed the logic on VersionUpdaterService to properly send on non-dev systems.
Disable the check button once it's triggered once since the API does a task, so it can't return anything.
* Cleaned up the admin actions to be more friendly on mobile.
* Cleaned up the message as we wait for SingalR to notify the user
* more textual changes
* Code smells