Commit graph

52 commits

Author SHA1 Message Date
Amelia
4411d749b0 Test correct behaviour, fix that behaviour
Change misleading comment
2025-06-20 20:55:59 +02:00
Joseph Milazzo
8a71ecd71e Code cleanup 2025-06-20 10:20:12 -05:00
Joseph Milazzo
397c1c7220 Don't scrobble unless there is any progress on a series. 2025-06-20 10:08:16 -05:00
Amelia
1a4aa215d6
Do not scrobble reading updates to Volume 0, Chapter 0 2025-06-16 17:08:31 +02:00
Amelia
6642f96d8f Some more unit tests, add access token errors to scrobble errors table to stop try-loop 2025-06-16 00:05:05 +02:00
Amelia
7bca05269f Don't remove errored events on sync
They can be re-tried after an admin has cleared the Scrobble error table
2025-06-15 23:42:54 +02:00
Amelia
f5d0d0538c Extra logging, and a little more cleanup 2025-06-15 23:20:21 +02:00
Amelia
4a0650bc7d More documentation and some more refactoring 2025-06-13 23:55:16 +02:00
Amelia
df334500a9 First bit of refactoring
- Introduces regions to split up code, and easier navigations
- Add a lot of doc comments
- Introduces ScrobbleSyncContext to encapsulate all variables being passed around during sync
- Split up sync method is smaller methods for readability
2025-06-13 00:39:33 +02:00
Amelia
68601eb472 Scrobbling rewrite - abstract K+ API requests and more tests 2025-06-12 18:23:36 +02:00
Fesaa
1856b01a46
Reading Profiles (#3845)
Co-authored-by: Joseph Milazzo <joseph.v.milazzo@gmail.com>
2025-06-08 07:16:44 -07:00
Joe Milazzo
ed154e4768
Kavita+ Comic Metadata Matching (#3740) 2025-04-25 06:26:48 -07:00
Joe Milazzo
c80d046fc7
Polish for Release (#3714) 2025-04-08 16:25:37 -07:00
Joe Milazzo
37734554ba
A boatload of Bugs (#3704)
Co-authored-by: Amelia <77553571+Fesaa@users.noreply.github.com>
2025-04-05 13:52:01 -07:00
Joe Milazzo
cc3ae7f472
Angular 19 + Even more bugfixes (#3675) 2025-03-25 14:43:41 -07:00
Joe Milazzo
0f72f63b35
Localization Issues (#3653)
Co-authored-by: Amelia <77553571+Fesaa@users.noreply.github.com>
2025-03-19 07:08:12 -05:00
Joe Milazzo
f281a63934
Scrobbling Polish and Some Scanner fixes (#3638)
Co-authored-by: Fesaa <77553571+Fesaa@users.noreply.github.com>
2025-03-15 09:13:01 -07:00
Joe Milazzo
9ad394c43a
Polish 6 - The last Polish (#3591) 2025-03-05 15:23:19 -08:00
Joe Milazzo
5af851af08
Polish 5 (#3579) 2025-03-02 15:55:23 -08:00
Joe Milazzo
0ffe0228e5
Polish 4 (#3577)
Co-authored-by: Zeoic <zeorgaming@gmail.com>
Co-authored-by: Fesaa <77553571+Fesaa@users.noreply.github.com>
2025-03-01 15:17:57 -08:00
Joe Milazzo
f4fd7230ea
Metadata Downloading (#3525) 2025-02-05 14:16:44 -08:00
Joe Milazzo
a5707617f2
Kavita+ Overhaul & New Changelog (#3507) 2025-01-20 06:14:57 -08:00
Joe Milazzo
349645bf32
Small Logging Improvement (#3389) 2024-11-21 04:51:24 -08:00
Joe Milazzo
616ed7a75d
Lots of Bugfixes (#2977) 2024-06-04 15:43:15 -07:00
Joe Milazzo
b50fa0fd1e
Lots of Bugfixes (#2960)
Co-authored-by: Samuel Martins <s@smartins.ch>
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
2024-05-22 04:58:23 -07:00
Joe Milazzo
5195f08c2f
Polish Round 2 (#2845) 2024-04-11 15:01:34 -07:00
Joe Milazzo
63c9bff32e
Misc bunch of changes (#2815) 2024-03-23 14:20:16 -07:00
Joe Milazzo
8167fc5a4f
Scanner Fixes (#2800) 2024-03-19 16:48:42 -07:00
Joe Milazzo
7552c3f5fa
Comic Rework, New Scanner, Foundation Overahul (is this a full release?) (#2780) 2024-03-17 13:58:32 -04:00
Joe Milazzo
7b7609652c
You can now send emails if you don't use Authentication (#2718) 2024-02-14 12:36:55 -08:00
Joe Milazzo
8b2649302c
Light Novel Library Type (#2682) 2024-02-08 10:35:05 -08:00
Joe Milazzo
5cf6077dfd
Last PR before Release (#2692) 2024-02-05 18:58:03 -06:00
Joe Milazzo
f6af6d66be
Float-based Volumes (#2659) 2024-01-28 09:37:38 -08:00
Joe Milazzo
601acf5a84
Nightly Issues (2) (#2619) 2024-01-18 10:32:20 -08:00
Joe Milazzo
dd44f55747
Kavita+ Enhancements (#2616) 2024-01-17 15:45:39 -08:00
Joe Milazzo
3dcf7750f7
Kavita+ Tweaks (#2595) 2024-01-09 14:04:25 -08:00
Joe Milazzo
5dfcccba7a
New Year Bugs (#2513) 2024-01-02 18:53:10 -06:00
Joe Milazzo
bd4cbeb393
Hotfix Prep (#2484) 2023-12-10 10:47:25 -08:00
Joe Milazzo
bdcd3965fd
Release Bugfixes (#2470) 2023-12-03 09:54:57 -08:00
Joe Milazzo
9894a2623c
Smart Filter Encoding Fix (#2387) 2023-11-02 06:35:43 -07:00
Joe Milazzo
226d6831df
Lots of Bugfixes (#2356) 2023-10-27 14:18:56 -07:00
Joe Milazzo
de9b09c71f
Next Estimated Chapter (#2342) 2023-10-22 08:44:26 -07:00
Joe Milazzo
5f11973696
More Polish (#2320)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 09:05:14 -07:00
Joe Milazzo
c84a3294e9
Misc Bugfixes (#2216)
* Folder watching will now appropriately ignore changes that occur in blacklisted folders.

* Fixed up recently updated from dashboard not opening a pre-sorted page. There were issues with how encoding and decoding was done plus missing code.

* Fixed up all streams from Dashboard opening to correctly filtered pages.

* All search linking now works.

* Rating tooltip and stars are bigger on mobile.

* A bit of cleanup

* Added day breakdown to user stats page.

* Removed Token checks before we write events to the history table for scrobbling.

Refactored so series holds will prevent writing events for reviews, ratings, etc.

* Fixed a potential bug where series name could be taken from a chapter that isn't the first ordered (very unlikely) for epubs.

Fixed a bug where Volume 1.5 could be selected for series-level metadata over Volume 1.

* Optimized the license check code so that users without any license entered would still take advantage of the cache layer.

* Sped up an API that checks if the library allows scrobbling

* Cleaned up the mobile CSS a bit for filters.
2023-08-15 14:33:39 -07:00
Joe Milazzo
6dbb1da450
A few bugfixes (#2188)
* Fixed a case where when setting up initial rates for scrobbling, Kavita would log a user without a token set had no rate.

* Migrated the whole app to use just the directive instead of whole transloco module.

* Migrated the whole app to use just the directive instead of whole transloco module. Fixed prod mode breaking localization & fixed broken minification for language files.

* Time Ago pipe will now show Never if there is a null date. Changed the wording of Last Added To -> Last Item Added for volume/series info screen.

* Fixed Tachiyomi DTOs and bumped sonar to use Java 17

* One more GA thing

* GA junk

* Bump versions by dotnet-bump-version.

* Weblate Changes (#2189)

* Added translation using Weblate (Turkish)

* Translated using Weblate (Thai)

Currently translated at 100.0% (158 of 158 strings)

Translation: Kavita/backend
Translate-URL: https://hosted.weblate.org/projects/kavita/backend/th/

* Translated using Weblate (Thai)

Currently translated at 15.2% (218 of 1426 strings)

Translation: Kavita/ui
Translate-URL: https://hosted.weblate.org/projects/kavita/ui/th/

* Translated using Weblate (Turkish)

Currently translated at 7.7% (110 of 1426 strings)

Translation: Kavita/ui
Translate-URL: https://hosted.weblate.org/projects/kavita/ui/tr/

* Translated using Weblate (Portuguese)

Currently translated at 17.5% (250 of 1426 strings)

Translation: Kavita/ui
Translate-URL: https://hosted.weblate.org/projects/kavita/ui/pt/

* Translated using Weblate (Russian)

Currently translated at 1.2% (2 of 158 strings)

Translation: Kavita/backend
Translate-URL: https://hosted.weblate.org/projects/kavita/backend/ru/

* Translated using Weblate (Russian)

Currently translated at 4.9% (71 of 1426 strings)

Translation: Kavita/ui
Translate-URL: https://hosted.weblate.org/projects/kavita/ui/ru/

* Translated using Weblate (Italian)

Currently translated at 6.7% (96 of 1426 strings)

Translation: Kavita/ui
Translate-URL: https://hosted.weblate.org/projects/kavita/ui/it/

* Translated using Weblate (Turkish)

Currently translated at 8.8% (14 of 158 strings)

Translation: Kavita/backend
Translate-URL: https://hosted.weblate.org/projects/kavita/backend/tr/

---------

Co-authored-by: akoray420 <akoray420@gmail.com>
Co-authored-by: AlienHack <the4got10@windowslive.com>
Co-authored-by: Duarte Silva <smallflake@protonmail.com>
Co-authored-by: Blezz Rot <markus.jenya04@yandex.ru>
Co-authored-by: Tomas Battistini <tomas.battistini@gmail.com>

---------

Co-authored-by: Weblate (bot) <hosted@weblate.org>
Co-authored-by: akoray420 <akoray420@gmail.com>
Co-authored-by: AlienHack <the4got10@windowslive.com>
Co-authored-by: Duarte Silva <smallflake@protonmail.com>
Co-authored-by: Blezz Rot <markus.jenya04@yandex.ru>
Co-authored-by: Tomas Battistini <tomas.battistini@gmail.com>
2023-08-08 07:33:12 -07:00
Joe Milazzo
3b23d63234
Localization - First Pass (#2174)
* Started designing the backend localization service

* Worked in Transloco for initial PoC

* Worked in Transloco for initial PoC

* Translated the login screen

* translated dashboard screen

* Started work on the backend

* Fixed a logic bug

* translated edit-user screen

* Hooked up the backend for having a locale property.

* Hooked up the ability to view the available locales and switch to them.

* Made the localization service languages be derived from what's in langs/ directory.

* Fixed up localization switching

* Switched when we check for a license on UI bootstrap

* Tweaked some code

* Fixed the bug where dashboard wasn't loading and made it so language switching is working.

* Fixed a bug on dashboard with languagePath

* Converted user-scrobble-history.component.html

* Converted spoiler.component.html

* Converted review-series-modal.component.html

* Converted review-card-modal.component.html

* Updated the readme

* Translated using Weblate (English)

Currently translated at 100.0% (54 of 54 strings)

Translation: Kavita/ui
Translate-URL: https://hosted.weblate.org/projects/kavita/ui/en/

* Converted review-card.component.html

* Deleted dead component

* Converted want-to-read.component.html

* Added translation using Weblate (Korean)

* Translated using Weblate (Spanish)

Currently translated at 40.7% (22 of 54 strings)

Translation: Kavita/ui
Translate-URL: https://hosted.weblate.org/projects/kavita/ui/es/

* Translated using Weblate (Korean)

Currently translated at 62.9% (34 of 54 strings)

Translation: Kavita/ui
Translate-URL: https://hosted.weblate.org/projects/kavita/ui/ko/

* Converted user-preferences.component.html

* Translated using Weblate (Korean)

Currently translated at 92.5% (50 of 54 strings)

Translation: Kavita/ui
Translate-URL: https://hosted.weblate.org/projects/kavita/ui/ko/

* Converted user-holds.component.html

* Converted theme-manager.component.html

* Converted restriction-selector.component.html

* Converted manage-devices.component.html

* Converted edit-device.component.html

* Converted change-password.component.html

* Converted change-email.component.html

* Converted change-age-restriction.component.html

* Converted api-key.component.html

* Converted anilist-key.component.html

* Converted typeahead.component.html

* Converted user-stats-info-cards.component.html

* Converted user-stats.component.html

* Converted top-readers.component.html

* Converted some pipes and ensure translation is loaded before the app.

* Finished all but one pipe for localization

* Converted directory-picker.component.html

* Converted library-access-modal.component.html

* Converted a few components

* Converted a few components

* Converted a few components

* Converted a few components

* Converted a few components

* Merged weblate in

* ... -> … update

* Updated the readme

* Updateded all fonts to be woff2

* Cleaned up some strings to increase re-use

* Removed an old flow (that doesn't exist in backend any longer) from when we introduced emails on Kavita.

* Converted Series detail

* Lots more converted

* Lots more converted & hooked up the ability to flatten during prod build the language files.

* Lots more converted

* Lots more converted & fixed a bunch of broken pipes due to inject()

* Lots more converted

* Lots more converted

* Lots more converted & fixed some bad keys

* Lots more converted

* Fixed some bugs with admin dasbhoard nested tabs not rendering on first load due to not using onpush change detection

* Fixed up some localization errors and fixed forgot password error when the user doesn't have change password permission

* Fixed a stupid build issue again

* Started adding errors for interceptor and backend.

* Finished off manga-reader

* More translations

* Few fixes

* Fixed a bug where character tag badges weren't showing the name on chapter info

* All components are translated

* All toasts are translated

* All confirm/alerts are translated

* Trying something new for the backend

* Migrated the localization strings for the backend into a new file.

* Updated the localization service to be able to do backend localization with fallback to english.

* Cleaned up some external reviews code to reduce looping

* Localized AccountController.cs

* 60% done with controllers

* All controllers are done

* All KavitaExceptions are covered

* Some shakeout fixes

* Prep for initial merge

* Everything is done except options and basic shakeout proves response times are good. Unit tests are broken.

* Fixed up the unit tests

* All unit tests are now working

* Removed some quantifier

* I'm not sure I can support localization for some Volume/Chapter/Book strings within the codebase.

---------

Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
Co-authored-by: majora2007 <kavitareader@gmail.com>
Co-authored-by: expertjun <jtrobin@naver.com>
Co-authored-by: ThePromidius <thepromidiusyt@gmail.com>
2023-08-03 08:33:51 -07:00
Joe Milazzo
734e299f7f
Rating Overhaul (#2159)
* Switched Ratings to a float system. Allow rating something as 0%. Allow half step ratings. Added new css variable: --rating-star-color. By default, N/A will show for series that have no ratings. N/A ratings are not included in overall rating calculations.

* Show extended entity properties on desktop for list view cards.

* Refactored the code for series metadata detail to use a re-usable component to reduce the copy/paste for the Genres tags like sections.

* List Item will show extended properties about a chapter/volume, like weblinks on Desktop viewports.

* Refactored even further so all of series detail uses the same component code. Tweaked the spacing on the series detail area.

List items will now show Characters and Tags which are helpful for more Hentai related content.

* Fixed a bug with removing something from "OnDeckRemoval" table when something was read.
2023-07-25 09:57:07 -07:00
Joe Milazzo
a0a6da9c60
Personal Table of Contents (#2148)
* Fixed a bad default setting for token key

* Changed the payment link to support Google Pay

* Fixed duplicate events occurring on newly added series from a scan.

Fixed the version update code from not firing and made it check every 4-6 hours (random per user per restart)

* Check for new releases on startup as well.

Added Personal Table of Contents (called Bookmarks on epub and pdf reader). The idea is that sometimes you want to bookmark certain parts of pages to get back to quickly later. This mechanism will allow you to do that without having to edit the underlying ToC.

* Added a button to update modal to show how to update for those unaware.

* Darkened the link text within tables to be more visible.

* Update link for how to update now is dynamic for docker users

* Refactored to send proper star/end dates for scrobble read events for upcoming changes in the API.

Added GoogleBooks Rating UI code if I go forward with API changes.

* When Scrobbling, send when the first and last progress for the series was.

Added OpenLibrary icon for upcoming enhancements for Kavita+.

Changed the Update checker to execute at start.

* Fixed backups not saving favicons in the correct place

* Refactored the layout code for Personal ToC

* More bugfixes around toc

* Box alignment

* Fixed up closing the overlay when bookmark mode is active

* Fixed up closing the overlay when bookmark mode is active

---------

Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
2023-07-21 15:29:35 -07:00
Joe Milazzo
ed4f9e0144
Preparation for Release (#2135)
* Don't allow Comic libraries to do any scrobbling as there aren't any Comic scrobbling providers yet.

* Fixed a bug where if you have multiple libraries pointing the same folder (for whatever reason), the Scan Folder api could be rejected.

* Handle if publication from an epub is empty to avoid a bad parse error

* Cleaned up some hardcoded default strings.

* Fixed up some defaulting code for the cache size.

* Changed how moving something back to on deck works after it's been removed. Now any progress will trigger it, as epubs don't have chapters.

* Ignore .caltrash, which is a Calibre managed folder, when scanning.

* Added the ability to see Volume Last Read Date (or individual chapter) in details drawer. Hover over the clock for the full timestamp.
2023-07-17 06:48:15 -07:00
Joe Milazzo
49daca943e
Overall Ratings (#2129)
* Corrected tooltip for Cache

* Ensure we sync the DB to what's in appsettings.json for Cache key.

* Change the fingerprinting method for Windows installs exclusively to avoid churn due to how security updates are handled.

* Hooked up the ability to see where reviews are from via an icon on the review card, rather than having to click or know that MAL has "external Review" as title.

* Updated FAQ for Kavita+ to link directly to the FAQ

* Added the ability for all ratings on a series to be shown to the user.

Added favorite count on AL and MAL

* Cleaned up so the check for Kavita+ license doesn't seem like it's running when no license is registered.

* Tweaked the test instance buy link to test new product.
2023-07-14 12:12:03 -07:00