* Refactored the performance of GetChapter/BookInfo API to have a 10x speed improvement and to use common code, rather than duplicating code. Removed an api param that is no longer needed.
* Book reader now has dedicated buttons to jump to next/prev chapter as well as through page buttons
* Removed directives, ensured we delete bookmarks and reading list items when chapters are deleted.
* Added parsing support for "Kimi no Koto ga Daidaidaidaidaisuki na 100-nin no Kanojo Chapter 11-10"
* 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
* Adding automated docker version tag for stable releases
- Added set to parse version to x.x.x format for tag. (This is the same way we parse for sentry release maps)
- Added additional build and push step for docker with parse version as tag.
* Bugfix/reader progress (#435)
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.
* Feature/manual db backup (#437)
Added: New button in manage server to manually create a backup of DB (Fixes Add on demand DB backup from Admin Dashboard #322)
* Performance/cache epub (#438)
Changed: (Performance) Added the ability for epubs to cache, allowing faster page load for users with network mounted storage. (Fixes Investigate caching epubs (benefit for network mounted users) #433 )
* Ignore Mac metadata hidden files ._* (#443)
* Implemented the ability to completely ignore all MacOS ._ files. They are ignored for all I/O operations (on all OSes)
* Filtering First Pass (#442)
# Added
- Added: Added "In Progress" view to see everything you are currently reading
- Added: Added the ability to filter series based on format from "In Progress", "Recently Added", "Library Detail" pages.
- Added: Added total items to the above pages to showcase total series within Kavita
==============================
* Added filtering to recently added
* Cleaned up the documentation on the APIs and removed params no longer needed.
* Implemented Filtering on library detail, in progress, and recently added for format. UI is non-final.
* Moved filtering to an expander panel
* Cleaned up filtering UI a bit
* Cleaned up some code and added titles on touched pages
* Fixed recently added not re-rendering page
* Removed commented out code
* Version bump
* Added an animation to the filtering section
* Stashing changes, needing to switch lazy loading libraries out due to current version not trigging on dom mutation events
* Finally fixed all the lazy loading issues and made it so pagination works without reloading the whole page.
* Supress max page error on bookmark api and just adjust the pages for the user. (#445)
# Changed
- Changed: Suppress max page error on bookmark api and just adjust the pages for the user.
* Filtering Bugs (#447)
# Fixed
- Fixed: Fixed an issue with filtering, after applying a filter, the cards on screen did not update with the correct information
- Fixed: Pagination is now slighlty smaller (only 8 pages) as on mobile, it was cutting off screen.
# Changed
- Changed: During library scan and series updates, Series names for Epubs will now trim excess white space
===============================================
* Fixed issue where some formats could get returned with another format filter.
* Filtering was not properly flushing DOM on filter change, updated trackbyidentity to account for filter
* One more fix for the filtering bug
* Made pagination UI slightly smaller to better fit on mobile phones. Trim() series names for Epub files and Trim() on series update for appropriate fields.
* Removed a no longer needed animation.
* Refactored logs to use a logs/ folder and also roll over after 10MB. A maximum of 5 logs will persist (50MB of log data).
* Updated entrypoint to accomodate new logs folder
* Refactored logs to use a logs/ folder and also roll over after 10MB. … (#448)
# Changed
- Changed: 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. (Closes#446 )
=============================
* Refactored logs to use a logs/ folder and also roll over after 10MB. A maximum of 5 logs will persist (50MB of log data).
* Updated entrypoint to accommodate rolling logs
Co-authored-by: Chris Plaatjes <kizaing@gmail.com>
* Bugfix/in progress (#452)
# Fixed
- Fixed: 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.
============================
* Fixed In Progress not showing for all series due to pagination bug
* Version bump
* Adding version bump workflow
* Updating version-bump.yml
* Fixed the In progress API returning back series that didn't belong (#453)
* Fixed the In progress API returning back series that had another users progress on them. Added SplitQuery which speeds up query significantly.
* Try out putting PR body into notification
* Feature/version bump test (#449)
## Changes
- Reconfigured Github workflow for better visibility
- Added automated version bump on merge push to Develop branch
* Updating workflow
* Workflow fixes
* Updating workflow, removing branch creation
* Feature/version bump (#456)
** Changes
- Workflow changes
* Feature/version bump (#457)
## Changes
- Unprotected dev branch
- Added automated version bump on pushes to develop (merge PRs)
* Bump versions by dotnet-bump-version.
* Merged docker tagging actions into one
* Consolidating Stable Docker Tags
## Changes
- Combined stable and version tags into 1 task for workflow efficency
* Bump versions by dotnet-bump-version.
* Cleaned up and fixed old docker files
* Feature/docker cleanup (#459)
## Changes
- Cleaned up and fixed old docker files
* Bump versions by dotnet-bump-version.
* Update Notifier (#464)
# 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
* Bump versions by dotnet-bump-version.
* Bookmarking Pages within the Reader (#469)
# 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
* Bump versions by dotnet-bump-version.
* Scan Issues (#470)
* Fixed an oversight where unique file extensions for KavitaStats wouldn't ignore case.
* Fixed an issue where series were getting removed then re-added due to bad logic when comparing if the series from disk matched the series in DB based on format.
* Bump versions by dotnet-bump-version.
* Updating docker workflow (#467)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* Bump versions by dotnet-bump-version.
* Updating Docker Workflow (#471)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* Bump versions by dotnet-bump-version.
* Updating discord workflow (#472)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Bump versions by dotnet-bump-version.
* Updating discord workflow (#474)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Bump versions by dotnet-bump-version.
* Updating discord workflow (#475)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Bump versions by dotnet-bump-version.
* Updating discord workflow (#477)
## Changes
- Changed github action to allow for discord notification to use markdown styling
## Added
- Added version to discord notification
- Added ability to use PR body instead of commit body for discord notification description.
* Bump versions by dotnet-bump-version.
* Updating discord action (#478)
## Changes
- Changed github action to allow for discord notification to use markdown styling
## Added
- Added version to discord notification
- Added ability to use PR body instead of commit body for discord notification description.
* Bump versions by dotnet-bump-version.
* Updating discord action (#479)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Reverting back to default variables
* fixing syntax error
* removing heading syntax
* Bump versions by dotnet-bump-version.
* Update discord action (#480)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Reverting back to default variables
* fixing syntax error
* removing heading syntax
* updating parse
* Bump versions by dotnet-bump-version.
* Update discord action (#481)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Reverting back to default variables
* fixing syntax error
* removing heading syntax
* updating parse
* Updating parsing
* Bump versions by dotnet-bump-version.
* Update discord action (#482)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Reverting back to default variables
* fixing syntax error
* removing heading syntax
* updating parse
* Updating parsing
* Updating docker workflow
* Bump versions by dotnet-bump-version.
* Download Refactor (#483)
# Added
- New: Cards when processing a download shows a spinner for the progress of the download
# Changed
- Changed: Downloads now always take the backend filename and are streamed in a more optimal manner, reducing the javascript processing that was needed previously.
==================================
* Started refactor of downloader to be more UX friendly and much faster.
* Completed refactor of Volume download to use a new mechanism. Downloads are streamed over and filename used exclusively from header. Backend has additional DB calls to get the Series Name information to make filenames nice.
* download service has been updated so all download functions use new event based observable. Duplicates code for downloading, but much cleaner and faster.
* Small code cleanup
* Bump versions by dotnet-bump-version.
* Update discord action (#486)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Reverting back to default variables
* fixing syntax error
* removing heading syntax
* updating parse
* Updating parsing
* Updating docker workflow
* trying to remove newline
* Bump versions by dotnet-bump-version.
* Update discord action (#487)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Reverting back to default variables
* fixing syntax error
* removing heading syntax
* updating parse
* Updating parsing
* Updating docker workflow
* trying to remove newline
* updating parsing
* Replacement in parsing
* Update sonar-scan.yml
* Bump versions by dotnet-bump-version.
* Feature/new discord action (#489)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Reverting back to default variables
* fixing syntax error
* removing heading syntax
* updating parse
* Updating parsing
* Updating docker workflow
* trying to remove newline
* updating parsing
* Replacement in parsing
* Update sonar-scan.yml
* testing passing pr body via artifact
* Updating syntax
* Bump versions by dotnet-bump-version.
* Update Discord Action (#490)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Reverting back to default variables
* fixing syntax error
* removing heading syntax
* updating parse
* Updating parsing
* Updating docker workflow
* trying to remove newline
* updating parsing
* Replacement in parsing
* Update sonar-scan.yml
* testing passing pr body via artifact
* Updating action version
* syntax fix
* Bump versions by dotnet-bump-version.
* Updating discord action (#492)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Reverting back to default variables
* fixing syntax error
* removing heading syntax
* updating parse
* Updating parsing
* Updating docker workflow
* trying to remove newline
* updating parsing
* Replacement in parsing
* Update sonar-scan.yml
* testing passing pr body via artifact
* Updating action version
* syntax fix
* Updating write
* Bump versions by dotnet-bump-version.
* Update discord action (#493)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Reverting back to default variables
* fixing syntax error
* removing heading syntax
* updating parse
* Updating parsing
* Updating docker workflow
* trying to remove newline
* updating parsing
* Replacement in parsing
* Update sonar-scan.yml
* testing passing pr body via artifact
* Updating action version
* syntax fix
* Updating write
* Updating write
* Bump versions by dotnet-bump-version.
* Updating discord action (#494)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Reverting back to default variables
* fixing syntax error
* removing heading syntax
* updating parse
* Updating parsing
* Updating docker workflow
* trying to remove newline
* updating parsing
* Replacement in parsing
* Update sonar-scan.yml
* testing passing pr body via artifact
* Updating action version
* syntax fix
* Updating write
* Updating write
* testing artifact
* consolidating nightly-docker into main workflow
* Bump versions by dotnet-bump-version.
* Updating docker workflows (#495)
* Updating docker action
* adding version to message
* adding way to get PR title and body
* Adding input pass to workflows
Workflow dispatches may not get push header info. Switching logic to pass needed title and body info through just in case.
* adding token
The description on this action is awful, it didn't mention needing a token. I found this solution from the repo's issues
* parsing pr body
* Updating parsing
* Updating docker workflow
* Reverting back to default variables
* fixing syntax error
* removing heading syntax
* updating parse
* Updating parsing
* Updating docker workflow
* trying to remove newline
* updating parsing
* Replacement in parsing
* Update sonar-scan.yml
* testing passing pr body via artifact
* Updating action version
* syntax fix
* Updating write
* Updating write
* testing artifact
* consolidating nightly-docker into main workflow
* pulling stable into main
* Bump versions by dotnet-bump-version.
* Custom Cover Images (#499)
* Added some documentation. Removed Require Admin Role from Search Tags. Added Summary to be updated on UpdateTag.
* Added Swagger xml doc generation to beef up the documentation. Started adding xml comments to the APIs. This is a needed, slow task for upcoming Plugins system.
* Implemented the ability to upload a custom series image to override the existing cover image.
Refactored some code out to use ImageService and added more documentation
* When a page cache fails, delete cache directory so user can try to reload.
* Implemented the ability to lock a series cover image such that after user uploads something, it wont get refreshed by Kavita.
* Implemented the ability to reset cover image for series by unlocking
* Kick off a series refresh after a cover is unlocked.
* Ability to press enter to load a url
* Ability to reset selection
* Cleaned up cover chooser such that reset is nicer, errors inform user to use file upload, series edit modal now doesn't use scrollable body. Mobile tweaks. CoverImageLocked is now sent to the UI.
* More css changes to look better
* When no bookmarks, don't show both markups
* Fixed issues where images wouldn't refresh after cover image was changed.
* Implemented the ability to change the cover images for collection tags.
* Added property and API for chapter cover image update
* Added UI code to prepare for updating cover image for chapters. need to rearrange components
* Moved a ton of code around to separate card related screens into their own module.
* Implemented the ability to update a chapter/volume cover image
* Refactored action for volume to say edit to reflect modal action
* Fixed issue where after editing chapter cover image, the underlying card wouldn't update
* Fixed an issue where we were passing volumeId to the reset chapter lock. Changed some logic in volume cover image generation.
* Automatically apply when you hit reset cover image
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Collection Redesign (#500)
* Setup UI for the collection redesign.
* Implemented collection details page
* Bump versions by dotnet-bump-version.
* Close any open modals when a route change occurs (#501)
* Bump versions by dotnet-bump-version.
* Added manga/book routes back in (#503)
* Bump versions by dotnet-bump-version.
* Misc Bugfixes and Enhancements (#507)
* 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
* Bump versions by dotnet-bump-version.
* Feature/bookmark feedback (#508)
* ImageService had a stream reset before writting out to array. Added logging statment for updating series metadata. Removed ConcurencyCheck due to bad update issue for CollectionTag.
* Added a new screen which lets you quickly see all your bookmarks for a given user.
* Built user bookmark page in user settings. Moved user settings to it's own lazy loaded module. Removed unneded debouncing from downloader and just used throttleTime instead.
* Removed a not-yet implemented tab from series modal
* Fixed a bug in clear bookmarks and adjusted icons within anchors to have proper styling
* Bump versions by dotnet-bump-version.
* Misc Bugs (#510)
* Don't show bookmark context actionable for books
* Fixed an issue where when adding a collection tag, the logic wouldn't assume the tag already existed in DB and would reset it.
* After editing a series on library page, ensure we refresh collection tags.
* Reload recently added section after changing a series
* Moved all Stat logger events to Debug
* Refactored scroll logic into a single service to keep the code consistent.
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Update Notification Refactor (#511)
* Replaced profile links to anchors so we can open in new tab if we like
* Refactored how update checking works. We now explicitly check and send back on the same API. We have a weekly job that will push an update to the user.
* Implemented a changelog tab
* Ported over a GA fix for using ' in PR bodies.
* Don't check cert for Github
* Bump versions by dotnet-bump-version.
* Bugfix/release cleanup (#512)
* 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
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Parsing out cover images (#513)
- Fixing workflow
- Adding test case
* Bump versions by dotnet-bump-version.
* Prevent cover images showing as a series (#514)
* Parsing out cover images
- Fixing workflow
- Adding test case
* Fixing workflow
* Bump versions by dotnet-bump-version.
* v0.4.4 polishing (#515)
* 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.
* Bump versions by dotnet-bump-version.
* Cover generation issue on first scan flow (#517)
* Cover generation issue on first scan flow
- Fixed logic around whether a chapter cover image should be generated. New logic adds grouping priority, changes an AND to an OR and adds an additional check to see if the cover image has been lock (custom image uploaded)
* Sonar update
* Refactored out the cover image updating logic to a new call (ShouldUpdateCoverImage) and updated ONLY chapters. Added a blank slate unit test to build out conditions.
* Fixed up unit case
* Fixed some logic on when to update a cover image
* Fixed an issue where 1) we were refreshing metadata anytime we adjusted cover image on a series and 2) Cover generation wasn't properly being handled on first run.
* Cleaned up the code for when a cover image change needs to trigger a refresh metadata task
Co-authored-by: Joseph Milazzo <joseph.v.milazzo@gmail.com>
* Update issue templates
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Version release (#519)
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Bump Microsoft.AspNetCore.Authentication.JwtBearer in /API (#523)
Bumps [Microsoft.AspNetCore.Authentication.JwtBearer](https://github.com/dotnet/aspnetcore) from 5.0.8 to 5.0.9.
- [Release notes](https://github.com/dotnet/aspnetcore/releases)
- [Commits](https://github.com/dotnet/aspnetcore/compare/v5.0.8...v5.0.9)
---
updated-dependencies:
- dependency-name: Microsoft.AspNetCore.Authentication.JwtBearer
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* [INFRASTRUCTURE] Linux/OSX improvements for build.sh
* Use cp -R instead of cp -r since OSX cp does not support -r
* Notify user if they do not have npm/dotnet installed
* Create wwwroot before using it (else get error in raspbian)
* Use unix line endings instead of dos, else wont run on osx
and gives warning in linux.
* OPDS Support (#526)
* 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
* Bump versions by dotnet-bump-version.
* Bugfix/series cover not setting (#527)
* Fixed an issue where cover generation was failing on first add due to not checking correctly on First Volume.
* Bump versions by dotnet-bump-version.
* Added check for Windows builds so copy works (#528)
* Added check for Windows builds so copy works
* Removed appsettings copy, no longer needed
* Fixed a bad build due to duplicate file copy
Co-authored-by: Joseph Milazzo <joseph.v.milazzo@gmail.com>
* Bump versions by dotnet-bump-version.
* Fixed an issue with ordering of chapters within a volume for selecting first cover image. (#529)
* Bump versions by dotnet-bump-version.
* Always output appsettings.json (#530)
* Bump versions by dotnet-bump-version.
* Added fix to copy appsettings.json
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* Bump versions by dotnet-bump-version.
* OPDS Cleanup (#534)
* Fixed opds url display
* Rewrote how stat collection works, now we check in multiple places and always run stat collection in a background thread, to not block main thread.
* Cleaned up the ParseInfoTest to be more verbose
* Added benchmarking
* Bump versions by dotnet-bump-version.
* On desktop devices, when reading with fit to width or original, next page would't reset scroll position. (#535)
* Bump versions by dotnet-bump-version.
* Misc accessibility fixes (#536)
* Bump versions by dotnet-bump-version.
* Add support for mangapy syntax to parser (#538)
Added support for MangaPy's default naming convention to parser: vol_001-1.cbz
* Bump versions by dotnet-bump-version.
* v0.4.5 Release (#539)
* Bump versions by dotnet-bump-version.
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
Co-authored-by: Chris Plaajtes <kizaing@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Christoffer Green <christoffer.green@gmail.com>
* Fixed opds url display
* Rewrote how stat collection works, now we check in multiple places and always run stat collection in a background thread, to not block main thread.
* Cleaned up the ParseInfoTest to be more verbose
* Added benchmarking
* Added check for Windows builds so copy works
* Removed appsettings copy, no longer needed
* Fixed a bad build due to duplicate file copy
Co-authored-by: Joseph Milazzo <joseph.v.milazzo@gmail.com>
* Use cp -R instead of cp -r since OSX cp does not support -r
* Notify user if they do not have npm/dotnet installed
* Create wwwroot before using it (else get error in raspbian)
* Use unix line endings instead of dos, else wont run on osx and gives warning in linux due to wrong magic #!/bin/bash.
* 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
* Use cp -R instead of cp -r since OSX cp does not support -r
* Notify user if they do not have npm/dotnet installed
* Create wwwroot before using it (else get error in raspbian)
* Use unix line endings instead of dos, else wont run on osx
and gives warning in linux.