37 Commits

Author SHA1 Message Date
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
44c2af88ea Some security issue found in scan. 2021-03-23 14:51:56 -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
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
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
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
Joseph Milazzo
265f7dcc8c Implemented ability to generate Series summary from ComicInfo.xml (if present) 2021-02-17 16:41:42 -06:00
Joseph Milazzo
a501e50c98 Clean up and fixed a parsing case. 2021-02-10 12:16:29 -06:00
Joseph Milazzo
40154c8d63 Temp stop point. Rewrote the Scanner service to be much cleaner and slightly more efficient. Code is structured so it can easily be multithreaded. 2021-02-09 15:03:02 -06:00
Joseph Milazzo
39fa750d96 Enhanced the parser to handle more cases and implement some negative lookups when being greedy. 2021-02-08 10:53:59 -06:00
Joseph Milazzo
57f74d3de3 Implemented partial chapter support. Fixed some edge case where if library scan was skipped due to no modififcation on disk, whole library would be removed. Removed above code for testing. 2021-02-07 13:07:07 -06:00
Joseph Milazzo
077e5f798a Lots of cleanup 2021-02-07 12:02:47 -06:00
Joseph Milazzo
e9dfc1bda0 Fixed a bug in IsImage and IsArchive where I was using a contains instead of matching the regex. 2021-02-04 17:39:24 -06:00
Joseph Milazzo
a42e54a078 Lots of work for chapters. This code will be refactored in a chapter rewrite. 2021-01-27 14:14:16 -06:00
Joseph Milazzo
f430595d11 Attempted to Test CacheService, but can't figure it out. 2021-01-26 14:35:50 -06:00
Joseph Milazzo
6b76c8b211 Refactored archive code into a service so that I can write tests for it. 2021-01-26 09:55:15 -06:00
Joseph Milazzo
51d4014e11 Forgot to fix some unit tests. 2021-01-25 16:04:52 -06:00
Joseph Milazzo
fe88467d8b More regex tweaking and use cases for real library. 2021-01-25 14:45:23 -06:00
Joseph Milazzo
7cd0b80ac2 More regex tweaking and use cases for real library. 2021-01-24 14:08:09 -06:00
Joseph Milazzo
8498d25aa7 Fixed some use cases where Edition tags weren't being cleaned up. 2021-01-24 10:57:09 -06:00
Joseph Milazzo
6097a2acf0 Some crazy regex for parsing chapters for poorly named files. 2021-01-24 10:37:02 -06:00
Joseph Milazzo
8683c81361 There is a theme...more regex changes. Moved the logic around parsing and falling back into Parser.Parse() and setup testing for it. 2021-01-24 10:05:53 -06:00
Joseph Milazzo
a315feb569 More Parser tests and more cases! Added ability to parse Editions for Manga (Omnibus, Color, etc). To be stripped from Series if present. Future can be stored on MangaFile. 2021-01-24 08:34:57 -06:00
Joseph Milazzo
9030b8de96 More Parser tests and more cases! 2021-01-23 18:45:14 -06:00
Joseph Milazzo
a057e3ce1d Lots of bug fixes around publishing and handling weird cases on a real manga library. Implemented ability to have Volumes number 0 aka just latest chapters. Refactored DirectoryService code for scanning into it's own service. Lots of debug code, will be cleaned up later. 2021-01-23 17:44:48 -06:00
Joseph Milazzo
f737f662df Added a sorting mechanism to emulate how windows sorts files. Refactored cache to support chapter folders as well. 2021-01-10 12:47:34 -06:00
Joseph Milazzo
59a4921ba9 Refactored ScanLibrary to produce page numbers on the Manga File, Format and to update existing series/volumes rather than always create new entries. 2021-01-09 15:27:04 -06:00
Joseph Milazzo
7f5a1d0518 Refactored GetCoverImage to a static class and unit tested it. Enhanced the method by defaulting to folder.jpg file if exists, else takes first entry. 2021-01-05 15:00:49 -06:00
Joseph Milazzo
521eac266a Removed a Unit test that we don't support yet for ranged volumes. Added a new case for Parser for v1.1 chapter parsing. 2021-01-01 16:10:35 -06:00
Joseph Milazzo
104c63b2b9 Cleaned up the code from previous enhancements. 2020-12-29 11:01:52 -06:00
Joseph Milazzo
0a49b07570 Implemented a parallelized, rough, scanning loop which parses out information and leaves us with an immutable dictionary mapping series to parsed infos for each file.
Added some Entities to help translate this into DB.
2020-12-29 10:47:10 -06:00
Joseph Milazzo
8c80ed090d Added basic parsing and unit tests. Setting up an intermediate object to hold information from parser. Removed hangfire db from git. 2020-12-27 11:14:45 -06:00