Commit Graph

1002 Commits

Author SHA1 Message Date
Mitchell Syer 82df985201 Crash on startup if an unrecoverable error happens (#2019)
* Crash on startup if an unrecoverable error happens

* Changelog
2026-05-14 11:44:52 -04:00
Mitchell Syer e93efa9627 Fix Database Types as Needed (#2020) 2026-05-12 19:59:06 -04:00
Mitchell Syer 03a95e6652 Fix New Databases (#2016)
* Standardize toSqlName

* Rename Meta Key db field since KEY is now a reserved name in H2

* Changelog entry

* Use toSqlName

* Forgot this key

* Catch any exception
2026-05-12 17:22:35 -04:00
renovate[bot] c117d380a3 Update exposed to v1 (major) (#1868)
* Update exposed to v1

* Update Exposed

* Add Kotlinx.DateTime extensions

* Update H2

* Review comments

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Syer10 <syer10@users.noreply.github.com>
2026-05-12 12:53:41 -04:00
Akiaki0324 5bdb945406 fix: truncate filenames by bytes instead of characters to avoid File name too long (#1933)
* fix: truncate filenames by bytes instead of characters to avoid IOException File name too long

* add a CHANGELOG.md entry.
2026-05-10 19:02:11 -04:00
David Brochero 3064f51d25 fix: don't resuse invalidated cf_clearance cookie on CloudFlareInterceptor (#1916)
* fix: let FlareSolverr handle it's own `cf_clearance` cookie

also dedups cookies

* linting

* suggested changes

* my bad

* add to changelog
2026-05-10 19:01:51 -04:00
renovate[bot] edf376e3dd Update graphqlkotlin to v10 alpha (major) (#1923)
* Update graphqlkotlin to v9

* Update to the v10 alpha due to nullability issues in v9

* Fixes

* Remove asDataFetcherResult

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Syer10 <syer10@users.noreply.github.com>
2026-05-10 19:01:34 -04:00
Mitchell Syer 6fef27bb56 Wait until WebUI is ready to open in browser (#2010)
* Wait until WebUI is ready

* Changelog

* Move openInBrowser out of timeout
2026-05-09 18:15:43 -04:00
renovate[bot] 6ee3348f50 Update javalin to v7 (major) (#1920)
* Update javalin to v7

* Update Javalin usage to v7 and Jackson 3

* Import fix

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Syer10 <syer10@users.noreply.github.com>
2026-05-09 14:52:00 -04:00
renovate[bot] ec28794655 Update kotlin to v2.3.21 (#1991)
* Update kotlin to v2.3.21

* Context Parameters

* Use new format

* Lint

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Syer10 <syer10@users.noreply.github.com>
2026-05-09 11:41:27 -04:00
schroda 0bdcf8b4ba Handle serving non-default webui with "bundled" channel (#1924)
Channel "bundled" only works with the default webui.
So force change the flavor and log a warning for information
2026-05-08 17:30:42 -04:00
Constantin Piber 76686db6a1 [#1974] Uninstall extension completely on install failure (#1975)
* [#1974] Uninstall extension completely on install failure

* Add changelog entry

---------

Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com>
2026-05-05 10:04:50 -04:00
schroda 5cda584568 Inject html base tag directly (#1967)
Using a script to inject the base tag is unnecessarily complex as well as it is introducing an issue where the initial requests will potentially fail, due to the base tag not being injected yet.

See https://github.com/Suwayomi/Suwayomi-WebUI/issues/1096, same issue applies when a subpath is set up which can't be fixed on the client side
2026-05-02 17:21:23 -04:00
AwkwardPeak7 031890deb6 extract apk icon (#1966) 2026-05-02 17:21:13 -04:00
ItsGlassPlus1 0f149c9b33 Add JXL container format support (#1951) 2026-05-02 17:21:01 -04:00
manti 41f22df16f Singleton Protobuf (#1961) 2026-05-02 17:20:52 -04:00
David Brochero f977d181a8 fix: default body to empty string if not present for FlareSolverr POST requests (#1915)
* fix: convert `RequestBody` to `FormBody` in FlareSolverr `POST` requests

* linting

* ref: don't convert json to form

* remove unused import
2026-02-20 20:09:34 -05:00
David Brochero 2249d237dd fix: support for POST requests on CloudflareInterceptor (#1909)
* fix: support for POST requests

Works with Flaresolverr. Required for Kagane.

Byparr is not a drop-in replacement, it just ignores the `cmd`  and interprets everything as a GET request.

* Use encodeToString instead

* linting

* Use FormBody for encoding

Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com>

* Add missing imports

* linting, again

---------

Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com>
2026-02-18 18:51:07 -05:00
schroda 5b5e2b26f9 Fix stale manga data in library update subscription (#1889)
Regression 439e0c8284
2026-02-08 15:04:59 -05:00
schroda f3d6bb4f22 Add mutations to update multiple metas (#1874) 2026-02-08 15:04:19 -05:00
Mitchell Syer 146290283f ChildFirstClassLoader (#1873)
* ChildFirstClassLoader

* Lint

* ChildFirstURLClassLoader

* Fix reference
2026-01-29 18:48:33 -05:00
schroda 35bcbc69a2 Fix missing PostgreSQL schema migration (#1882)
I mistakenly thought that the suwayomi schema was always being used and therefore did not think a migration for the fix b4595b70d6 was necessary.
However, this was only the case in case the username was set to suwayomi. Otherwise, the public schema was being used.
Thus, we need to migrate the data from the public schema to the suwayomi schema in these cases.
2026-01-29 18:48:24 -05:00
schroda a58dcc6f19 Prevent subpath injection with disabled setting (#1869) 2026-01-23 11:30:29 -05:00
schroda b4595b70d6 Fix/using postgresql with hikaricp (#1867)
* Set default schema for postgresql db

The schema was only set once during startup. This is, however, only set for the current connection. So when using hikaricp, depending on which connection was used, the schema might have been set, or it might not have been set.

fixes #1670

* Revert "Fix database connection and errors (#1681)"

This reverts commit 2e0f72f182.

Not necessary anymore as the issue that this change intended to fix is now fixed with 091206800025ed9370d611e7ca3430ab409a0cb2
2026-01-22 20:27:22 -05:00
Constantin Piber 02da884f17 fix: Do not return inputStream from conversion & handle conversion error (#1854)
* fix: Do not return `inputStream` from conversion

The returned value must be owned, since the caller closes the input
stream on success

* fix: Assume a conversion error consumes the input stream

e.g. converting an ARGB png to jpeg will throw "bogus colorspace", but
only after the inputstream is consumed. so in case of an exception, we
have to assume that the stream is broken and re-open the page from cache
2026-01-11 16:48:16 -05:00
Constantin Piber 9f60bb8f3e Fix Kitsu to use library_id properly (#1843)
Same as mihonapp/mihon#2609
2026-01-03 12:54:49 -05:00
Mitchell Syer 7eb752654b Shikimori tracker (#1839)
* Shikimori tracker

* Add authUrl and callback

* Add OAuth id and secret
2026-01-03 12:54:30 -05:00
schroda c624c6d860 Fix updating webui version update timestamp on manual update trigger (#1837) 2026-01-03 12:53:26 -05:00
schroda 3b36ec550d Remove koreader sync server address from settings (#1807)
Should have been done with 4dbd9d70d2
2025-12-06 12:38:45 -05:00
schroda 4478042f40 Fix updating server settings (#1805)
The server setting updater passed an already converted value to the setting validator, which then tried to convert the value again, which caused an error

Regression aa8d27f679
2025-12-06 12:38:23 -05:00
renovate[bot] 83c94c044d Update dependency com.pinterest.ktlint:ktlint-cli to v1.8.0 (#1786)
* Update dependency com.pinterest.ktlint:ktlint-cli to v1.8.0

* Format

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Syer10 <syer10@users.noreply.github.com>
2025-12-06 12:37:19 -05:00
schroda 9d7f54be82 Feature/improve server config non privacy safe setting handling (#1794)
* Move the "group" arg at the second position after "protoNumber"

To make it consistent for all settings

* Improve server config non privacy safe setting handling

---------

Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com>
2025-11-25 21:58:00 -05:00
schroda aa8d27f679 Fix/backup restore with invalid settings (#1793)
* Fix typo in setting validation error message

* Convert value to internal type before validating it

* Only update setting in case value is valid

* Ignore settings validation errors on backup restore

* Remove potential not privacy safe value from logs
2025-11-25 21:56:57 -05:00
schroda b58a716daa Provide webui update timestamp in about webui gql query (#1789)
Makes it possible for the client to determine if a forced page refresh is required to ensure up-to-date webui files are being used
2025-11-25 21:56:39 -05:00
Mitchell Syer 6c4c2a175b Allow using legacy database connections (#1785)
* Allow using legacy db connections

* Lint

* Description and docs
2025-11-12 16:24:41 -05:00
FadedSociety 0a7e6cce87 Remote Image Processing (#1684)
* Update ServerConfig.kt

* Update ConversionUtil.kt

* Update Page.kt

* Update ServerConfig.kt

fixed deletions caused by ide

* Update ServerConfig.kt

* Update ServerConfig.kt

* Cleanup

* Post-processing terminology

* More comments

* Lint

* Add known image mimes

* Fix weird mime set/get

* Implement different downloadConversions and serveConversions

* Lint

* Improve Post-Processing massivly

* Fix thumbnail build

* Use Array for headers

* Actually fix headers

* Actually fix headers 2

* Manually parse DownloadConversion

* Cleanup parse

* Fix write

* Update TypeName

* Optimize imports

* Remove header type

* Fix build

---------

Co-authored-by: Syer10 <syer10@users.noreply.github.com>
2025-11-12 16:23:34 -05:00
schroda 8e405e3996 Fix/manga update of title and download folder (#1774)
* Use "move" instead of "renameTo"

* Add additional checks for download folder rename

* Log exception during manga download folder rename
2025-11-08 19:38:35 -05:00
schroda 3b21442e25 Feature/web interface manager cache requests (#1773)
* Cache webui server mapping file

* Cache webui preview version
2025-11-08 19:38:25 -05:00
schroda dd895157c6 Throttle WebInterfaceManager requests retries (#1772) 2025-11-08 19:38:16 -05:00
schroda 436daeb87c Overwrite existing served webui files on copy (#1771)
There is a possibility that the serve folder was only partially deleted. This then could cause "FileAlreadyExistsException" when copying the webui files to the serve folder.
2025-11-08 19:38:08 -05:00
Mitchell Syer 0f95e19c76 Fix websocket token (#1766) 2025-11-06 15:26:04 -05:00
schroda 6b0fddd421 Prevent running webui auto update in parallel to the setup (#1759) 2025-11-01 14:31:13 -04:00
schroda 4dbd9d70d2 Fix/remove koreader-sync credentials from server config (#1758)
* Remove koreader-sync credentials from config

These are supposed to be set via the login/logout mutations and are not meant to be set manually by the user. Thus, they are not really settings and do not belong to the config

* Reduce log levels of KoreaderSyncService
2025-11-01 14:31:07 -04:00
schroda 53c4659044 Optionally allow basic auth fallback for chapter page endpoint (#1757)
Requesting a chapter page while having a non basic auth mode (e.g. ui login) enabled caused the basic auth prompt.
However, this is only supposed to be happen for opds
2025-11-01 14:31:01 -04:00
schroda fb41ad38f6 Ensure webui static resources folder exists before serving it (#1756)
When the webUI got opened before the setup was completed, the missing folder caused an exception and broke the javalin server.
In that case, even after the webui setup completed, the server just returned the index.html for every path
2025-11-01 14:30:54 -04:00
Constantin Piber 2a27491f9f [#1749] Only consider path in SIMPLE_LOGIN redirect (#1751)
* [#1749] Only consider path in SIMPLE_LOGIN redirect

We don't really care about the origin, since that is implicit in
`Location` headers if not given, which sidesteps the HTTP/HTTPS issue

* Refuse non-relative redirects
2025-11-01 14:29:28 -04:00
Mitchell Syer c9575449da Allow basic auth fallback for OPDS (#1745) 2025-10-26 12:38:02 -04:00
Constantin Piber 3e7c5e2948 Revert "Support sending floats" and convert DoubleFilter to FloatFilter (#1747)
* Revert "[#1739] Support sending floats (#1740)"

This reverts commit c1f2aae90d.

Closes #1746

* Use `DoubleFilter` for GQL interface, convert to `FloatFilter`

Closes #1739 (again)
2025-10-26 12:37:50 -04:00
Constantin Piber c1f2aae90d [#1739] Support sending floats (#1740)
* [#1739] Support sending floats

Required for `FloatFilter`, which needs to be float due to DB layer

* Simplify `parseValueImpl`, use correct coercion hints
2025-10-24 18:38:41 -04:00
Constantin Piber 9d09a1fe5d [#1596] Dispose KCEF on shutdown (#1738)
* [#1596] Dispose KCEF on shutdown

* Use blocking variant
2025-10-24 18:38:27 -04:00