Commit Graph

1983 Commits

Author SHA1 Message Date
Constantin Piber
21e64eb54a Introduce a MainCoroutineDispatcher (#1744)
* Introduce a `MainCoroutineDispatcher`

This is almost entirely based on
8c27d51025/ui/kotlinx-coroutines-android/src/HandlerDispatcher.kt,
which is the implementation of `kotlinx-coroutines-android`

* Lint

* Move dispatcher to AndroidCompat
2025-10-25 14:31:59 -04:00
renovate[bot]
c4b2f8582e Update GitHub Artifact Actions (#1741)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-24 18:38:59 -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
Constantin Piber
7d006a19c3 android.util.Log: Pass log level to actual logger (#1737)
Instead of just printing it and dumping everything at INFO, call the
underlying logger with the correct level
2025-10-24 18:38:19 -04:00
Constantin Piber
d23d10601e Add --change-stack-guard-on-fork=disable to fix stack smashing (#1736)
* Add --change-stack-guard-on-fork=disable to fix stack smashing

See chromiumembedded/cef#3912

* Add PR comments
2025-10-24 18:38:04 -04:00
Constantin Piber
b4db9ebdb0 Settings generator: Validate that protoNumber is unique (#1735)
This makes specifying an already-used number a compile time error
2025-10-24 18:37:58 -04:00
renovate[bot]
d8050dc483 Update kotlin monorepo to v2.2.21 (#1733)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-24 18:37:52 -04:00
Zeedif
4011a4c3ee feat(koreader): Set public server as default for KOReader Sync (#1732) 2025-10-24 18:37:22 -04:00
Weblate (bot)
c35dd1a2c7 Weblate translations (#1728)
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-server/it/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-server/pl/
Translation: Suwayomi/Suwayomi-Server

Co-authored-by: Gino Cicatiello <ginocic@gmail.com>
Co-authored-by: Kamil Czesny <maczete2@gmail.com>
2025-10-24 18:37:15 -04:00
Constantin Piber
bc6e28cabe OPDS: Offer CBZ in older mimetype (#1731)
* OPDS: Offer CBZ in older mimetype

* OPDS: Include length when offering CBZ download

* Disable compression on CBZ endpoint

Zipping a zip

* CBZ download match content type of OPDS

* Move compression disable

* Introduce setting for configuring CBZ mimetype

* Document new option

[no-ci]

* Update server/src/main/kotlin/suwayomi/tachidesk/opds/impl/OpdsEntryBuilder.kt

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

---------

Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com>
2025-10-24 18:36:59 -04:00
Constantin Piber
68492bf591 Actually set Track ID when updating track (#1726) 2025-10-20 13:56:08 -04:00
renovate[bot]
29e7bab4e4 Update dependency ch.qos.logback:logback-classic to v1.5.20 (#1727)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-20 13:55:58 -04:00
Constantin Piber
5be4d2a104 Minor bug fixes for Webview, Permission request support (#1723)
* fix: Match URLs with trailing /

* Handle permission requests and attempt to enable Widevine

* Tie CEF loglevel to server debug logs

* Lint

* Add missing file

Forgot to add in previous commits

* Provide WebResourceResponse

* Fix NullException if headers are not set

* fix: Don't allow interception for initial page load

fixes #1713

* Lint
2025-10-17 12:07:18 -04:00
Mitchell Syer
0585000cf3 Fix header/cookie based websocket auth (#1722)
* Fix header/cookie based websocket auth

* Lint
2025-10-17 12:07:02 -04:00
renovate[bot]
045e4d23fb Update dependency com.github.junrar:junrar to v7.5.7 (#1721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-17 12:06:46 -04:00
schroda
7b5d96189e Feature/automatic backup flags (#1702)
* Add backup flags to auto backups

* Mark ServerConfig properties as deprecated

---------

Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com>
2025-10-14 19:40:46 -04:00
renovate[bot]
5b46359057 Update okhttp monorepo to v5.2.1 (#1706)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 19:40:04 -04:00
renovate[bot]
44de584be3 Update plugin buildconfig to v5.7.0 (#1707)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 19:39:51 -04:00
renovate[bot]
52a9be3a7e Update dependency com.squareup.okio:okio to v3.16.2 (#1708)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-14 19:39:11 -04:00
schroda
8d119fd710 Feature/cleanup backup logic (#1701)
* Extract global metadata backup logic into BackupGlobalMetaHandler

* Extract category backup logic into BackupCategoryHandler

* Extract source backup logic into BackupSourceHandler

* Extract manga backup logic into BackupMangaHandler
2025-10-14 19:37:29 -04:00
Weblate (bot)
b802c6977a Weblate translations (#1705)
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-server/fr/
Translation: Suwayomi/Suwayomi-Server

Co-authored-by: mrintrepide <quentin@intrepide.io>
2025-10-14 19:37:22 -04:00
robo
1af1562473 [skip ci] Update arch linux install in README.md (#1716) 2025-10-11 19:07:52 -04:00
schroda
0d79ac68f8 Feature/backup import add backup flags (#1697)
* Add backup flags to backup restore

* Cleanup default backup flags handling

* Optionally exclude manga from backup
2025-10-05 18:52:45 -04:00
Constantin Piber
3ce9f72e3f Allow symlinks in static files (#1699) 2025-10-04 15:12:59 -04:00
schroda
9437e4243a Use canonical path for static files directory (#1698)
On mac the temp system folder is a symlink which jetty does not allow by default due to security reasons.
This caused the webui files to not get served on mac.
2025-10-04 15:12:52 -04:00
Constantin Piber
b92f9a2e4d [skip ci] Renovate json fix (#1696)
* Regex fix backslashes

* Add required `depNameTemplate`

It's not used, but renovate requires it
2025-10-03 10:57:20 -04:00
Constantin Piber
6181467abb Include jdk.accessibility in jlink setup (#1693)
Same as mguessan/davmail#417
2025-10-03 10:39:44 -04:00
renovate[bot]
5b55858184 Update moko to v0.25.1 (#1691)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 10:39:29 -04:00
renovate[bot]
6dd789dedc Update gradle/actions action to v5 (#1690)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 10:39:11 -04:00
renovate[bot]
8d3a144afd Update dependency io.mockk:mockk to v1.14.6 (#1689)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 10:38:49 -04:00
renovate[bot]
5577dff087 Update dependency ch.qos.logback:logback-classic to v1.5.19 (#1688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-03 10:38:37 -04:00
schroda
f4e32bac1a Clear queued state updates on immediate emission (#1685)
There was a possible race condition where immediate state updates got overwritten by previously queued ones.
For example, when the download was successful but the downloaded files are deemed invalid, a previously queued download progress state update might overwrite the emitted error state.
2025-10-03 10:38:25 -04:00
Constantin Piber
02aada7f08 [#1676] Reorder source pages (#1683)
Some sources don't properly index their pages in some situations, so
follow Mihon and reindex
2025-10-03 10:38:10 -04:00
Mitchell Syer
fb05371ac2 Add way to exclude settings from backups (#1682)
* Add way to exclude settings from backups

* Exclude flaresolverrEnabled

* Exclude usernames/passwords

* Exclude writing deprecated settings to the backup

* Exclude AuthMode
2025-10-03 10:37:50 -04:00
Constantin Piber
9a9c0532de Move to Zulu JRE (#1675)
* Move `apt` commands behind `$CI`

Same as for the windows command, no need to rerun this every time

* Use fallback to avoid unbound variables

* Scripts: Switch to Zulu JRE

* workflows: Switch to zulu JDK

* fix: Launcher requires sun.awt.* exports

* Update renovate for Zulu
2025-10-03 10:37:30 -04:00
Mitchell Syer
2e0f72f182 Fix database connection and errors (#1681) 2025-09-29 11:24:52 -04:00
schroda
f210bbc22a Setup webUI in background (#1679)
Stops blocking javalin startup in case of internet connection issues
2025-09-29 11:24:45 -04:00
Constantin Piber
08c4f8bcc2 Clarify UI_LOGIN availability and introduce bullet points (#1677) 2025-09-29 11:24:32 -04:00
schroda
9062252939 Fix/server config duplicated types (#1672)
* Move "serverConfig" to "server-config" module

* Remove duplicated types

Unintentionally introduced with 8ef2877040
2025-09-29 11:24:26 -04:00
schroda
5c79672d84 Use graphql directive for auth handling (#1671) 2025-09-29 11:24:19 -04:00
schroda
5e48b05270 [skip ci] Add database to bug issue template (#1680) 2025-09-28 18:24:29 -04:00
schroda
28ab0af6d4 Fix base path injection when serving from root (#1669)
Without having a subpath defined, the base path incorrectly ended with two "/" instead of one
2025-09-25 11:56:19 -04:00
schroda
cdb98d2175 Feature/reduce logging (#1667)
* Reduce Hikari related logging

* Reduce WebView related logging
2025-09-24 18:01:23 -04:00
schroda
d95f4fe1e1 Fix/webui subpath injection (#1666)
* Cleanup subpath handling

* Move webUI serve setup logic to WebInterfaceManager

* Fix webUI subpath injection

Dynamic subpath support on the client requires using relative paths for everything.
Without a <base> tag this only works when opening the client on the root path.
Any subpath will result in a blank page because the used url to request e.g., an asset will be invalid and cause an error (type mismatch, since the index.html will be returned for any unmatch route).
2025-09-24 18:01:13 -04:00
Mitchell Syer
6e2be271c3 Minor DB Fix (#1668)
* Minor DB fix

* Lint
2025-09-24 18:01:04 -04:00
Soner Köksal
bfccbaf731 Optimize database performance with HikariCP and transaction batching (#1660)
* Optimize database performance with HikariCP and transaction batching

- Add HikariCP-7.0.2 connection pooling with Raspberry Pi optimized settings
- Consolidate database transactions in DirName, ChapterForDownload, and ChapterDownloadHelper
- Remove duplicate queries and unused methods from ChapterForDownload
- Batch database operations to reduce transaction overhead
- Add shared query functions to eliminate redundant database calls
- Configure memory settings for build optimization

Performance improvements:
- DirName functions: 99% faster (29s → 0.1s)
- ChapterDownloadHelper: 99.5% faster (54s → 0.3s)
- ChapterForDownload: 97% faster transaction operations
- Overall system: 75% faster execution time (242s → 60s)

* Fix review comments
2025-09-23 15:54:09 -04:00
Soner Köksal
c7b4f226b3 Add server-side subpath support for WebUI (#1658)
* Add server-side subpath support for WebUI

- Add webUISubpath configuration setting with regex validation
- Create temporary WebUI directory for subpath serving
- Inject subpath config into index.html for client detection
- Support all WebUI flavors (WEBUI, VUI, CUSTOM) with subpath
- Update browser opening to use subpath URLs

Related to Suwayomi/Suwayomi-WebUI#174

* Fix review points

* Fix code formatting issues

* Fix import issue
2025-09-23 15:53:53 -04:00
renovate[bot]
d142d3a25a Update dependency org.postgresql:postgresql to v42.7.8 (#1657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-23 15:53:44 -04:00
renovate[bot]
f8b00a4541 Update dependency org.bouncycastle:bcprov-jdk18on to v1.82 (#1652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-23 15:53:38 -04:00