543 Commits

Author SHA1 Message Date
Joseph Milazzo
d3c14863d6
Performance, Scan Loop, Specials, and cleanup (#150)
* More cases for parsing regex

* Fixed a bug where chapter cover images weren't being updated due to a missed not.

* Removed a piece of code that was needed for upgrading, since all beta users agreed to wipe db.

* Fixed InProgress to properly respect order and show more recent activity first. Issue is with IEntityDate LastModified not updating in DataContext.

* Updated dependencies to lastest stable.

* LastModified on Volumes wasn't updating, validated it does update when data is changed.

* Rewrote a check to avoid a small heap object warning.

* Ensure UpdateSeries checks all libraries for unique name.

* Took care of some todos, removed unused imports, on dev go ahead and schedule reoocuring jobs since LiteDB caused the locking issue.

* No Tracking when we aren't using entities.

* Added code to remove abandoned progress rows after a chapter gets deleted.

* RefreshMetadata uses one large query rather than many trips to DB for updating metadata. Significantly faster.

* Fixed a bug where UpdateSeries would always complain about a unique name even when we weren't updating name.

* Files that are linked to a series but can't parse out Vol/Chapter information are properly grouped like other Specials.

* Refresh metadata on UI should call the task directly

* Fixed a bug on updating series to make sure we don't complain if we aren't trying to update the name to an existing name.

* Fixed #142 - Library cards should be sorted.

* Refactored the name of some variables to be more agnostic to comics.

* Implemented ScanLibrary but abandoning it.

* Code Cleanup & removing ScanSeries code.

* Some more tests and new Comparators for natural sorting.

* Fixed #137 - When performing I/O on archives, ignore __MACOSX folders completely.

* Fixed #137 - When performing I/O on archives, ignore __MACOSX folders completely.

* All entities that will show under specials tab should be marked special, rather than just what has a special keyword.

* Don't let specials generate cover images

* Don't let specials generate cover images

* SearchResults should send LocalizedName back since we are searching against it.

* Added some tests around macosx folders found from my actual server.

* Put extra notes about a case where duplicates come about, logger will now tell user about this issue.

* Missed a build issue somehow...

* Some code smells
2021-04-05 08:37:45 -05:00
Joseph Milazzo
7790cf31fd
In Progress Query Update (#145)
* Fixed a bug where chapter cover images weren't being updated due to a missed not.

* Removed a piece of code that was needed for upgrading, since all beta users agreed to wipe db.

* Fixed InProgress to properly respect order and show more recent activity first. Issue is with IEntityDate LastModified not updating in DataContext.

* Updated dependencies to lastest stable.

* LastModified on Volumes wasn't updating, validated it does update when data is changed.
2021-04-01 16:11:06 -05:00
Joseph Milazzo
71d3af5f52 LastModified on Volumes wasn't updating, validated it does update when data is changed. 2021-04-01 15:59:07 -05:00
Joseph Milazzo
13132c25af Updated dependencies to lastest stable. 2021-04-01 12:15:27 -05:00
Joseph Milazzo
1f5d1eca1d Fixed InProgress to properly respect order and show more recent activity first. Issue is with IEntityDate LastModified not updating in DataContext. 2021-04-01 12:15:04 -05:00
Joseph Milazzo
876466d05b Removed a piece of code that was needed for upgrading, since all beta users agreed to wipe db. 2021-04-01 09:27:58 -05:00
Joseph Milazzo
7d54923041 Fixed a bug where chapter cover images weren't being updated due to a missed not. 2021-04-01 09:18:26 -05:00
Joseph Milazzo
ca5c666b7b
In Progress Activity Stream Fixes (#136)
* Fixed a bug in In-Progress where it wasn't properly fetching series.
2021-03-31 14:50:03 -05:00
Joseph Milazzo
667d1d2a4d
Don't go to archive file if it hasn't updated since last scan (#135)
* Skip archive work unless the file has actually changed since last scan.
2021-03-31 12:53:53 -05:00
Joseph Milazzo
237542b493
Special Grouping (#134)
* More cases for parsing regex

* Implemented a change to fix old special grouping. Added some TODOs as well for a future enhancement
2021-03-31 12:10:26 -05:00
Joseph Milazzo
a0deafe75b
Parser Enhancement: Fallback to Folder name (#129)
* More cases for parsing regex

* Implemented GetFoldersTillRoot for falling back on parsing when we can't get anything from the filename.

* Implemented a fallback strategy. Not tested on large libraries yet.

* Fallback tested and working great.

* Removed a test case that won't pass and added some trims
2021-03-29 17:37:35 -05:00
Joseph Milazzo
d9246b7351
Parsing Enhancements (#126)
* More cases for parsing regex

* Implemented the ability to parse "Special" keywords.

* Commented out some unit tests

* More parsing cases

* Fixed unit tests

* Fixed typo in build script

* Fixed a bug where if there was a series with same name, but different capitalization, we wouldn't process it's infos.

* Tons of regex updates to handle more cases.

* More regex tweaking to handle as many cases as possible.

* Bad merge caused the comic parser to break. Fixed with some better regex.
2021-03-29 15:15:49 -05:00
Joseph Milazzo
3e031ab458
Lots of Parsing Enhancements (#120)
* More cases for parsing regex

* Implemented the ability to parse "Special" keywords.

* Commented out some unit tests

* More parsing cases

* Fixed unit tests

* Fixed typo in build script
2021-03-28 18:00:05 -05:00
Joseph Milazzo
7e54d332f5
Comic Support (#119)
* Implemented some basic regex for comic support

* Implemented support for comics

* empty filenames, like .test.jpg shouldn't be counted as image types.

* Fixed some regex for Manga's with commas or version tags in parenthesis.
2021-03-28 12:09:42 -05:00
Joseph Milazzo
55d47eb1b9
Bugfix/multiple file extract (#116)
* Fixed a bug where if a chapter had multiple archive files, they wouldn't all be extracted due to short circuit in ExtractArchive. Now I add the file id then flatten afterwards.

* Fixed a bug where due to how we were extracting for multiple files, the single file extractions failed.

* Bumped release for 3.5 release
2021-03-27 15:20:55 -05:00
Joseph Milazzo
280fdc07f2
Fixed a bug where if a chapter had multiple archive files, they wouldn't all be extracted due to short circuit in ExtractArchive. Now I add the file id then flatten afterwards. (#113) 2021-03-26 13:43:54 -05:00
Joseph Milazzo
795c80b306
Bump version for patch release due to bug in continue fuctionality. (#104) 2021-03-25 08:32:37 -05:00
Joseph Milazzo
60f45da44e Implemented a script to automatically publish for all supported RIDs. 2021-03-24 14:19:12 -05:00
Joseph Milazzo
c639b8ca04 Implemented the LastWrite check for Summaries and Series Cover Images. Removed a TODO after validation. 2021-03-24 07:41:52 -05:00
Joseph Milazzo
f85918b5bf When we scan a library, store the last write time for a file so we can skip page calculation if there were no modifications. 2021-03-23 17:28:48 -05:00
Joseph Milazzo
a176034905 Some smells found in scan. 2021-03-23 15:04:22 -05:00
Joseph Milazzo
44c2af88ea Some security issue found in scan. 2021-03-23 14:51:56 -05:00
Joseph Milazzo
70cc163cb0 More cleanup 2021-03-23 14:41:14 -05:00
Joseph Milazzo
6ebf5d6254 Cleanup and tests fixup 2021-03-23 14:37:47 -05:00
Joseph Milazzo
154b30c3fd Implemented fallback functionality. Try to use System.IO.Compression.ZipArchive then fallback to SharpCompress (which is extremely slow).
Currently this hits disk 3 times per operation, needs performance tuning.
2021-03-23 14:12:28 -05:00
Joseph Milazzo
067b5174ab Cleaned up tests and began implementation of fallback functionality 2021-03-23 12:59:40 -05:00
Joseph Milazzo
f63c38ac23 Dropped the initial commit for this work due to a large file. Had to do some cleanup from a bad merge. 2021-03-23 12:27:04 -05:00
Joseph Milazzo
d724a8f178 A lot of random changes to try and speed up SharpCompress. 2021-03-23 12:22:50 -05:00
Joseph Milazzo
d73bd22db2 Some code cleanup 2021-03-23 12:22:47 -05:00
Joseph Milazzo
585e965a85 Fixed some bad test cases that really messed up my codebase. 2021-03-23 12:21:09 -05:00
Joseph Milazzo
b66c6b5714 Fixed some parser unit tests around negative lookaheads 2021-03-23 12:20:30 -05:00
Joseph Milazzo
d543511131 Finished refactoring to SharpCompress. 2021-03-23 12:20:27 -05:00
Joseph Milazzo
f77de66d97 ContinueReading has been pulled from UI. The query doesn't work and no longer sure I need. 2021-03-20 12:44:18 -05:00
Joseph Milazzo
a125b2ac0b Fixed GetInProgress API - The condition for PagesRead needed to be a sum for all progress, not each row. 2021-03-18 14:18:56 -05:00
Joseph Milazzo
b8cd04e1de Fixed a bad if statment that caused every EnsureCache() call to print cache doesn't exist, even though it does. 2021-03-18 10:51:09 -05:00
Joseph Milazzo
546f12c795 Removed LiteDB and use In Memory Storage for time being. LiteDB was causing the issues in Issue #79. 2021-03-18 08:54:30 -05:00
Joseph Milazzo
c312e0706f Removed a leftover code for async 2021-03-17 18:07:10 -05:00
Joseph Milazzo
a5069158fa Removed tests. For those cases, I was unable to find a good solution. Users will have to manually map or rename. 2021-03-17 17:47:06 -05:00
Joseph Milazzo
4c6758b9b0 Can't figure out how to implement StartupTask 2021-03-17 17:21:59 -05:00
Joseph Milazzo
e60d84a2c8 Cleanup 2021-03-17 14:31:17 -05:00
Joseph Milazzo
0a85555f38 Temp commit to record attempts. Stream APIs are implemented and working. Added some new test cases based on deployed Kavita server testing. 2021-03-17 14:29:50 -05:00
Joseph Milazzo
55cd0c5fe5 For the time out on tasks, I'm going to only use Hangfire scheduled tasks on prod. 2021-03-15 17:10:09 -05:00
Joseph Milazzo
fad4ca4414 Lots of Hangfire attempts to solve the lock issue. Not sure how to fix it. Added some APIs for streams. 2021-03-15 13:49:13 -05:00
Joseph Milazzo
bb0a59448f Lots of Hangfire attempts to solve the lock issue. Not sure how to fix it. Added some APIs for streams. 2021-03-15 13:49:06 -05:00
Joseph Milazzo
9035b6cc4e Hangfire now dies gracefully when using CTRL+C rather than Stop button in Rider. Implemented one stream method for testing. Regenerated a few migrations due to oversight in index not taking account of library. 2021-03-15 08:43:43 -05:00
Joseph Milazzo
126fb57f4d Fix security issue. SHA1 has collisions, switching to SHA256 2021-03-14 10:23:10 -05:00
Joseph Milazzo
d23a569446 Added a new method for triggering jobs rather than scheduling ad-hoc. 2021-03-14 09:39:48 -05:00
Joseph Milazzo
6e6e5ee9f2 Implemented a startup task that will instantiate all the DI so first API isn't having to eat that overhead. 2021-03-13 17:44:29 -06:00
Joseph Milazzo
983078de02 Ensure I validate before attempting to update password for reset password flow. Send some validation issues back to FE. 2021-03-13 12:28:00 -06:00
Joseph Milazzo
52b91a9b92 Public caching causes an issue with cache validation on browser causing images not to be cached correctly. Made private to ensure we get proper images each load. 2021-03-12 18:35:12 -06:00