* Adding some code for Robbie
* See more on series detail metadata area is now at the bottom on the section
* Cleaned up subtitle headings to use a single class for offset with actionables
* Added some markup for the new design, waiting for Robbie to finish it off
* styling age-rating badge
* Started hooking up basic analyze file service and hooks in the UI. Basic code to implement the count is implemented and in benchmarks.
* Hooked up analyze ui to backend
* Refactored Series Detail metadata area to use a new icon/title design
* Cleaned up the new design
* Pushing for robbie to do css
* Massive performance improvement to scan series where we only need to scan folders reported that have series in them, rather than the whole library.
* Removed theme page as we no longer need it. Added WordCount to DTOs so the UI can show them. Added new pipe to format numbers in compact mode.
* Hooked up actual reading time based on user's words per hour
* Refactor some magic numbers to consts
* Hooked in progress reporting for series word count
* Hooked up analyze files
* Re-implemented time to read on comics
* Removed the word Last Read
* Show proper language name instead of iso tag on series detail page. Added some error handling on word count code.
* Reworked error handling
* Fixed some security vulnerabilities in npm.
* Handle a case where there are no text nodes and instead of returning an empty list, htmlagilitypack returns null.
* Tweaked the styles a bit on the icon-and-title
* Code cleanup
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
* Implemented methods to parse out the whole ComicInfo file and a mock ComicInfo from epub files.
* Removed unused imports. ScanSeries needs to cleanup deleted chapters and call RefreshMetadata. Ensure after scan we cleanup tags without any series.
* Random cleanup
* Added some comments about data getting stale and not updating.
* Removed old Summary methods in favor of the ComicInfo versions
* Added a missing property
* Fixed unit test
* Some performance refactoring around getting Library and avoid a byte[] copy for getting cover images for epubs.
* Initial commit. Rewrote the main series scan loop to use chunks of data at a time. Not fully shaken out.
* Hooked in the ability for the UI to react to series being added or removed from the DB.
* Cleaned up the messaging in the scan loop to be more clear.
* Metadata scan and scan work as expected and populate data to the UI. There is a slow down in speed for overall operation.
Scan series and refresh series metadata does not work fully.
* Fixed a bug where MangaFiles were not having LastModified Updated correctly, meaning they were opening archives every scan.
* Modified the code to be more realistic to the underlying file
* Updated ScanService to properly handle deleted files and not result in a higher-level scan.
* Shuffled around volume related repo apis to the volume repo rather than being in series.
* Rewrote scan series to be much cleaner and more concise on the flow. Fixed an issue in UpdateVolumes such that the debug code to log out removed volumes could throw an exception and actually break updating volumes.
* Refactored the code to set MangaFile last modified timestamp into the MangaFile entity.
* Added Series Name to ScanSeries event
* Added additional checks in ScanSeries to ensure we never go outside the library folder.
Added extra debug messages for when a metadata refresh doesn't actually make changes and for when we regen cover images.
* More logging statements saying where they originate from. Fixed a critical bug which caused only 1 chunk to ever be processed.
* Fixed a concurrency issue with natural sorter which could cause issues in ArchiveService.cs.
* Log cleanups
* Fixed an issue with logging out total time of a scan.
* Only show added toastrs for admins. When kicking off a refresh metadata for series, make sure we regenerate all cover images.
* Code smells on benchmark despite it being ignored
* Refactored the scanner to hopefully fix a hard to reproduce KeyNotFoundException from GetInfosByName.
* Added parsing support for "A Compendium of Ghosts - 031 - The Third Story_ Part 12 (Digital) (Cobalt001)"
* Fixed an issue from perf tuning where I forgot to send Pages to frontend, breaking reader.
* Built out continuous reading for webtoon reader. Still has some issues with triggering.
* Refactored GetUserByUsernameAsync to have a new flavor and allow the caller to pass in bitwise flags for what to include. This has a get by username or id variant. Code is much cleaner and snappier as we avoid many extra joins when not needed.
* Cleanup old code from UserRepository.cs
* Refactored OPDS to use faster API lookups for User
* Refactored more code to be cleaner and faster.
* Refactored GetNext/Prev ChapterIds to ReaderService.
* Refactored Repository methods to their correct entity repos.
* Refactored DTOs and overall cleanup of the code.
* Added ability to press 'b' to bookmark a page
* On hitting last page, save progress forcing last page to be read. Adjusted logic for the top and bottom spacers for triggering next/prev chapter load
* When at top or moving between chapters, scrolling down then up will now trigger page load. Show a toastr to inform the user of a change in chapter (it can be really fast to switch)
* Cleaned up scroll code
* Fixed an issue where loading a chapter with last page bookmarked, we'd load lastpage - 1
* Fixed last page of webtoon reader not being resumed on loading said chapter due to a difference in how max page is handled between infinite scroller and manga reader.
* Removed some comments
* Book reader shouldn't look at left/right tap to paginate elems for position bookmarking. Missed a few areas for saving while in incognito mode
* Added a benchmark to test out a sort code
* Updated the read status on reading list to use same style as other places
* Refactored GetNextChapterId to bring the average response time from 1.2 seconds to 400ms.
* Added a filter to add to list when there are more than 5 reading lists
* Added download reading list (will be removed, just saving for later). Fixes around styling on reading lists
* Removed ability to download reading lists
* Tweaked the logic for infinite scroller to be much smoother loading next/prev chapter. Added a bug marker for a concurrency bug.
* Updated the top spacer so that when you hit the top, you stay at the page height and can now just scroll up.
* Got the logic for scrolling up. Now just need the CSS then cont infinite scroller will be working
* More polishing on infinite scroller
* Removed IsSpecial on volumeDto, which is not used anywhere.
* Cont Reading inf scroller edition is done.
* Code smells and fixed package.json explore script
* Fixed opds url display
* Rewrote how stat collection works, now we check in multiple places and always run stat collection in a background thread, to not block main thread.
* Cleaned up the ParseInfoTest to be more verbose
* Added benchmarking