696 Commits

Author SHA1 Message Date
Joe Milazzo
4e0e3608aa
Release Testing Day 3 (#1946)
* 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
2023-04-29 05:49:00 -07:00
Joe Milazzo
19198beadf
Reading List Bug (#1943)
* Refactored how we calculate start and end dates for a reading list generated from Scan.

* Cleaned up the logging messages a bit

* By default, allow DB statements to include params, since there's no PPI involved.
2023-04-24 16:51:15 -07:00
Joe Milazzo
3eb2874bbd
Logging Change (#1941)
* Tweaked trace logging for foreign constraint issue.

Removed some locks where we werent touching important code that needed locking on.

* Reverted back some code
2023-04-22 12:43:41 -07:00
Joe Milazzo
c70154f428
Release Testing Day 2 (#1937)
* Removed unneded ngModel on password field

* Fixed some bad validation messages on Edit Reading List modal and disabled save button

* Added a lot of trace code to help debug a foreign constraint issue.

* Fixed a bug where after a series is scanned, generate covers for series didn't respect webp cover generation.

* Fixed library last scan being stored in Utc, but expected to be server time.

* Fixed up some of that trace logging being way too verbose. Fixed a case where when a missing storyarc number, the whole pair was dropped. Now, it will default that item to the end of the reading list.

Fixed a bug where Start and End dates weren't being calculated after generating a reading list.

* Fixed a bug where the default admin user for reading list creation from files was selecting the wrong user.

Changed so that when there is a bad pair (aka number missing) and only 1 pair, then we wont constantly reorder the item.

* Fixed unit test
2023-04-22 11:04:09 -07:00
Joe Milazzo
e3467457ea
Release Testing Day 1 (#1933)
* 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
2023-04-19 15:41:21 -07:00
Joe Milazzo
e7618861e0
Pre-Release Shakeout (#1932)
* 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
2023-04-16 17:28:21 -07:00
Joe Milazzo
4791da1447
Library Settings for Reading List Creation (#1930)
* Added the code for Library Settings to allow turning off Reading List creation.

* Fixed a typo
2023-04-15 08:42:22 -07:00
Joe Milazzo
7f53eadfda
ComicInfo Derived Reading Lists (#1929)
* Implemented the ability to generate reading lists from StoryArc and StoryArcNumber ComicInfo fields.

* Refactored to add AlternativeSeries support.

* Fixed up the handling when we need to update reading list where order is already present.

* Refactored how skipping empty reading list pairs works
2023-04-15 08:28:49 -07:00
Joe Milazzo
10e4b318cb
Bugfixes from last PR (#1928)
* Fixed a regression where confirm-email was validating for a real email when it's not required.

* Fixed fit to screen breaking as canvas was still showing on the screen when it should have been hidden.

* Fixed a missing age rating in the pipe

* Fixed fit to height not properly aligning the image

* Tweaked Startup check for base url
2023-04-15 04:58:54 -07:00
Joe Milazzo
21a9f28923
Random Cleanup + OPDS Base Url Support (#1926)
* 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
2023-04-14 17:44:35 -07:00
Andy
c8a16a4370
Bugfix/base url in docker (#1901)
* fixed: BaseUrl option is not supported in Docker

- discussion in #1824, the checks should not have been added in the first place

* changed: contributors require .NET 7.0+ in order to build
2023-04-14 11:48:44 -07:00
Joe Milazzo
5c1e9c0521
Manga Reader Fixes (#1925)
* 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
2023-04-13 13:07:11 -07:00
Robbie Davis
139460d19c
OPDS formatting fix (#1905)
# Fixed
- Fixed a formatting issue where there was a unnecessary - at the beginning of titles. (develop)

# Changed
- Updated github action version. (develop)
2023-03-31 06:05:54 -05:00
Joe Milazzo
a8f48a6e9d
OPDS Flattening (#1904)
* 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>
2023-03-30 16:45:46 -07:00
Joe Milazzo
385f61f9f0
Tweaks (#1890)
* 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>
2023-03-19 10:52:44 -07:00
Joe Milazzo
d070da2834
Some fixes from last release (#1884)
* Removed SecurityEvent middleware solution. It was out of scope originally.

* Fixed manage users still calling pending when the api is no more

* Added back the online indicator on manage users
2023-03-16 17:03:56 -07:00
Joe Milazzo
c10acb1279
Security Event Logging & Bugfixes (#1882)
* 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>
2023-03-16 13:57:34 -07:00
Joe Milazzo
0617d71d6b
Fixed an issue where docker installs were trying to update wwwroot, when docker doesn't do reverse proxy stuff. (#1880)
Fixed a bug in reading list date calculations.
2023-03-14 11:31:00 -07:00
Joe Milazzo
fd6ee42f5f
Reading List Polish (#1879)
* 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
2023-03-14 06:45:22 -07:00
Gazy Mahomar
2cff1bcebe
Base Url implementation (#1824)
* Base Url implementation

* PR requested changes
2023-03-11 05:47:40 -08:00
Joe Milazzo
bd19b282d5
Misc Fixes + Enhancements (#1875)
* 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
2023-03-10 17:09:38 -08:00
Joe Milazzo
47269b4c51
OPDS-PS v1.2 Support + a few bugfixes (#1869)
* 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
2023-03-09 16:41:42 -08:00
Robbie Davis
a692c0c531
Fix for themes not applying (#1873)
# Fixed:
- Fixed: Fixed an issue where themes would not apply properly.
2023-03-09 15:05:14 -06:00
Joe Milazzo
b55d9e3994
CBL Import Rework (#1862)
* 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
2023-03-07 13:18:26 -08:00
CKolle
3484211132
Added vertical reading mode to the book reader (#1787)
* 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
2023-03-06 12:02:29 -08:00
Robbie Davis
56243758d4
fix (#1855) 2023-03-06 14:36:17 -05:00
Robbie Davis
87a29bc111
Docker bind fix (#1854)
* Fixing docker bind issue

# Fixed:
- Fixed an issue for docker users conflicting with a previous feature inclusion for multiple IP addresses

* build error fix

* re-raise
2023-03-06 11:07:13 -08:00
Robbie Davis
4c837170d7
Fixing docker bind issue (#1852)
# Fixed:
- Fixed an issue for docker users conflicting with a previous feature inclusion for multiple IP addresses
2023-03-06 10:33:55 -08:00
Joe Milazzo
94830300f2
Fixed docker instances not being able to start due to misconfigured default for IpAddress binding (#1851) 2023-03-06 06:43:53 -08:00
Joe Milazzo
45e69b087e
Added noindex to prevent SEO from indexing user's sites. Reverted http3 support as docker users were having port issue (#1850) 2023-03-05 14:00:21 -08:00
Joe Milazzo
5d1dd7b3f0
.NET 7 + Spring Cleaning (#1677)
* 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.
2023-03-05 12:55:13 -08:00
Joe Milazzo
d88a4d5d0c
CBL Import (#1834)
* 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>
2023-03-03 14:51:11 -08:00
Joe Milazzo
9103228ccc
Epub 3.2 Grouping issue (#1823)
* Added font swapping and removed some unneeded css

* Fixed a bug where epub 3 tags weren't being applied for grouping
2023-02-21 13:32:29 -08:00
Joe Milazzo
df68c50256
Random Changes and Enhancements (#1819)
* 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.
2023-02-20 15:48:04 -08:00
Joe Milazzo
8aee5b3e08
Fixed manage collections not being toggleable (#1813) 2023-02-19 12:12:12 -08:00
Joe Milazzo
8df134e7c3
v0.7 Issues for Hotfix (#1812)
* Fix signalr admin messages sending (#1809)

* Changed messsage hub to use userIds

* SignalR events are fixed

* Fixed broken advanced tab on library settings

* Fixed regex timeout security issues.

* Added a migration for GMT+1 users where their UTC dates were getting broken somehow.

* Removed a console.log

* Fixed a migration name

---------

Co-authored-by: Snd-R <76580768+Snd-R@users.noreply.github.com>
2023-02-19 09:01:06 -08:00
Joe Milazzo
c117d8dc04
Release Testing Part 2 (#1794)
* 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 where we were grabbing wrong property for book layout mode

* Fixed an issue where pagination area wasn't properly spanning window on different scaling modes.

* Fixed a bug where right pagination area wasn't sticking to the right hand side on original scaling

* Added a note from reading an epub3

* Reworked some of the readme
2023-02-17 15:48:46 -08:00
Joe Milazzo
00f153d8ea
Release Testing Bugs (#1790)
* 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
2023-02-16 04:39:40 -08:00
Joe Milazzo
bdd2a0a26a
Release Testing Time (#1785)
* 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
2023-02-12 13:14:13 -08:00
Kupferhirn
11cb2cfb17
Allow changing listening ip addresses (#1713)
* Allow changing listening ip address

* Use Json serialize for appsettings.config saving

* BOM

* IP Address validation

* ip address reset

* ValidIpAddress regex
2023-02-12 08:37:46 -08:00
Joe Milazzo
3f24dc7392
Reading List Fixes (#1784)
* 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.
2023-02-12 08:20:51 -08:00
Joe Milazzo
7616eb5b0f
UTC Dates + CDisplayEx API Enhancements (#1781)
* 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
2023-02-11 04:01:24 -08:00
Joe Milazzo
cad897015c
Stat Polish (#1775)
* SeriesGroup tag can now have comma separated value to allow a series to be a part of multiple collections.

* Added a missing unit test

* Refactored how collection tags are created to work in the scan loop reliably.

* Added a unit test for RemoveTagsWithoutSeries

* Fixed a bug in reading list title generation to avoid Volume 0 if the underlying file had a title set. Fixed a misconfigured unit test.

* On User stats page, don't show the user selector on reading history, despite if youre an admin. Cleaned up how we show days with 0 reading events to be more clear.

* Refactored the name of a component to reflect what it does

* Removed plugin not using

* Fix an issue where coalescing a key in epub might have multiple html files ending with the key. In this case, let's take the first.

* Added PikaPods to the Readme

* Tried to fix layout shift for charts, but need Robbie's help

* Chart styling

# Added:
- Added: Added styling to force charts into their respective containers.

# Removed:
- Removed: Removed code blocking charts from being visible on mobile.

* Merge conflict

---------

Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
2023-02-04 02:53:21 -08:00
Joe Milazzo
8a0a2f0961
Scanner Performance Improvements (#1774)
* Refactored the Genre code to be faster and used a dictonary to avoid some lookups. May fix the rare foreign constraint issue.

* Refactored tag to the same implementation as Genre. Ensure when grabbing tags from ComicInfo, we normalize and throw out duplicates.

* Removed an internal "external" field that was planned for Genres and Tags, but now with new plugin architecture, not needed.
2023-02-03 04:52:51 -08:00
Joe Milazzo
a76770b240
Auto Collection Bugfixes (#1769)
* SeriesGroup tag can now have comma separated value to allow a series to be a part of multiple collections.

* Added a missing unit test

* Refactored how collection tags are created to work in the scan loop reliably.

* Added a unit test for RemoveTagsWithoutSeries

* Fixed a bug in reading list title generation to avoid Volume 0 if the underlying file had a title set. Fixed a misconfigured unit test.
2023-02-01 08:22:02 -08:00
Joe Milazzo
1da27f085c
Automatic Collection Creation (#1768)
* 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.
2023-01-30 19:57:46 -08:00
Joe Milazzo
91a2a6854f
[skip ci] Misc stuff (#1766)
* 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.
2023-01-30 12:36:45 -08:00
Joe Milazzo
d09e458e85
Angular 15 (#1765)
* 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.
2023-01-30 10:47:34 -08:00
Joe Milazzo
5e9bbd0768
Holiday Bugfixes (#1762)
* 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
2023-01-30 00:50:19 -08:00
Joe Milazzo
3e1d0f39f0
Stat hotfix (#1748)
* Fixed a bug where a divide by 0 could occur

* Email change now requires a password
2023-01-15 14:16:51 +08:00