* Started with some basic plumbing with comic info parsing updating Series/Volume.
* We can now get chapter title from comicInfo.xml
* Hooked in the ability to store people into the chapter metadata.
* Removed no longer used imports, fixed up some foreign key constraints on deleting series with person linked.
* Refactored Summary out of the UI for Series into SeriesMetadata. Updated application to .net 6. There is a bug in metadata code for updating.
* Removed the parallel.ForEach with a normal foreach which lets us use async. For I/O heavy code, shouldn't change much.
* Refactored scan code to only check extensions with comic info, fixed a bug on scan events not using correct method name, removed summary field (still buggy)
* Fixed a bug where on cancelling a metadata request in modal, underlying button would get stuck in a disabled state.
* Changed how metadata selects the first volume to read summary info from. It will now select the first non-special volume rather than Volume 1.
* More debugging and found more bugs to fix
* Redid all the migrations as one single one. Fixed a bug with GetChapterInfo returning null when ChapterMetadata didn't exist for that Chapter.
Fixed an issue with mapper failing on GetChapterMetadata. Started work on adding people and a design for people.
* Fixed a bug where checking if file modified now takes into account if file has been processed at least once. Introduced a bug in saving people to series.
* Just made code compilable again
* Fixed up code. Now people for series and chapters add correctly without any db issues.
* Things are working, but I'm not happy with how the management of Person is. I need to take into account that 1 person needs to map to an image and role is arbitrary.
* Started adding UI code to showcase chapter metadata
* Updated workflow to be .NET 6
* WIP of updating card detail to show the information more clearly and without so many if statements
* Removed ChatperMetadata and store on the Chapter itself. Much easier to use and less joins.
* Implemented Genre on SeriesMetadata level
* Genres and People are now removed from Series level if they are no longer on comicInfo
* PeopleHelper is done with unit tests. Everything is working.
* Unit tests in place for Genre Helper
* Starting on CacheHelper
* Finished tests for ShouldUpdateCoverImage. Fixed and added tests in ArchiveService/ScannerService.
* CacheHelper is fully tested
* Some DI cleanup
* Scanner Service now calls GetComicInfo for books. Added ability to update Series Sort name from metadata files (mainly epub as comicinfo doesn't have a field)
* Forgot to move a line of code
* SortName now populates from metadata (epub only, ComicInfo has no tags)
* Cards now show the chapter title name if it's set on hover, else will default back to title.
* Fixed a major issue with how MangaFiles were being updated with LastModified, which messed up our logic for avoiding refreshes.
* Woohoo, more tests and some refactors to be able to test more services wtih mock filesystem. Fixed an issue where SortName was getting set as first chapter, but the Series was in a group.
* Refactored the MangaFile creation code into the DbFactory where we also setup the first LastModified update.
* Has file changed bug is now finally fixed
* Remove dead genres, refactor genre to use title instead of name.
* Refactored out a directory from ShouldUpdateCoverImage() to keep the code clean
* Unit tests for ComicInfo on BookService.
* Refactored series detail into it's own component
* Series-detail now received refresh metadata events to refresh what's on screen
* Removed references to Artist on PersonRole as it has no metadata mapping
* Security audit
* Fixed a benchmark
* Updated JWT Token generator to use new methods in .NET 6
* Updated all the docker and build commands to use net6.0
* Commented out sonar scan since it's not setup for net6.0 yet.
* Updated readme with new host information and new feature site.
* Implemented basic fit to screen splitting option for manga reader such that the reader will try to fit the whole cover on the screen via scaling it.
Updated a bunch of defaults in the preferences to give a better experience for first installs.
* Refactored the stat scheduling code slightly to clean it up and have better logging.
* Replaced @import with @use to lower css bundling.
* Changed up the defaults for the reading preferences to give a better experience. Fixed a duplicate render on automatic scaling due to emitting a valuechange with automatic scaling changing fit.
Implemented basic form of fit to screen. Still needs some tweaking and optimization.
* Update link to new feature server and update kavita homepage to use www.
* Updated the serverInfo to match backend. Tweaked some of the css for the changelog
* Added publish date for changelog
* First page works except for tablet
* I'm stumped, taking a break
* Hide the arrow for nav events
* Ensure specials in reading lists don't have their extensions visible
* Testing out removing no-connection
* Fixed a bug in infinite scroller where next chapter spacer when clicked would emit for prev chapter load. Fixed an issue where next/prev chapter loaders would execute when they shouldn't.
* Fit Split is working in all cases as of this code. New optimization is still needed.
* Fit to screen is now working well
* Updated the bookmark effect to look much better
* Updated new issue template to inform users to request features on our site.
* Removed an empty migration
* Added Date Added time to volume/chapter card detail modals to help users understand when new chapters are added after something has been fully read. Changed Created -> Added for better clarity.
* updating workflow discord parser
- Added ` and > to parser
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
* Refactored all the config files for Kavita to be loaded from config/. This will allow docker to just mount one folder and for Update functionality to be trivial.
* Cleaned up documentation around new update method.
* Updated docker files to support config directory
* Removed entrypoint, no longer needed
* Update appsettings to point to config directory for logs
* Updated message for docker users that are upgrading
* Ensure that docker users that have not updated their mount points from upgrade cannot start the server
* Code smells
* More cleanup
* Added entrypoint to fix bind mount issues
* Updated README with new folder structure
* Fixed build system for new setup
* Updated string path if user is docker
* Updated the migration flow for docker to work properly and Fixed LogFile configuration updating.
* Migrating docker images is now working 100%
* Fixed config from bad code
* Code cleanup
Co-authored-by: Chris Plaatjes <kizaing@gmail.com>
# Added
- Added: Added automatic character parsing for discord notifier. Now if the PR is over a certain character limit, it will trim and add an appropriate link to the full changelog. (Release for Stable, PR for Dev)
# Removed
- Removed: Removed Sentry map task from the workflow since Sentry is no longer used.
* 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
* 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
* 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
* 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
* 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
* 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 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 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
* 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
* 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 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
* 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 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 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
## 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.
## 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.
* 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
* 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 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 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
* 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.
* 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
- 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.