Commit graph

466 commits

Author SHA1 Message Date
majora2007
610d9c0f53 Bump versions by dotnet-bump-version. 2022-08-28 22:04:00 +00:00
majora2007
ae13775791 Bump versions by dotnet-bump-version. 2022-08-28 20:34:29 +00:00
therobbiedavis
b64ed6df8d Bump versions by dotnet-bump-version. 2022-08-26 00:46:25 +00:00
majora2007
4899ed3194 Bump versions by dotnet-bump-version. 2022-08-25 23:54:44 +00:00
majora2007
36300c538c Bump versions by dotnet-bump-version. 2022-08-25 21:06:37 +00:00
majora2007
d6cc93e00c Bump versions by dotnet-bump-version. 2022-08-25 16:48:54 +00:00
majora2007
d4285c49f3 Bump versions by dotnet-bump-version. 2022-08-25 00:14:58 +00:00
majora2007
e37d7cfbba Bump versions by dotnet-bump-version. 2022-08-24 16:40:36 +00:00
majora2007
fc0121e7a8 Bump versions by dotnet-bump-version. 2022-08-23 16:57:17 +00:00
therobbiedavis
87ad5844f0 Bump versions by dotnet-bump-version. 2022-08-23 14:31:02 +00:00
majora2007
ca2137fbfe Bump versions by dotnet-bump-version. 2022-08-22 20:41:43 +00:00
majora2007
ac9f1c722e Bump versions by dotnet-bump-version. 2022-08-22 17:30:48 +00:00
majora2007
354be09c4c Bump versions by dotnet-bump-version. 2022-08-20 20:43:40 +00:00
majora2007
66a998425b Bump versions by dotnet-bump-version. 2022-08-20 16:48:23 +00:00
majora2007
252f31db3a Bump versions by dotnet-bump-version. 2022-08-19 15:37:17 +00:00
majora2007
df094f58c9 Bump versions by dotnet-bump-version. 2022-08-19 12:56:00 +00:00
Joseph Milazzo
0eac193248
New Scan Loop (#1447)
* Staging the code for the new scan loop.

* Implemented a basic idea of changes on drives triggering scan loop. Issues: 1. Scan by folder does not work, 2. Queuing system is very hacky and needs a separate thread, 3. Performance degregation could be very real.

* Started writing unit test for new loop code

* Implemented a basic method to scan a folder path with ignore support (not implemented, code in place)

* Added some code to the parser to build out the idea of processing series in batches based on some top level folder.

* Scan Series now uses the new code (folder based parsing) and now handles the LocalizedSeries issue.

* Got library scan working with the new folder-based scan loop. Updated code to set FolderPath (for improved scan times and partial scan support).

* Wrote some notes on update library scan loop.

* Removed migration for merge

* Reapplied the SeriesFolder migration after merge

* Refactored a check that used multiple db calls into one.

* Made lots of progress on ignore support, but some confusion on underlying library. Ticket created. On hold till then.

* Updated Scan Library and Scan Series to exit early if no changes are on the underlying folders that need to be scanned.

* Implemented the ability to have .kavitaignore files within your directories and Kavita will parse them and ignore files and directories based on rules within them.

* Fixed an issue where ignore files nested wouldn't stack with higher level ignores

* Wrote out some basic code that showcases how we can scan series or library based on file events on the underlying system. Very buggy, needs lots of edge case testing and logging and dupplication checking.

* Things are working kinda. I'm getting lost in my own code and complexity. I'm not sure it's worth it.

* Refactored ScanFiles out to Directory Service.

* Refactored more code out to keep the code clean.

* More unit tests

* Refactored the signature of ParsedSeries to use IList. Started writing unit tests and reworked the UpdateLibrary to work how it used to with new scan loop code (note: using async update library/series does not work).

* Fixed the bug where processSeriesInfos was being invoked twice per series and made the code work very similar to old code (except loose leaf files dont work) but with folder based scanning.

* Prep for unit tests (updating broken ones with new implementations)

* Just some notes. Not sure I want to finish this work.

* Refactored the LibraryWatcher with some comments and state variables.

* Undid the migrations in case I don't move forward with this branch

* Started to clean the code and prepare for finishing this work.

* Fixed a bad merge

* Updated signatures to cleanup the code and commit to the new strategy for scanning.

* Swapped out the code with async processing of series on a small library

* The new scan loop is working in both Sync and Async methods. The code is slow and not optimized. This represents a good point to start polling and applying optimizations.

* Refactored UpdateSeries out of Scanner and into a dedicated file.

* Refactored how ProcessTasks are awaited to allow more async

* Fixed an issue where side nav item wouldn't show correct highlight and migrated to OnPush

* Moved where we start to stopwatch to encapsulate the full scan

* Cleaned up SignalR events to report correctly (still needs a redesign)

* Remove the "remove" code until I figure it out

* Put in extremely expensive series deletion code for library scan.

* Have Genre and Tag update the DB immediately to avoid dup issues

* Taking a break

* Moving to a lock with People was successful. Need to apply to others.

* Refactored code for series level and tag and genre with new locking strategy.

* New scan loop works. Next up optimization

* Swapped out the Kavita log with svg for faster load

* Refactored metadata updates to occur when the series are being updated.

* Code cleanup

* Added a new type of generic message (Info) to inform the user.

* Code cleanup

* Implemented an optimization which prevents any I/O (other than an attribute lookup) for Library/Series Scan. This can bring a recently updated library on network storage (650 series) to fully process in 2 seconds.

Fixed a bug where File Analysis was running everytime for each non-epub file.

* Fixed ARM x64 builds not being able to view PDF cover images due to a bad update in DocNet.

* Some code cleanup

* Added experimental signalr update code to have a more natural refresh of library-detail page

* Hooked in ability to send new series events to UI

* Moved all scan (file scan only) tasks into Scan Queue. Made it so scheduled ScanLibraries will now check if any existing task is being run and reschedule for 3 hours, and 10 mins for scan series.

* Implemented the info event in the events widget and added a clear all button to dismiss all infos and errors.  Added --event-widget-info-bg-color

* Remove --drawer-background-color since it's not used

* When new series added, inject directly into the view.

* Some debug code cleanup

* Fixed up the unit tests

* Ensure all config directories exist on startup

* Disabled Library Watching (that will go in next build)

* Ensure update for series is admin only

* Lots of code changes, scan series kinda works, specials are splitting, optimizations are failing. Demotivated on this work again.

* Removed SeriesFolder migration

* Added the SeriesFolder migration

* Added a new pipe for dates so we can provide some nicer defaults. Added folder path to the series detail.

* The scan optimizations now work for NTFS systems.

* Removed a TODO

* Migrated all the times to use DateTime.Now and not Utc.

* Refactored some repo calls to use the includes flag pattern

* Implemented a check for the library scan optimization check to validate if the library was updated (type change, library rename, folder change, or series deleted) and let the optimization be bypassed.

* Added another optimization which will use just folder attribute of last write time if the drive is not NTFS.

* Fixed a unit test

* Some code cleanup
2022-08-19 05:42:38 -07:00
majora2007
8708b9ced5 Bump versions by dotnet-bump-version. 2022-08-17 14:01:12 +00:00
Joseph Milazzo
ae891c34a2
Version bump (#1442) 2022-08-17 06:47:07 -07:00
majora2007
9f4d50584e Bump versions by dotnet-bump-version. 2022-08-16 19:23:43 +00:00
majora2007
a3a0b61fc0 Bump versions by dotnet-bump-version. 2022-08-14 14:48:40 +00:00
majora2007
79b8df1112 Bump versions by dotnet-bump-version. 2022-08-14 13:53:11 +00:00
majora2007
f22e8e88d7 Bump versions by dotnet-bump-version. 2022-08-14 00:39:47 +00:00
Joseph Milazzo
e9c5cf3c92
Pre-Shakeout (#1429)
* Fixed zindex on some buttons due to a bug being fixed by bootstrap. Tweaked some styles from new bootstrap design.

* Fixed a bug where scan series, when generating cover images wouldn't emit cover updates to the UI.

* Fixed an issue where opening directory picker to change bookmark directory then clicking Share without chaning directory, would show the field as empty.

* Updating workflow

* Reverting version

Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
2022-08-13 17:28:04 -07:00
majora2007
6ebad6cb48 Bump versions by dotnet-bump-version. 2022-08-12 21:40:09 +00:00
majora2007
7093542d81 Bump versions by dotnet-bump-version. 2022-08-12 02:05:39 +00:00
majora2007
2ae44a97c1 Bump versions by dotnet-bump-version. 2022-08-12 01:51:36 +00:00
majora2007
f9a60d6389 Bump versions by dotnet-bump-version. 2022-08-12 01:29:34 +00:00
majora2007
7392747388 Bump versions by dotnet-bump-version. 2022-08-09 13:15:52 +00:00
Joseph Milazzo
b38a26f92b
Angular 14 (#1420)
* Updated to Angular 14

* Fixed all new tslint issues

* Fixed a routing bug for Angular 14

* Updated ngBootstrap and bootstrap. Fixed side nav item not highlighting on route change

* Refactored how default dark styles are done

* Migrated everything to a typed form

* Bump versions by dotnet-bump-version.

* Fixed a regression where click areas need an explicit z-index

* Cleanup some css

* Bumped docnet back to the alpha which has our downstream fixes

* Updated dependencies to later versions. Mainly just NetVips with some archive fixes.

* Fixed broken unit tests (due to some fixes in SharpCompress that changed byte arrays, but not visible quality)
2022-08-09 06:02:41 -07:00
majora2007
01e874150e Bump versions by dotnet-bump-version. 2022-08-08 22:11:42 +00:00
majora2007
f406a533d9 Bump versions by dotnet-bump-version. 2022-08-08 21:02:37 +00:00
majora2007
331e0d0ca9 Bump versions by dotnet-bump-version. 2022-08-07 16:09:24 +00:00
majora2007
4a81597860 Bump versions by dotnet-bump-version. 2022-07-28 22:31:06 +00:00
Joseph Milazzo
f130440bd0
Want to Read List (#1392)
* Implemented a Want To Read list of series for all users, as a way to keep track of what you want to read.

When canceling a bulk action, like Add to Reading list, the selected cards wont de-select.

* Hooked up Remove from Want to Read

* When making bulk selection, allow the user to click on anywhere on the card

* Added no series messaging

* Code cleanup
2022-07-28 15:18:35 -07:00
majora2007
495c986000 Bump versions by dotnet-bump-version. 2022-07-27 21:18:24 +00:00
majora2007
2636dd7919 Bump versions by dotnet-bump-version. 2022-07-27 15:29:42 +00:00
Joseph Milazzo
5812588fe5
misc stuff to avoid scan loop (#1389)
* Implemented a workaround for nginx users with BlockCommonExploits enabled, which would interfere with book image escaping done by Kavita when images had ../ in their path.

* Added back to top support on all pages but those that untilize virtual scrolling without a parent scroll.

* Hide jumpbar on pages where there is no scroll

* Refactored jumbar code into a dedicated service

* Stash some jumpkey resume code as I can't get it working with the virtual scroller.

* Don't allow non-admins to see File locations on card detail drawer.

* Some cleanup on GetServerInfo

* When an error occurs in register, delete the user on exception.

* Fixed a NPE in Stat collection for brand new users

* When we catch an exception on registering a new user, delete the user as rolling back doesn't do anything.

* Don't close typeahead when we are selecting options from it

* Added shortcut key H to open shortcut modal on manga reader

* When processing progress updates on cards, for volumes, properly find the chapter to update pages read.

* Hide cover image on reading list if it's not set and fixed a missing closing div tag

* Hide collection poster when nothing is set on collection detail

* Small fix around updating state

* Sped up the bookmark image call by removing one DB call

* Fixed broken test from change in bookmark code

* Fixed an oversight where if there is no tag in ComicInfo after a chapter was updated with People or Genres, then the People/Genres would never be removed.

* Added test with TagHelper

* Fixed a bug where 2 clear buttons would show on search bar due to browser injecting their own. Search bar wont show clear button until text is typed.

* Fixed a bug where InstallID wasn't being selected correctly in converter
2022-07-27 08:16:45 -07:00
majora2007
b90c6aa76c Bump versions by dotnet-bump-version. 2022-07-26 15:22:16 +00:00
majora2007
748ba23117 Bump versions by dotnet-bump-version. 2022-07-17 15:55:39 +00:00
majora2007
63d74ecf9a Bump versions by dotnet-bump-version. 2022-07-17 15:26:15 +00:00
majora2007
35147d748c Bump versions by dotnet-bump-version. 2022-07-17 14:33:01 +00:00
majora2007
3a10b54422 Bump versions by dotnet-bump-version. 2022-07-13 22:04:00 +00:00
majora2007
2f48360d47 Bump versions by dotnet-bump-version. 2022-07-13 19:37:11 +00:00
majora2007
ea845ca64d Bump versions by dotnet-bump-version. 2022-07-13 14:58:40 +00:00
Joseph Milazzo
af4f35da5b
Better Caching & Global Downloads (#1372)
* Fixed a bug where cache TTL was using a field which always was 0.

* Updated Scan Series task (from UI) to always re-calculate what's on file and not rely on last update. This leads to more reliable results, despite extra overhead.

* Added image range processing on images for the reader, for slower networks or large files

* On manga (single) try to use prefetched image, rather than re-requesting an image on pagination

* Reduced some more latency when rendering first page of next chapter via continuous reading mode

* Fixed a bug where metadata filter, after updating a typeahead, collapsing filter area then re-opening, the filter would still be applied, but the typeahead wouldn't show the modification.

* Coded an idea around download reporting, commiting for history, might not go with it.

* Refactored the download indicator into it's own component. Cleaning up some code for download within card component

* Another throw away commit. Put in some temp code, not working but not sure if I'm ditching entirely.

* Updated download service to enable range processing (so downloads can resume) and to reduce re-zipping if we've just downloaded something.

* Refactored events widget download indicator to the correct design. I will be moving forward with this new functionality.

* Added Required fields to ProgressDTO

* Cleaned up the event widget and updated existing download progress to indicate preparing the download, rather than the download itself.

* Updated dependencies for security alerts

* Refactored all download code to be streamlined and globally handled

* Updated ScanSeries to find the highest folder path before library, not just within the files. This could lead to scan series missing files due to nested folders on same parent level.

* Updated the caching code to use a builtin annotation. Images are now caching correctly.

* Fixed a bad redirect on an auth guard

* Tweaked how long we allow cache for, as the cover update now doesn't work well.

* Fixed a bug on downloading bookmarks from multiple series, where it would just choose the first series id for the temp file.

* Added an extra check for downloading bookmarks

* UI Security updates, Fixed a bug on bookmark reader, the reader on last page would throw some errors and not show No Next Chapter toast.

* After scan, clear temp

* Code smells
2022-07-13 07:45:14 -07:00
therobbiedavis
45bbf422be Bump versions by dotnet-bump-version. 2022-07-12 13:12:06 +00:00
majora2007
b847d5d721 Bump versions by dotnet-bump-version. 2022-07-11 16:12:10 +00:00
Joseph Milazzo
4e49aa47ce
Change Detection: On Push aka UI Smoothness (#1369)
* Updated Series Info Cards to use OnPush and hooked in progress events when we do a mark as read/unread on entities. These events update progress bars but also will now trigger a re-calculation on Read Time Left.

* Removed Library Card Component

* Refactored manga reader title and subtitle calculation to the backend.

* Coverted card actionables to onPush

* Series Card on push cleanup

* Updated edit collection tags for on push

* Update cover image chooser for on push

* Cleaned up carsouel reel

* Updated cover image to allow for uploading gif and webp files

* Bulk add to collection on push

* Updated bulk operation to use on push. Updated bulk operation to have mark as unread and read buttons explicitly. Updated so add to collection is visible and delete.

Fixed a bug where manage library component wasn't invoking the trackBy function

* Updating entity title for on push

* Removed file info component

* Updated Mange Library for on push

* Entity info cards on push

* List item on push

* Updated icon and title for on push and fixed some missing change detection on series detail

* Restricted the typeahead interface to simplify the design

* Edit Series Relation now shows a value in the dropdown for Parent relationships and disables the field.

* Updated edit series relation to focus on new typeahead when adding a new relationship

* Added some documentation and when Scanning a library, don't allow the user to enqueue the same job multiple times.

* Applied the No-enqueue if already enqueued logic to other tasks

* Library detail on push

* Updated events widget to onpush

* Card detail drawer on push. Card detail cover chooser now will show all chapter's covers for selection in cover chooser.

* Chapter metadata detail on push

* Removed Card Detail modal

* All collections on push

* Removed some comments

* Updated bulk selection to use an observable rather than function calls so new on push strategy works

* collection detail now uses on push and scroller is placed on correct element

* Updated library recommended to on push. Ensure that when mark as read occurs, the appropriate streams are refreshed.

* Updated library detail to on push

* Update metadata fiter to onpush. Bugs found and reported to Project

* person badge on push

* Read more on push

* Updated tag badge to on push

* User login on push

* When initing side nav, don't call an authenticated api until we are sure a user is logged in

* Updated splash container to on push

* Dashboard on push

* Side nav slight refactor around some api calls

* Cleaned up series card on push to use same cdRef naming convention

* Updated Static Files to use caching

* Added width and height to logo image

* shortcuts modal on push

* reading lists on push

* Reading list detail on push

* draggable ordered list on push

* Refactored reading-list-detail to use a new item which drastically reduces renders on operations

* series format on push

* circular loader on push

* Badge Expander on push

* update notification modal on push

* drawer on push

* Edit Series Modal on push

* reset password on push

* review series modal on push

* series metadata detail on push

* theme manager on push

* confirm reset password on push

* register on push

* confirm migration email on push

* confirm email on push

* add email to account migration on push

* user preferences on push. Made global settings default open

* edit series relation on push

* Fixed an edge case bug for next chapter where if the current volume had a single chapter of 1 and the next volume had a chapter number of 0, it would say there are no more chapters.

* Updated infinite scroller with on push support

* Moved some animations over to typeahead, not integrated yet.

* Manga reader is now on push

* Reader settings on push

* refactored how we close the book

* Updated table of contents for on push

* Updated book reader for on push. Fixed a bug where table of contents wasn't showing current page anchor due to a scroll calulation bug

* Small code tweak

* Icon and title on push

* nav header on push

* grouped typeahead on push

* typeahead on push and added a new trackby identity function to allow even faster rendering of big lists

* pdf reader on push

* code cleanup
2022-07-11 08:57:07 -07:00
therobbiedavis
f5be0fac58 Bump versions by dotnet-bump-version. 2022-07-01 18:57:44 +00:00