* Allow admins to customize the amount of progress time or last item added time for on deck calculation
* Implemented the ability to remove series from on deck. They will be removed until the user reads a new chapter.
Quite a few db lookup reduction calls for reading based stuff, like continue point, bookmarks, etc.
* Corrected tooltip for Cache
* Ensure we sync the DB to what's in appsettings.json for Cache key.
* Change the fingerprinting method for Windows installs exclusively to avoid churn due to how security updates are handled.
* Hooked up the ability to see where reviews are from via an icon on the review card, rather than having to click or know that MAL has "external Review" as title.
* Updated FAQ for Kavita+ to link directly to the FAQ
* Added the ability for all ratings on a series to be shown to the user.
Added favorite count on AL and MAL
* Cleaned up so the check for Kavita+ license doesn't seem like it's running when no license is registered.
* Tweaked the test instance buy link to test new product.
* Added an FAQ link on the Kavita+ tab.
* Don't query Kavita+ for ratings on comic libraries as there is no upstream provider yet.
* Jumpbar keys are a little hard to click
* Fixed an issue where libraries that don't allow scrobbling could be scrobbled when generating past history with read events.
* Made the min/max release year on metadata filter number and removed the spin arrows for styling.
* Fixed disable tabs color contrast due to bootstrap undocumented change.
* Refactored whole codebase to unify caching mechanism. Upped the default cache memory amount to 75 to account for the extra data load. Still LRU.
Fixed an issue where Cache key was using Port instead.
Refactored all the Configuration code to use strongly typed deserialization.
* Fixed an issue where get latest progress would throw an exception if there was no progress due to LINQ and MAX query.
* Fixed a bug where Send to Device wasn't present on Series cards.
* Hooked up the ability to change the cache size for Kavita via the UI.
* Initial Canary Push (#2055)
* Added AniList Token
* Implemented the ability to set your AniList token. License check is not in place.
* Added a check that validates AniList token is still valid. As I build out more support, I will add more checks.
* Refactored the code to validate the license before allowing UI control to be edited.
* Started license server stuff, but may need to change approach.
Hooked up ability to scrobble rating events to KavitaPlus API.
* Hooked in the ability to sync Mark Series as Read/Unread
* Fixed up unit tests and only scrobble when a full chapter is read naturally.
* Fixed up the Scrobbling service
* Tweak one of the queries
* Started an idea for Scrobble History, might rework into generic TaskHistory.
* AniList Token now has a validation check.
* Implemented a mechanism such that events are persisted to the database, processed every X hours to the API layer, then deleted from the database.
* Hooked in code for want to read so we only send what's important. Will migrate these to bulk calls to lessen strain on API server.
* Added some todos. Need to take a break.
* Hooked up the ability to backfill scrobble events after turning it on.
* Started on integrating license key into the server and ability to turn off scrobbling at the library level. Added sync history table for scrobbling and other API based information.
* Started writing to sync table
* Refactored the migrations to flatten them.
Started working a basic license add flow and added in some of the cache. Lots to do.
* Ensure that when we backfill scrobble events, we respect if a library has scrobbling turned on or not.
* Hooked up the ability to send when the series was started to be read
* Refactored the UI to streamline and group KavitaPlus Account Forms.
* Aligning with API
* Fixed bad merge
* Fixed up inputting a user license.
* Hooked up a cron task that validates licenses every 4 hours and on startup.
* Reworked how the update license code works so that we always update the cache and we handle removing license from user.
* Cleaned up some UI code
* UserDto now has if there is a valid license or not. It's not exposed though as there is no need to expose the license key ever.
* Fixed a strange encoding issue with extra ".
Started working on having the UI aware of the license information.
Refactored all code to properly pass the correct license to the API layer.
* There is a circular dependency in the code.
Fixed some theme code which wasn't checking the right variable.
Reworked the JWT interceptor to be better at handling async code.
Lots of misc code changes, DI circular issue is still present.
* Fixed the DI issue and moved all things that need bootstrapping to app.component.
* Hooked up the ability to not have a donation button show up if the server default user/admin has a valid KavitaPlus license.
* Refactored how we extract out ids from weblinks
* Ensure if API fails, we don't delete the record.
* Refactored how rate checks occur for scrobbling processing.
* Lots of testing and ensuring rate limit doesn't get destroyed.
* Ensure the media item is valid for that user's providers set.
* Refactored the loop code into one method to keep things much cleaner
* Lots of code to get the scrobbling streamlined and foolproof. Unknown series are now reported on the UI.
* Prevent duplicates for scrobble errors.
* Ensure we are sending the correct type to the Scrobble Provider
* Ensure we send the date of the scrobble event for upstream to use.
* Replaced the dedicated run backfilling of scrobble events to just trigger when setting the anilist token for the first time.
Streamlined a lot of the code for adding your license to ensure user understands how it works.
* Fixed a bug where scan series wasn't triggering word count or cover generation.
* Started the plumbing for recommendations
* Merge conflicts
* Recommendation plumbing is nearly complete.
* Setup response caching and general cleanup
* Fixed UI not showing the recommendation tab
* Switched to prod url
* Fixed broken unit tests due to Hangfire not being setup for unit tests
* Fixed branch selection (#2056)
* Damn you GA (#2058)
* Bump versions by dotnet-bump-version.
* Fixed GA not pulling the right branch and removed unneeded building from veresion job (#2060)
* Bump versions by dotnet-bump-version.
* Canary Second (#2071)
* Just started
* Started building the user review card. Fixed Recommendations not having user progress on them.
* Fixed a bug where scrobbling ratings wasn't working.
* Added a temp ability to trigger scrobbling processing for testing.
* Cleaned up the design of review card. Added a temp way to trigger scrobbling.
* Fixed clear scrobbling errors and refactored so reviews now load from DB and is streamlined.
* Refactored so edit review is now a single module component and editable from the series detail page.
* Removed SyncHistory table as it's no longer needed. Refactored read events to properly update to the latest progress information. Refactored to a new way of clearing events, so that user's can see their scrobble history.
* Fixed a bug where Anilist token wouldn't show as set due to some state issue
* Added the ability to see your own scrobble events
* Avoid a potential collision with recommendations.
* Fixed an issue where when checking for a license on UI, it wouldn't force the check (in case server was down on first check).
* External reviews are implemented.
* Fixed unit tests
* Bump versions by dotnet-bump-version.
* Made the api url dynamic based on dev more or not. (#2072)
* Bump versions by dotnet-bump-version.
* Canary Build 3 (#2079)
* Updated reviews to have tagline support to match how Anilist has them.
Cleaned up the KavitaPlus documentation and added a feature list.
Review cards look much better.
* Fixed up a NPE in scrobble event creation
* Removed the ability to have images leak in the read more review card.
Review's now show the user if they are a local user, else External.
* Added caching to the reviews and recommendations that come from an external source. Max of 50MB will be used across whole instance. Entries are cached for 1 hour.
* Reviews are looking much better
* Added the ability for users to share their series reviews with other users on the server via a new opt-in mechanism.
Fixed up some cache busting mechanism for reviews.
* More review polish to align with better matching
* Added the extra information for Recommendation matching.
* Preview of the review is much cleaner now and the full body is styled better.
* More anilist specific syntax
* Fixed bad regex
* Added the ability to bust cache.
Spoilers are now implemented for reviews. Introduces:
--review-spoiler-bg-color
--review-spoiler-text-color
* Bump versions by dotnet-bump-version.
* Canary Build 4 (#2086)
* Updated Kavita Plus feature list. Added a hover-over to the progress bars in the app to know exact percentage of reading for a chapter or series.
* Added a button to go to external review. Changed how enums show in the documentation so you can see their string value too.
Limited reviews to top 10 with proper ordering. Drastically cleaned up how we handle preview summary generation
* Cleaned up the margin below review section
* Fixed an issue where a processed scrobble event would get updated instead of a new event created.
* By default, there is now a prompt on series review to add your own, which fills up the space nicely.
Added the backend for Series Holds.
* Scrobble History is now ordered by recent -> latest. Some minor cleanup in other files.
* Added a simple way to see and toggle scrobble service from the series.
* Fixed a bug where updating the user's last active time wasn't writing to database and causing a logout event.
* Tweaked the registration email wording to be more clear for email field.
* Improved OPDS Url generation and included using host name if defined.
* Fixed the issues with choosing the correct series cover image. Added many unit tests to cover the edge cases.
* Small cleanup
* Fixed an issue where urls with , in them would break weblinks.
* Fixed a bug where we weren't trying a png before we hit fallback for favicon parsing.
* Ensure scrobbling tab isn't active without a license.
Changed how updating user last active worked to supress more concurrency issues.
* Fixed an issue where duplicate series could appear on newly added during a scan.
* Bump versions by dotnet-bump-version.
* Fixed a bad dto (#2087)
* Bump versions by dotnet-bump-version.
* Canary Build 4 (#2089)
* New server-based auth is in place with the ability to register the instance.
* Refactored to single install bound licensing.
* Made the Kavita+ tab gold.
* Change the JWTs to last 10 days. This is a self-hosted software and the usage doesn't need the level of 2 days expiration
* Bump versions by dotnet-bump-version.
* Canary Build 4 (#2090)
* By default, a new library will only have scrobbling on if it's of type book or manga given current scrobble providers.
* Started building out external reviews.
* Added the ability to re-enter your license information.
* Fixed side nav not extending enough
* Fixed a bug with info cards
* Integrated rating support, fixed review cards without a tagline, and misc fixes.
* Streamlined where ratings are located on series detail page.
* Aligned with other series lookups
* Bump versions by dotnet-bump-version.
* Canary Build 6 (#2092)
* Cleaned up some messaging
* Fixed up series detail
* Cleanup
* Bump versions by dotnet-bump-version.
* Canary Build 6 (#2093)
* Fixed scrobble token not being visible by default.
* Added a loader for external reviews
* Added the ability to edit series details (weblinks) from Scrobble Issues page.
* Slightly lessened the focus on buttons
* Fixed review cards so whenever you click your own review, it will open the edit modal.
* Need for speed - Updated Kavita log to be much smaller and replaced all code ones with a 32x version.
* Optimized a ton of our images to be much smaller and faster to load.
* Added more MIME types for response compression
* Edit Series modal name field should be readonly as it is directly mapped to file metadata or filename parsed. It shouldn't be changeable via the UI.
* Removed the ability to update the Series name via Kavita UI/API as it is no longer editable.
* Moved Image component to be standalone
* Moved ReadMore component to be standalone
* Moved PersonBadge component to be standalone
* Moved IconAndTitle component to be standalone
* Fixed some bugs with standalone.
* Hooked in the ability to scrobble series reviews.
* Refactored everything to use HashUtil token rather than InstallId.
* Swapped over to a generated machine token and fixed an issue where after registering, the license would not say valid.
* Added the missing migration for review scrobble events.
* Clean up some wording around busting cache.
* Fixed a bug where chapters within a volume could be unordered in the UI info screen.
* Refactored to prepare for external series rendering on series detail.
* Implemented external recs
* Bump versions by dotnet-bump-version.
* Canary Build 7 (#2097)
* Aligned ExtractId to extract a long, since MAL id can be just that.
* Fixed external series card not clicking correctly.
Fixed a bug when extracting a Mal link.
Fixed cancel button on license component.
* Renamed user-license to license component given new direction for licensing.
* Implemented card layout for recommendations
* Moved more components over to be standalone and removed pipes module. This is going to take some time for sure.
* Removed Cards and SharedCardsSideNav and SideNav over to standalone. This has been shaken out.
* Cleaned up a bunch of extra space on reading list detail page.
* Fixed rating popover not having a black triangle.
* When checking license, show a loading indicator for validity icon.
* Cache size can now be changed by admins if they want to give more memory for better browsing.
* Added LastReadTime
* Cleanup the scrobbling control text for Library Settings.
* Fixed yet another edge case for getting series cover image where first volume is higher than 1 and the rest is just loose leaf chapters.
* Changed OPDS Content Type to be application/atom+xml to align better with the spec.
* Fixed unit tests
* Bump versions by dotnet-bump-version.
* Canary Build 7 (#2098)
* Fixed the percentage readout on card item progress bar
* Ensure scrobble control is always visible
* Review card could show person icon in tablet viewport.
* Changed how the ServerToken for node locking works as docker was giving different results each time.
* After we update series metadata, bust cache
* License componet cleanup on the styles
* Moved license to admin module and removed feature modal as wiki is much easier to maintain.
* Bump versions by dotnet-bump-version.
* Canary Build 8 (#2100)
* Fixed a very slight amount of the active nav tag bleeding outside the border radius
* Switched how we count words in epub to handle languages that don't have spaces.
* Updated dependencies and fixed a series cover image on list item view for recs.
* Fixed a bug where external recs werent showing summary of the series.
* Rewrote the rec loop to be cleaner
* Added the ability to see series summary on series detail page on list view.
Changed Scrobble Event page to show in server time and not utc.
* Added tons of output to identify why unraid generates a new fingerprint each time.
* Refactored scrobble event table to have filtering and pagination support.
Fixed a few bad template issues and fixed loading scrobbling tab on refresh of page.
* Aligned a few apis to use a default pagination rather than a higher level one.
* Undo OPDS change as Chunky/Panels break.
* Moved the holds code around
* Don't show an empty review for the user, it eats up uneeded space and is ugly.
* Cleaned up the review code
* Fixed a bug with arrow on sortable table header.
* More scrobbling debug information to ensure events are being processed correctly.
* Applied a ton of code cleanup build warnings
* Enhanced rec matching by prioritizing matching on weblinks before falling back to name matching.
* Fixed the calculation of word count for epubs.
* Bump versions by dotnet-bump-version.
* Canary Build 9 (#2104)
* Added another unit test
* Changed how we create cover images to force the aspect ratio, which allows for Kavita to do some extra work later down the line. Prevents skewing from comic sources.
* Code cleanup
* Updated signatures to explicitly indicate they return a physical file.
* Refactored the GA to be a bit more streamlined.
* Fixed up how after cover conversion, how we refresh volume and series image links.
* Undid the PhysicalFileResult stuff.
* Fixed an issue in the epub reader where html tags within an anchor could break the navigation code for inner-links.
* Fixed a bug in GetContinueChapter where a special could appear ahead of a loose leaf chapter.
* Optimized aspect ratios for custom library images to avoid shift layout.
Moved the series detail page down a bit to be inline with first row of actionables.
* Finally fixed the media conversion issue where volumes and series wouldn't get their file links updated.
* Added some new layout for license to allow a user to buy a sub after their last sub expired.
* Added more metrics for fingerprinting to test on docker.
* Tried to fix a bug with getnextchapter looping incorrectly, but unable to solve.
* Cleanup some UI stuff to reduce bad calls.
* Suppress annoying issues with reaching K+ when it's down (only affects local builds)
* Fixed an edge case bug for picking the correct cover image for a series.
* Fixed a bug where typeahead x wouldn't clear out the input field.
* Renamed Clear -> Reset for metadata filter to be more informative of its function.
* Don't allow duplicates for reading list characters.
* Fixed a bug where when calculating recently updated, series with the same name but different libraries could get grouped.
* Fixed an issue with fit to height where there could still be a small amount of scroll due to a timing issue with the image loading.
* Don't show a loading if the user doesn't have a license for external ratings
* Fixed bad stat url
* Fixed up licensing to make it so you have to email me to get a sub renewed.
* Updated deps
* When scrobbling reading events, recalculate the highest chapter/volume during processing.
* Code cleanup
* Disabled some old test code that is likely not needed as it breaks a lot on netvips updates
* Bump versions by dotnet-bump-version.
* Canary Build 10 (#2105)
* Aligned fingerprint to be unique
* Updated email button to have a template
* Fixed inability to progress to next chapter when last page is a spread and user is using split rendering.
* Attempted fix at the column reader cutting off parts of the words. Can't fully reproduce, but added a bit of padding to help.
* Aligned AniList icon to match that of weblinks.
* Bump versions by dotnet-bump-version.
* Canary Build 11 (#2108)
* Fixed an issue with continuous reader in manga reader.
* Aligned KavitaPlus->Kavita+
* Updated the readme
* Adjusted first time registration messaging.
* Fixed a bug where having just one type of weblink could cause a bad recommendation lookup
* Removed manual invocation of scrobbling as testing is over for that feature.
* Fixed a bad observerable for downloading logs from browser.
* Don't get reviews/recs for comic libraries. Override user selection for scrobbling on Comics since there are no places to scrobble to.
* Added a migration so all existing comic libraries will have scrobbling turned off.
* Don't allow the UI to toggle scrobbling on a library with no providers.
* Refactored the code to not throw generic 500 toasts on the UI. Added the ability to clear your license on Kavita side.
* Converted reader settings to new accordion format.
* Converted user preferences to new accordion format.
* I couldn't convert CBL Reading modal to new accordion directives due to some weird bug.
* Migrated the whole application to standalone components. This fixes the download progress bar not showing up.
* Hooked up the ability to have reading list generate random items. Removed the old code as it's no longer needed.
* Added random covers for collection's as well.
* Added a speed up to not regenerate merged covers if we've already created them.
* Fixed an issue where tooltips weren't styled correctly after updating a library. Migrated Library access modal to OnPush.
* Fixed broken table styling. Fixed grid breakpoint css variables not using the ones from variables due to a missing import.
* Misc fixes around tables and some api doc cleanup
* Fixed a bug where when switching from webtoon back to a non-webtoon reading mode, if the browser size isn't large enough for double, the reader wouldn't go to single mode.
* When combining external recs, normalize names to filter out differences, like capitalization.
* Finally get to update ExCSS to the latest version! This adds much more css properties for epubs.
* Ensure rejected reviews are saved as errors
* A crap ton of code cleanup
* Cleaned up some equality code in GenreHelper.cs
* Fixed up the table styling after the bootstrap update changed it.
* Bump versions by dotnet-bump-version.
* Canary Build 12 (#2111)
* Aligned GA (#2059)
* Fixed the code around merging images to resize them. This will only look correct if this release's cover generation runs.
* Misc code cleanup
* Fixed an issue with epub column layout cutting off text
* Collection detail page will now default sort by sort name.
* Explicitly lazy load library icon images.
* Make sure the full error message can be passed to the license component/user.
* Use WhereIf in some places
* Changed the hash util code for unraid again
* Fixed up an issue with split render mode where last page wouldn't move into the next chapter.
* Bump versions by dotnet-bump-version.
* Don't ask me how, but i think I fixed the epub cutoff issue (#2112)
* Bump versions by dotnet-bump-version.
* Canary 14 (#2113)
* Switched how we build the unraid fingerprint.
* Fixed a bit of space below the image on fit to height
* Removed some bad code
* Bump versions by dotnet-bump-version.
* Canary Build 15 (#2114)
* When performing a scan series, force a recount of words/pages to ensure read time gets updated.
* Fixed broken download logs button (develop)
* Sped up the query for getting libraries and added caching for that api, which is helpful for users with larger library counts.
* Fixed an issue in directory picker where if you had two folders with the same name, the 2nd to last wouldn't be clickable.
* Added more destroy ref stuff.
* Switched the buy/manage links over to be environment specific.
* Bump versions by dotnet-bump-version.
* Canary Build 16 (#2115)
* Added the promo code for K+ and version bump.
* Don't show see more if there isn't more to see on series detail.
* Bump versions by dotnet-bump-version.
* Last Build (#2116)
* Merge
* Close the view after removing a license key from server.
* Bump versions by dotnet-bump-version.
* Reset version to v0.7.4 for merge.
* Nothing changed, this is just to retrigger a stable build. (#1967)
* v0.7.3 - The Quality of Life Update (#2036)
* Version bump
* Okay this should be the last (#2037)
* Fixed improper date visualization for reading list detail page.
* Correct not-read badge position (#2034)
---------
Co-authored-by: Andre Smith <Hobogrammer@users.noreply.github.com>
* Bump versions by dotnet-bump-version.
* Merged develop in
---------
Co-authored-by: Andre Smith <Hobogrammer@users.noreply.github.com>
* v0.7.3 - The Quality of Life Update (#2041)
* Report Media Issues (#1964)
* Started working on a report problems implementation.
* Started code
* Added logging to book and archive service.
* Removed an additional ComicInfo read when comicinfo is null when trying to load. But we've already done it once earlier, so there really isn't any point.
* Added basic implementation for media errors.
* MediaErrors will ignore duplicate errors when there are multiple issues on same file in a scan.
* Fixed unit tests
* Basic code in place to view and clear. Just UI Cleanup needed.
* Slight css upgrade
* Fixed up centering and simplified the code to use regular array instead of observables as it wasn't working.
* Fixed unit tests
* Fixed unit tests for real
* Bump versions by dotnet-bump-version.
* Expanded Metadata for EPUBs (#1965)
* Fixed a bug breaking ability to save server settings
* Explicitly capture more people roles from Epubs, else fallback to how we do it now. It seems to be getting called twice and 2nd time is overriding data. Not sure why
* Refactored the code to clean it up
* Added support for generating collections or reading list based on dc:title and collection title-type with an optional display-seq.
* ReadingList/Collection support can't be done until VersOne supports. https://github.com/vers-one/EpubReader/issues/81
* Double include author for epub parsing and let the People code handle removing duplicates.
* Bump versions by dotnet-bump-version.
* Nothing changed, this is just to retrigger a stable build. (#1967) (#1968)
* Adding paper book reader theme (#1976)
* Adding paper book reader theme
# Added
- Added: Paper book reader theme
* Fixing some leftover styles
* adding book emulation to 2column layout for paper style
* Adding migrations
* removing migration and compressing image
* Reverting DataContextModelSnapshot
* checking out datacontextmodelsnapshot file
* Bump versions by dotnet-bump-version.
* Web Links (#1983)
* Updated dependencies
* Updated the default key to be 256 bits to meet security requirements.
* Added basic implementation of web link resolving favicon. Needs lots more work and testing on all OSes.
* Implemented ability to see links and click on them for an individual chapter.
* Hooked up the ability to set Series web links.
* Render out the web link
* Refactored out the favicon so there is a backup in case it fails. Refactored the baseline image placeholders to be dark mode since that is the default.
* Added Robbie's nice error weblink fallbacks.
* Bump versions by dotnet-bump-version.
* Updated Docker entrypoint (#1984)
* Bump versions by dotnet-bump-version.
* ISBN Support (#1985)
* Fixed a bug where weblinks would always show
* Started to try and support ico -> png conversion by manually grabbing image data out, but it's hard as hell.
* Implemented ability to parse out ISBN codes for books and ISBN-13 codes for ComicInfo. I can't figure out ISBN-10.
* Fixed Favicon not working on anything but windows
* Implemented ISBN support into Kavita
* Don't round so much when transforming bytes
* Bump versions by dotnet-bump-version.
* AVIF Support & Much More! (#1992)
* Expand the list of potential favicon icons to grab.
* Added a url mapping functionality to use alternative urls for fetching icons
* Initial commit to streamline media encoding. No DB migration yet, No UI changes, no Task changes.
* Started refactoring code so that webp queries use encoding format instead.
* More refactoring to remove hardcoded webp references.
* Moved manual migrations to their own folder to keep things organized. Manually drop the obsolete webp keys.
* Removed old apis for converting media and now have one. Reworked where the conversion code was located and streamlined events and whatnot.
* Make favicon encode setting aware
* Cleaned up favicon conversion
* Updated format counter to now just use Extension from MangaFile now that it's been out a while.
* Tweaked jumpbar code to reduce a lookup to hashmap.
* Added AVIF (8-bit only) support.
* In UpdatePeopleList, use FirstOrDefault as Single adds extra checks that may not be needed.
* You can now remove weblinks from edit series page and you can leave empty cells, they will just be removed on backend.
* Forgot a file
* Don't prompt to write a review, just show the pencil. It's the same amount of clicks if you do, less if you dont.
* Fixed Refresh token using wrong Claim to look up the user.
* Refactored how we refresh authentication to perform it every 10 m ins to ensure we always stay authenticated.
* Changed Version update code to run more throughout the day. Updated some hangfire to newer method signatures.
* Bump versions by dotnet-bump-version.
* More Fixes (#1993)
* Strip just isbn: from epub isbns and log when it's back (books)
* Tweaked to allow invalid GTINs but only valid ISBN 10/13s will be saved to Kavita.
* Fixed a bug with parsing series from a filename that is just a chapter range and no chapter/volume keywords.
* Show the media issue count before you open accordion
* Added a inpage filter for Media issues
* Cleanup styles
* Fixed up some code in epub isbn parsing when it's null
* Encode filenames when downloading so that non english characters can be passed properly to UI.
* Added support to parse ComicInfo's with Empty Tags.
* Reset development settings.
* Tweaked the code in generating reading lists to avoid extra work when not needed.
* Fix comicvine's favicon
* Fixed up a unit test
* Tweaked the favicon code to ignore icons that have query parameters
* More favicon work. Expanded ability to grab icons a bit. Added in ability to not keep requesting favicons when we failed to parse already.
* Added a note for later
* Fixed stats server url
* Added more debugging
* Fixed unit tests
* Bump versions by dotnet-bump-version.
* More Fixes from Recent PRs (#1995)
* Added extra debugging for logout issue
* Fixed the null issue with ISBN
* Allow web links to be cleared out
* More logging on refresh token
* More key fallback when building Table of Contents
* Added better fallback implementation for building table of contents based on the many different ways epubs are packed and referenced.
* Updated dependencies
* Fixed up refresh token refresh which was invalidating sessions for no reason. Added it to update last active time as well.
* Bump versions by dotnet-bump-version.
* Fixed a bug with config (#1996)
* Bump versions by dotnet-bump-version.
* Changed IsDocker check (#1998)
* Refactored IsDocker to be completely static and changed to use an environment variable instead.
* Removed file from another branch
* Bump versions by dotnet-bump-version.
* Migrated up to VersOne 3.3 with epub 3.3 support. (#1999)
This enables collection and reading list support from epubs.
* Bump versions by dotnet-bump-version.
* More Bugfixes (EPUB Mainly) (#2004)
* Fixed an issue with downloading where spaces turned into plus signs.
* If the refresh token is invalid, but the auth token still has life in it, don't invalidate.
* Fixed docker users unable to save settings
* Show a default error icon until favicon loads
* Fixed a bug in mappings (keys/files) to pages that caused some links not to map appropriately. Updated epub-reader to v3.3.2.
* Expanded Table of Content generation by also checking for any files that are named Navigation.xhtml to have Kavita generate a simple ToC from (instead of just TOC.xhtml)
* Added another hack to massage key to page lookups when rewriting anchors.
* Cleaned up debugging notes
* Bump versions by dotnet-bump-version.
* More Polish (#2005)
* Implemented sort title extraction from epub 3 files.
* Added link to wiki for media errors
* Fixed the hack to reduce JWT refresh token expiration
* Fixed up a case where favicon downloading wasn't correcting links that started with // correctly.
Added a fallback for sites that just don't pngs available.
* Implemented a mechanism to fallback to Kavita's website for favicons which can be dynamically added/updated by the community.
* Reworked the logic for bookwalker which will fail to get the base html, so we have to rely on the fallback handler.
* Bump versions by dotnet-bump-version.
* Angular 16 (#2007)
* Removed adv, which isn't needed.
* Updated zone
* Updated to angular 16
* Updated to angular 16 (partially)
* Updated to angular 16
* Package update for Angular 16 (and other dependencies) is complete.
* Replaced all takeUntil(this.onDestroy) with new takeUntilDestroyed()
* Updated all inputs that have ! to be required and deleted all unit tests.
* Corrected how takeUntilDestroyed() is supposed to be implemented.
* Bump versions by dotnet-bump-version.
* Pipeline adjustment for Angular 16 (#2008)
* Bump versions by dotnet-bump-version.
* Try a different build (#2009)
* Bump versions by dotnet-bump-version.
* Continue Reading Bugfix (#2010)
* Fixed an edge case where continue point wasn't considering any chapters that had progress.
Continue point is now slightly faster and uses less memory.
* Added a unit test for a user's case. Still not reproducible
* Bump versions by dotnet-bump-version.
* Ensure chapters are sorted when getting continue point (#2011)
Fixes new behaviour in #1625
* Bump versions by dotnet-bump-version.
* Strip more forms of comments from CSS before parsing/inlining. (#2014)
Handle if ExCSS throws an exception during inlining and attempt to fallback to scoping css instead of inlining.
I still cannot update past ExCSS v4.1.0 else NPEs for common css will be thrown.
* Bump versions by dotnet-bump-version.
* Misc Changes (#2015)
* Updated ng-bootstrap
* Fixed an issue where jumpbar would be disabled when it shouldn't have been.
* When there are duplicate files that make up a volume, show the count on series detail.
* Added basic ISBN searching which will return a chapter back.
* Bump versions by dotnet-bump-version.
* Fixed count for cards (#2016)
* Bump versions by dotnet-bump-version.
* Last Release before Release Testing (#2017)
* Attempting to invalidate JWT on login (when locked out), but can't figure a way to get a JWT, since we don't store them.
Just committing as I'm going to remove the middleware, this is not worth the performance and complexity.
* Removed some security stuff that didn't line up.
* Dropping Token Expiration down to 2 days to test during release testing.
* Bump versions by dotnet-bump-version.
* Removed old migrations for Kavita startup. Only migrations from v0.7.2 onwards are present. (#2019)
* Bump versions by dotnet-bump-version.
* Fixed up jumpbar not properly disabling/enabling (#2022)
* Bump versions by dotnet-bump-version.
* Fix StoryArc & StoryArcNumber mismatch (#2018)
* Ensure StoryArc and StoryArcNumber are max length
* Trim StoryArc to remove excess spaces.
* Replaced with cleaner approach.
* Update with majora2007 recommendations
* Bump versions by dotnet-bump-version.
* Last fixes before release (#2027)
* Disable login button when a login is in-progress. This will help prevent spamming when internet is slow.
* Fixed a bug where an empty space could cause an error when creating a library.
* Apply Split Options throughout the codebase to add extra safe-guard on empty spaces and ensure trimming.
* Bump versions by dotnet-bump-version.
* Added NoContent responses when APIs don't find entities (#2028)
* Bump versions by dotnet-bump-version.
* Few More Fixes (#2032)
* Fixed spreads stretching on PC
* Fixed a bug where reading list dates couldn't be cleared out.
* Reading list page refreshes after updating info in the modal
* Fixed an issue where create library wouldn't take into account advanced settings.
* Fixed an issue where selection of the first chapter of a series to pull series-level metadata could fail in cases where you had Volume 2 and Chapter 1, Volume 2 would be selected.
* Bump versions by dotnet-bump-version.
* Fixed a bug where scan series wouldn't trigger word count analysis nor cover generation. (#2035)
* Bump versions by dotnet-bump-version.
* Okay this should be the last (#2037)
* Fixed improper date visualization for reading list detail page.
* Correct not-read badge position (#2034)
---------
Co-authored-by: Andre Smith <Hobogrammer@users.noreply.github.com>
* Bump versions by dotnet-bump-version.
* Fixed a bug where reading list month wasn't rendering correctly (#2039)
* Bump versions by dotnet-bump-version.
* Version bump (#2040)
* Bump versions by dotnet-bump-version.
* Fixed bug in CI pipeline for main
---------
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
Co-authored-by: Chris Plaatjes <kizaing@gmail.com>
Co-authored-by: pssandhu <pssandhu@users.noreply.github.com>
Co-authored-by: Jolyon Suthers <jolyon.suthers@gmail.com>
Co-authored-by: Andre Smith <Hobogrammer@users.noreply.github.com>
* Reverted a scaling issue for fit to width
* Fixed an issue where creating a new library wouldn't persist advanced options due to a conflict with default value.
When deleting a library, give the library name in the prompt.
* Fixed kbd tags in epubs with paper theme having a style conflict.
* Fixed an edge case where the incorrect first cover could be chosen in some strange grouping situations.
* Manually sort directories as some OSes don't return them in a natural sort order.
* Fixed an issue where autocompleting when adding a directory could throw an error when you're typing.
---------
Co-authored-by: Andre Smith <Hobogrammer@users.noreply.github.com>
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
Co-authored-by: Chris Plaatjes <kizaing@gmail.com>
Co-authored-by: pssandhu <pssandhu@users.noreply.github.com>
Co-authored-by: Jolyon Suthers <jolyon.suthers@gmail.com>
* Fixed spreads stretching on PC
* Fixed a bug where reading list dates couldn't be cleared out.
* Reading list page refreshes after updating info in the modal
* Fixed an issue where create library wouldn't take into account advanced settings.
* Fixed an issue where selection of the first chapter of a series to pull series-level metadata could fail in cases where you had Volume 2 and Chapter 1, Volume 2 would be selected.
* Disable login button when a login is in-progress. This will help prevent spamming when internet is slow.
* Fixed a bug where an empty space could cause an error when creating a library.
* Apply Split Options throughout the codebase to add extra safe-guard on empty spaces and ensure trimming.
* Attempting to invalidate JWT on login (when locked out), but can't figure a way to get a JWT, since we don't store them.
Just committing as I'm going to remove the middleware, this is not worth the performance and complexity.
* Removed some security stuff that didn't line up.
* Dropping Token Expiration down to 2 days to test during release testing.
* Fixed an issue with downloading where spaces turned into plus signs.
* If the refresh token is invalid, but the auth token still has life in it, don't invalidate.
* Fixed docker users unable to save settings
* Show a default error icon until favicon loads
* Fixed a bug in mappings (keys/files) to pages that caused some links not to map appropriately. Updated epub-reader to v3.3.2.
* Expanded Table of Content generation by also checking for any files that are named Navigation.xhtml to have Kavita generate a simple ToC from (instead of just TOC.xhtml)
* Added another hack to massage key to page lookups when rewriting anchors.
* Cleaned up debugging notes
* Added extra debugging for logout issue
* Fixed the null issue with ISBN
* Allow web links to be cleared out
* More logging on refresh token
* More key fallback when building Table of Contents
* Added better fallback implementation for building table of contents based on the many different ways epubs are packed and referenced.
* Updated dependencies
* Fixed up refresh token refresh which was invalidating sessions for no reason. Added it to update last active time as well.
* Strip just isbn: from epub isbns and log when it's back (books)
* Tweaked to allow invalid GTINs but only valid ISBN 10/13s will be saved to Kavita.
* Fixed a bug with parsing series from a filename that is just a chapter range and no chapter/volume keywords.
* Show the media issue count before you open accordion
* Added a inpage filter for Media issues
* Cleanup styles
* Fixed up some code in epub isbn parsing when it's null
* Encode filenames when downloading so that non english characters can be passed properly to UI.
* Added support to parse ComicInfo's with Empty Tags.
* Reset development settings.
* Tweaked the code in generating reading lists to avoid extra work when not needed.
* Fix comicvine's favicon
* Fixed up a unit test
* Tweaked the favicon code to ignore icons that have query parameters
* More favicon work. Expanded ability to grab icons a bit. Added in ability to not keep requesting favicons when we failed to parse already.
* Added a note for later
* Fixed stats server url
* Added more debugging
* Fixed unit tests
* Expand the list of potential favicon icons to grab.
* Added a url mapping functionality to use alternative urls for fetching icons
* Initial commit to streamline media encoding. No DB migration yet, No UI changes, no Task changes.
* Started refactoring code so that webp queries use encoding format instead.
* More refactoring to remove hardcoded webp references.
* Moved manual migrations to their own folder to keep things organized. Manually drop the obsolete webp keys.
* Removed old apis for converting media and now have one. Reworked where the conversion code was located and streamlined events and whatnot.
* Make favicon encode setting aware
* Cleaned up favicon conversion
* Updated format counter to now just use Extension from MangaFile now that it's been out a while.
* Tweaked jumpbar code to reduce a lookup to hashmap.
* Added AVIF (8-bit only) support.
* In UpdatePeopleList, use FirstOrDefault as Single adds extra checks that may not be needed.
* You can now remove weblinks from edit series page and you can leave empty cells, they will just be removed on backend.
* Forgot a file
* Don't prompt to write a review, just show the pencil. It's the same amount of clicks if you do, less if you dont.
* Fixed Refresh token using wrong Claim to look up the user.
* Refactored how we refresh authentication to perform it every 10 m ins to ensure we always stay authenticated.
* Changed Version update code to run more throughout the day. Updated some hangfire to newer method signatures.
* Fixed a bug where weblinks would always show
* Started to try and support ico -> png conversion by manually grabbing image data out, but it's hard as hell.
* Implemented ability to parse out ISBN codes for books and ISBN-13 codes for ComicInfo. I can't figure out ISBN-10.
* Fixed Favicon not working on anything but windows
* Implemented ISBN support into Kavita
* Don't round so much when transforming bytes
* Updated dependencies
* Updated the default key to be 256 bits to meet security requirements.
* Added basic implementation of web link resolving favicon. Needs lots more work and testing on all OSes.
* Implemented ability to see links and click on them for an individual chapter.
* Hooked up the ability to set Series web links.
* Render out the web link
* Refactored out the favicon so there is a backup in case it fails. Refactored the baseline image placeholders to be dark mode since that is the default.
* Added Robbie's nice error weblink fallbacks.
* Started working on a report problems implementation.
* Started code
* Added logging to book and archive service.
* Removed an additional ComicInfo read when comicinfo is null when trying to load. But we've already done it once earlier, so there really isn't any point.
* Added basic implementation for media errors.
* MediaErrors will ignore duplicate errors when there are multiple issues on same file in a scan.
* Fixed unit tests
* Basic code in place to view and clear. Just UI Cleanup needed.
* Slight css upgrade
* Fixed up centering and simplified the code to use regular array instead of observables as it wasn't working.
* Fixed unit tests
* Fixed unit tests for real
* Code cleanup.
Fixed OPDS images missing api key.
Fixed theme color on site manifest not being black.
* Removed a console.log from timeago pipe
* Reading list page is now alphabetical and the modal for adding to a reading list is ordered by most recent.
* Fixed a bug where remove read from reading list failed due to Calculating Start and End date assuming chapter would always be there.
* Fixed a bug where reading list cover would get reset when editing the reading list.
* Fixed a bug where reading list item didn't have not read badge. It's on old style.
* Fixed a bug where user-preferences was hitting an admin only api when there was a better alternative
* Slight memory improvement on a common db call
* Fixed a bug where resetting to default theme when a theme was deleted was throwing an exception and failing.
* All Login dtos now have the active KavitaVersion to make external apps able to handle what version of the API they are connecting with.
* Fixed up a case where getVolume repo method always assumed there was a volume by that Id.
* Removed extra trace messages as the people issue might have been resolved.
* When registering, disable button until form is valid. Allow non-email formatted emails, but not blank.
* Fixed opds not having http(s)://
* Added a new API to allow scanning all libraries from end point
* Moved Bookmarks directory to Media tab
* Fixed an edge case for finding next chapter when we had volume 1,2 etc but they had the same chapter number.
* Code cleanup
* Enhance plugin/authenticate to allow RefreshToken to be returned as well.
* When typing a series name, min, or max filter, press enter to apply metadata filter.
* Cleaned up the documentation around MaxCount and TotalCount
* Fixed a bug where PublicationStatus wasn't being correctly set due to some strange logic I coded.
* Fixed bookmark mode not having access to critical page dimensions. Fetching bookmark info api now returns dimensions by default.
* Fixed pagination scaling code for different fitting options
* Fixed missing code to persist page split in manga reader
* Removed unneeded prefetch of blank images in bookmark mode
* Allow users to setup an account with a fake email and the same username without hitting the validate username code.
* Fixed a bug where opds url could have //.
Fixed a bug where baseurl wasn't being used for invite link generation
* Fixed enum mismatch causing age rating to display incorrectly on UI
* Updated a ton of dependencies. PDFs reader got a big update from PDF.js 2.6 -> 3.x
* Rolled back fontawesome update
* Updated to latest angular patch. Fixed search being too long instead of just to the end of the browser screen.
* Fixed alignment on download icon for download indicator in cards
* Include progress information on Want To Read API and when marking something as Read, perform cleanup service on want to read.
* Removed mark-read updating want to read. As there are series restrictions and it could be misleading.
* Tweaked login page spacing when form is dirty
* Replaced an object instantiation
* Commented out a few tests that always break when updating NetVips (but always work)
* Updated ngx-toastr
* Added styles for alerts to Kavita. They were somehow missing. Fixed an issue where when OPDS was disabled, user preferences wouldn't tell them.
* Wired up a reset base url button to match Ip Addresses
* Disable ipAddress and port for docker users
* Removed cache dir since it's kinda pointless currently
* Started the update for OPDS BaseUrl support
* Fixed OPDS url not reflecting base url on localhost
* Added extra plumbing to allow sending a real email when testing a custom service.
* Implemented OPDS support under Base Url. Added pagination to all APIs where applicable.
* Added a swallowing of permission denied on Updating baseurl in index.html for inapplicable users.
* Fixed a bad test
* Fixed up an issue where image might be cut off in fit to height
* Removed some calls to backend for translating age rating to a string
* Fixed an issue with sizing on page splitting right to left.
* Ensure all image access requires apikey
* Removed a TODO
# Fixed
- Fixed a formatting issue where there was a unnecessary - at the beginning of titles. (develop)
# Changed
- Updated github action version. (develop)
* Flattening OPDS Structure
# Changed
- Flattened OPDS structure to reduce user taps.
* Fixing format
* Fixing book series titles
* Optimized file size to use pre-calculated data to avoid an I/O touch.
* Fixes#1898 by aligning all content headers to the correct MIME types
* Remove dead code
* Fixed a bug with continue point where it fails on chapters or volumes tagged with a range
---------
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
* Updated number inputs with a more mobile friendly control
* Started writing lots of unit tests on PersonHelper to try and hammer out foreign constraint
* Fixes side-nav actionable alignment
* Added some unit tests
* Buffed out the unit tests
* Applied input modes throughout the app
* Fixed a small bug in refresh token validation to make it work correctly
* Try out a new way to block multithreading from interacting with people during series metadata update.
* Fixed the lock code to properly lock, which should help with any constraint issues.
* Locking notes
* Tweaked locking on people to prevent a constraint issue. This slows down the scanner a bit, but not much. Will tweak after validating on a user's server.
* Replaced all DBFactory.Series with SeriesBuilder.
* Replaced all DBFactory.Volume() with VolumeBuilder
* Replaced SeriesMetadata with Builder
* Replaced DBFactory.CollectionTag
* Lots of refactoring to streamline entity creation
* Fixed one of the unit tests
* Refactored all of new Library()
* Removed tag and genre
* Removed new SeriesMetadata
* Refactored new Volume()
* MangaFile()
* ReadingList()
* Refactored all of Chapter and ReadingList
* Add title to all event widget flows
* Updated Base Url to inform user it doesn't work for docker users with non-root user.
* Added unit test coverage to FormatChapterTitle and FormatChapterName.
* Started on Unit test for scanner, but need to finish it later.
---------
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
* Fixed bookmarking failing to convert to webp
* Brought the ag-swipe/ng-swipe code into Kavita due to being abandoned by developer and angular requirements.
* Fixed average reading time per week finally
* Cleaned up some extra decimals on time duration pipe
* Don't try to update index.html for base url on local. Fixed ag-swipe on prod mode.
* Updated a link on theme manager to point to the new github
* Range knobs should be primary color on firefox too
* Implemented the ability to get thumbnails of pages inside an archive or pdf.
* Updated packages and fixed opds-ps 1.2 issue
* Fixed lock file
* Allow Kavita's Swagger to hit instances with CORS
* Added IP/Request logging for Security Audits
* Linked up Summary tag from CBL into Kavita.
* Redid the migration so SecurityEvent now has UTC date as well.
* Split security logging to a separate file
* Update to new versions of checkout and setup
* Added a PR check on PR body to ensure that it doesn't contain any characters that break our discord hook.
* Updating action
* optimize regex in action
* Fixed an issue where fit to width would cause the actual height of the image to be shown for pagination bars, instead of rendered.
* Added some new code in GetPageFromFiles to ensure pages that exceed array map down to last file.
* Added comment about robots
* Fixed up unit tests for new ReaderService signature
* Kavita now cleans up empty reading lists at night
* Don't allow nightly cleanup to run if we are running media conversion tasks
* Fixed some bugs in typeahead, it should behave much more reliably.
* Fix an issue where emulate comic book wasn't extending to the bottom properly
* Added support for Series Chapter 001 Volume 001
* Refactor XFrameOptions="SameOrigins" out to allow users to override in appsettings.json.
* Added a rate limiter for some endpoints, but it doesn't seem to be triggering
---------
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
* Use Reading Order to count epub pages rather than raw HTML files.
* Send email on background thread for initial invite flow.
* Reorder default writing style for new users so Horizontal is default
* Changed reading activity to use average hours read rather than events to bring more meaningful data.
* added ability to start reading incognito from the top of series detail, needs a bit of styling help though.
* Refactored extensions out into their own package, added new fields for reading list to cover total run, cbl import now takes those dates and overrides on import. Replaced many instances of numbers to be comma separated.
* Added ability to edit reading list run start and end year/month. Refactored some code for valid month/year into a helper method.
* Added a way to see the reading list's release years.
* Added some merged image code, but had to remove due to cover dimensions not fixed.
* tweaked style for accessibility mode on reading list items
* Tweaked css for non virtualized and virtualized containers
* Fixed release updates failing
* Commented out the merge code.
* Typo on words read per year
* Fixed unit tests
* Fixed virtualized scroll
* Cleanup CSS
* Moved Collapse Series with relationships into a user preference rather than library setting.
* Fixed bookmarks not converting to webp after initial save
* Fixed a bug where when merging we'd print out a duplicate series error when we shouldn't have
* Fixed a bug where clicking on a genre or tag from server stats wouldn't load all-series page in a filtered state.
* Implemented the ability to have Login role and thus disable accounts.
* Ensure first time flow gets the Login role
* Refactored user management screen so that pending users can be edited or deleted before the end user accepts the invite. A side effect is old legacy users that were here before email was required can now be deleted.
* Show a progress bar under the main series image on larger viewports to show whole series progress.
* Removed code no longer needed
* Cleanup tags, people, collections without connections after editing series metadata.
* Moved the Entity Builders to the main project
* Fixed up a localization lookup test case
* Refactored some webp to a unified method
* Cleaned up some code
* Expanded webp conversion for covers to all entities
* Code cleanup
* Prompt the user when they are about to delete multiple series via bulk actions
* Aligned Kavita to OPDS-PS 1.2.
* Fixed a bug where clearing metadata filter of series name didn't clear the actual field.
* Added some documentation
* Refactored how covert covers to webp works. Now we will handle all custom covers for all entities. Volumes and Series will not be touched but instead be updated via a RefreshCovers call. This will fix up the references much faster.
* Fixed up the OPDS-PS 1.2 attributes to only show on PS links
* Fixed a typo in a log
* Invalid XML files now "validate" correctly by sending back a failure.
* Cleaned up messaging on backend and frontend to provide some linking on series name when collision, handle corrupt xml files, etc.
* When reading list conflict occurs, show the reading list name that's conflicting. Started refactoring the code to allow multiple files to be imported at once.
* Started adding new CBL elements for some enhancements I have planned with maintainers.
* Default to empty string for IpAddress to allow to fallback into existing experience
* Tweaked the layout of reading list page (not complete), moved some not used much controls to page extras and reordered the buttons for reading list
* Edit Reading Lists now allows selection of cover image from existing items
* Fixed a bug where cover chooser base64 to image would fail to write webp files.
* Refactored the validate step to now handle multiple files in one go.
* Clean up code
* Don't show CBL name if there were xml errors that prevented showing it
* Don't allow user to go prev step after they perform the import.
* Cleaned up the heading code for accordions
* Fixed a bug with import keeping failed items
* Sort the failures to the bottom of result windows
* CBL import is pretty solid. Need one pass from Robbie on Reading List Page
* Add vertical reading mode support and update API for reading mode preference
* Removed dead code, added a fix for scroll end margins in chrome when in vertical mode(book reader). Added back some comments
* Added Description()] annotation for the ReadingMode enum, like other enums, and added summary documentation
* Added the ability to scroll in vertical writing style without holding down shift. Also renamed the book reader's readingMode to writing style.
* Renamed the BookReadingMode to BookWritingStyle. And changed the migrations accordingly.
* Fixed some minor bugs, regarding scrolling and vertical writing style when the book settings is open.
* Fixed a minor bug where the graphics regarding the current page would require the mouse to be moved before it got updated when switching between writing styles.
* Fixed some bugs regarding furigana getting a bit cropped same for images
* Add vertical reading mode support and update API for reading mode preference
* Removed dead code, added a fix for scroll end margins in chrome when in vertical mode(book reader). Added back some comments
* Added Description()] annotation for the ReadingMode enum, like other enums, and added summary documentation
* Added the ability to scroll in vertical writing style without holding down shift. Also renamed the book reader's readingMode to writing style.
* Renamed the BookReadingMode to BookWritingStyle. And changed the migrations accordingly.
* Fixed some minor bugs, regarding scrolling and vertical writing style when the book settings is open.
* Fixed a minor bug where the graphics regarding the current page would require the mouse to be moved before it got updated when switching between writing styles.
* Fixed some bugs regarding furigana getting a bit cropped same for images
* Added reset support for writing style, after rebase.
* Changes pagination for vertical scrolling such as the user will need to scroll to end before being able to paginate. Previously it felt unnatural and the user could accidentally paginate while scrolling on mobile.
* Pagination would not stick to the left if the content was smaller than the reader in vertical writing style.
* Fixed summary text
* Added missing line, fixes build error
* Addresses the comments given in code-review.
* Moved columnGap outside the class, and changed it to a const
* Updated to net7.0
* Updated GA to .net 7
* Updated System.IO.Abstractions to use New factory.
* Converted Regex into SourceGenerator in Parser.
* Updated more regex to source generators.
* Enabled Nullability and more regex changes throughout codebase.
* Parser is 100% GeneratedRegexified
* Lots of nullability code
* Enabled nullability for all repositories.
* Fixed another unit test
* Refactored some code around and took care of some todos.
* Updating code for nullability and cleaning up methods that aren't used anymore. Refctored all uses of Parser.Normalize() to use new extension
* More nullability exercises. 500 warnings to go.
* Fixed a bug where custom file uploads for entities wouldn't save in webP.
* Nullability is done for all DTOs
* Fixed all unit tests and nullability for the project. Only OPDS is left which will be done with an upcoming OPDS enhancement.
* Use localization in book service after validating
* Code smells
* Switched to preview build of swashbuckle for .net7 support
* Fixed up merge issues
* Disable emulate comic book when on single page reader
* Fixed a regression where double page renderer wouldn't layout the images correctly
* Updated to swashbuckle which support .net 7
* Fixed a bad GA action
* Some code cleanup
* More code smells
* Took care of most of nullable issues
* Fixed a broken test due to having more than one test run in parallel
* I'm really not sure why the unit tests are failing or are so extremely slow on .net 7
* Updated all dependencies
* Fixed up build and removed hardcoded framework from build scripts. (this merge removes Regex Source generators). Unit tests are completely busted.
* Unit tests and code cleanup. Needs shakeout now.
* Adjusted Series model since a few fields are not-nullable. Removed dead imports on the project.
* Refactored to use Builder pattern for all unit tests.
* Switched nullability down to warnings. It wasn't possible to switch due to constraint issues in DB Migration.
* Wrote my own step tracker and added a prev button. Works up to first conflict flow.
* Everything but final import is hooked up in the UI. Polish still needed, but getting there.
* Making more progress in the CBL import flow.
* Ready for the last step
* Cleaned up some logic to prepare for the last step and reset
* Users like order to be starting at 1
* Fixed a few bugs around cbl import
* CBL import is ready for some basic testing
* Added a reading list hook on side nav
* Fixed up unit tests
* Added icons and color to the import flow
* Tweaked some phrasing
* Hooked up a loading variable but disabled the component as it didn't look good.
* Styling it up
* changed an icon to better fit
---------
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
* When skipping over folders in a scan, inform the ui
* Try out new backout condition for library watcher.
* Tweaked the code for folder watching to be more intense on killing if stuck in inotify loop.
* Streamlined my implementation of enhanced LibraryWatcher
* Added new extension method to make complex where statements cleaner.
* Added an implementation to flatten series and not show them if they have relationships defined. Only the parent would show. Currently disabled until i figure out how to apply it.
* Added the ability to collapse series that are not the primary entry point to reading. Configurable in library settings, only applies when all libraries in a filter have the property to true.
* Exclude from parsing .@_thumb directories, a QNAP system folder.
Show number of items a JumpKey has
* Refactored some time reading to display in days, months, years or minutes.
* Stop showing loading indicator when no next/prev chapter
* Fixed a bug where manage collections wasn't named correctly in UI.
* Slight tweaks on email flow
* Fixed a bug with getting continue point where there was a single volume unread and a later volume with chapters inside it, the chapters were being picked.
* Fixed a bug where resuming from jump key wasn't working (develop)
* Cleaned up the spacing
* Add ability to save readinglist comicinfo fields in Chapter.
* Added the appropriate fields and migration for Reading List generation.
* Started the reading list code
* Started building out the CBL import code with some initial unit tests.
* Fixed first unit test
* Started refactoring control code into services and writing unit tests for ReadingLists. Found a logic issue around reading list title between create/update. Will be corrected in this branch with unit tests.
* Can't figure out how to mock UserManager, so had to uncomment a few tests.
* Tooltip for total pages read shows the full number
* Tweaked the math a bit for average reading per week.
* Fixed up the reading list unit tests. Fixed an issue where when inserting chapters into a blank reading list, the initial reading list item would have an order of 1 instead of 0.
* Cleaned up the code to allow the reading list code to be localized easily and fixed up a bug in last PR.
* Fixed a sorting issue on reading activity
* Tweaked the code around reading list actionables not showing due to some weird filter.
* Fixed edit library settings not opening on library detail page
* Fixed a bug where reading activity dates would be out of order due to a bug in how charts works. A temp hack has been added.
* Disable promotion in edit reading list modal since non-admins can (and should have) been able to use it.
* Fixed a bug where non-admins couldn't update their OWN reading lists. Made uploading a cover image for readinglists now check against the user's reading list access to allow non-admin's to set images.
* Fixed an issue introduced earlier in PR where adding chapters to reading list could cause order to get skewed.
* Fixed another regression from earlier commit
* Hooked in Import CBL flow. No functionality yet.
* Code is a mess. Shifting how the whole import process is going to be done. Commiting so I can pivot drastically.
* Very rough code for first step is done.
* Ui has started, I've run out of steam for this feature.
* Cleaned up the UI code a bit to make the step tracker nature easier without a dedicated component.
* Much flow implementation and tweaking to how validation checks and what is sent back.
* Removed import via cbl code as it's not done. Pushing to next release.
* Introduced a new claim on the Token to get UserId as well as Username, thus allowing for many places of reduced DB calls. All users will need to reauthenticate.
Introduced UTC Dates throughout the application, they are not exposed in all DTOs, that will come later when we fully switch over. For now, Utc dates will be updated along side timezone specific dates.
Refactored get-progress/progress api to be 50% faster by reducing how much data is loaded from the query.
* Speed up the following apis:
collection/search, download/bookmarks, reader/bookmark-info, recommended/quick-reads, recommended/quick-catchup-reads, recommended/highly-rated, recommended/more-in, recommended/rediscover, want-to-read/
* Added a migration to sync all dates with their new UTC counterpart.
* Added LastReadingProgressUtc onto ChapterDto for some browsing apis, but not all.
Added LastReadingProgressUtc to reading list items.
Refactored the migration to run raw SQL which is much faster.
* Added LastReadingProgressUtc onto ChapterDto for some browsing apis, but not all.
Added LastReadingProgressUtc to reading list items.
Refactored the migration to run raw SQL which is much faster.
* Fixed the unit tests
* Fixed an issue with auto mapper which was causing progress page number to not get sent to UI
* series/volume has chapter last reading progress
* Added filesize and library name on reading list item dto for CDisplayEx.
* Some minor code cleanup
* Forgot to fill a field
* Made the unread badges slightly smaller and rounded on top right.
* A bit more tweaks on the not read badges. Looking really nice now.
* In order to start the work on managing collections from ScanLoop, I needed to refactor collection apis into the service layer and add unit tests.
Removed ToUpper Normalization for new tags.
* Hooked up ability to auto generate collections from SeriesGroup metadata tag.
* Refactored some code in BookService to make the code easier to understand
* More lint fixes
* Use npm ci for installs in pipeline
* Fixed build system again by deleting nodejs. New build system uses package-lcok going forward.
* Added a test case for Reading Time Estimation calculations
* Some cleanup
* Added even more testing to try and get scare's issue captured.
* Don't show "not much going on" when we are actively downloading
* Swipe to paginate is now behind a flag in the user preferences.
* Added a new server setting for host name, if the server sits behind a reverse proxy. If this is set, email link generation will use it and will not perform any checks on accessibility (thus email will always send)
* Refactored the code that checks if the server is accessible to check if host name is set, and thus return rue if so.
* Added back the system drawing library for markdown parsing.
* Fixed a validation error
* Fixed a bug where folder watching could get re-triggered when it was disabled at a server level.
* Made the manga reader loader absolute positioned for better visibility
* Indentation
* Updated theme support to be able to customize the tile color dynamically from a theme via --tile-color. In addition, --theme-color will update apple-mobile-web-app-status-bar-style as well as the non-apple variants
* Removed --manga-reader-bg-color as it wasn't used anywhere. Fixed double pagination on swipe.
* Cleaned up some dead threshold code for swipe.
* Started refactoring tests to use an abstract test class. Stopping because I should do on the .net 7 branch to avoid large merge conflicts. Tests need to be re-designed so they can run in parallel.
* Fixed a bug in reading lists where when deleting an item, order could be miscalculated.
* Started adding new information for stat service. Refactored time spent reading to be more accurate by taking average time against how much of the chapter the user has read.
* Hooked up total time reading at server stat level. Don't show fancy graphs on mobile.
* Added new stats for v0.7
* Added a test for Clearing want to read
* Fixed a few tests that weren't resetting state between runs
* Fixed some broken unit tests
* Ensure all Series queries sort by a case invariant string.
* Added more aggressive caching of images. This will result in a min delay on pages after a cover is changed.
* Fixed a bug where if during new word count calculation, new word count is zero, restoring the old count wasn't working.
* Cleaned up some of the code for getting time estimates
* Fixed a bug where triggering swipe right wasn't working when there was no scroll
* Delete the temp folder for creating a download after a full zip is created.
* Fixed a bug where when clicking on a series rating for first time, the rating wasn't populating in the modal.
* Fixed a bug on Scroll mode with immersive mode, the bottom bar could clip with the book body.
* Cleanup some uses of var
* Refactored text as json into a type so I don't have to copy/paste everywhere
* Theme styles now override the defaults and theme owners no longer need to maintain all the variables themselves.
Themes can now override the color of the header on mobile devices via --theme-color and Kavita will now update both theme color as well as color scheme.
* Fixed a bug where last active on user stats wasn't for the particular user.
* Added a more accurate word count calculation and the ability to see the word counts year over year.
* Added a new table for long term statistics, like number of files over the years. No views are present for this data, I will add them later.