Commit Graph

2012 Commits

Author SHA1 Message Date
Mitchell Syer
7cab4b9229 Simplify secondary config parse (#1540)
* Add backslash escaping

* Use parseMap instead
2025-07-21 22:20:58 -04:00
Mitchell Syer
ac5f1a0d93 Add enabled preference setting (#1539)
* Add enabled preference setting

* Don't change preference if its not enabled
2025-07-21 15:13:17 -04:00
Mitchell Syer
798b9d0c98 Fix cookies when domain is null (#1538) 2025-07-21 15:13:04 -04:00
Chiru-Dey
3ff29aa38a snowmtl extension error fix: dynamic retrieval (#1531)
* dynamic retrieval

* ktlint errors fixed

* reinstated comments
2025-07-21 15:12:57 -04:00
renovate[bot]
f8c2b9ffb0 Update dependency adoptium/temurin21-binaries to jdk-21.0.8+9 (#1529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-21 15:12:49 -04:00
Syer10
888bb8897a Update AppImageTool download location
Not very impressed by the random name change that breaks existing scripts, no warning given.
2025-07-20 17:26:15 -04:00
schroda
192136e66c Change "download conversion compression level" type to Double (#1535)
https://opensource.expediagroup.com/graphql-kotlin/docs/schema-generator/writing-schemas/scalars/#primitive-types
2025-07-20 17:00:00 -04:00
schroda
5057a57f7f Properly bind track privately (#1534)
In case the track was read from the TrackSearchTable the private status was never applied
2025-07-20 16:59:48 -04:00
renovate[bot]
d81a4e0b7f Update dependency io.mockk:mockk to v1.14.5 (#1527)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 21:53:05 -04:00
Mitchell Syer
c63a06730f Fix downloads on errors when converting image (#1526)
* Fix downloads on errors when converting image

* Lint

* Simplify it

* No need for return

* Simplified
2025-07-16 21:52:54 -04:00
Mitchell Syer
bef326d2d7 Fix paths in system properties (#1528)
* Fix paths in system properties

* Remove uneeded parse

* Cleanup name
2025-07-16 21:52:34 -04:00
renovate[bot]
b8e85422f0 Update polyglot to v24.2.2 (#1523)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-15 15:38:29 -04:00
Constantin Piber
d050bfdc68 Localize WebView and Login pages (#1522)
* Localize WebView and Login pages

* Switch to JTE for page rendering

* Lint

* Add gradle task dependency

* JTE -> KTE

* ShouldRunAfter

* I guess we must

---------

Co-authored-by: Syer10 <syer10@users.noreply.github.com>
2025-07-15 15:38:20 -04:00
schroda
3bac176bf6 Prevent UnsupportedOperationException in DownloadManager (#1521)
CopyOnWriteArraySet does not support the usage of "removeAll" with a predicate
2025-07-15 09:32:11 -04:00
Syer10
7c506a42ae Install libfuse2 when creating AppImage 2025-07-14 18:59:50 -04:00
KamaleiZestri
2c436e2027 Add AppImage bundle (#1519)
* Add AppImage build

* add appimage package variable name

* Add workflows

---------

Co-authored-by: Syer10 <syer10@users.noreply.github.com>
2025-07-14 18:51:09 -04:00
Constantin Piber
df0078b725 [#1496] Image conversion (#1505)
* [#1496] First conversion attempt

* [#1496] Configurable conversion

* Fix: allow nested configs (map)

* [#1496] Support explicit `none` conversion

* Use MimeUtils for provided download

* [1496] Support image conversion on load for downloaded images

* Lint

* [#1496] Support conversion on fresh download as well

Previous commit was only for already downloaded images, now also for
fresh and cached

* [#1496] Refactor: Move where conversion for download happens

* Rewrite config handling, improve custom types

* Lint

* Add format to pages mutation

* Lint

* Standardize url encode

* Lint

* Config: Allow additional conversion parameters

* Implement conversion quality parameter

* Lint

* Implement a conversion util to allow fallback readers

* Add downloadConversions to api and backup, fix updateValue issues

* Lint

* Minor cleanup

* Update libs.versions.toml

---------

Co-authored-by: Syer10 <syer10@users.noreply.github.com>
2025-07-14 17:51:18 -04:00
schroda
09c950a890 Fix/gql download subscription errors spamming emits (#1518)
* Remove immediate download notification for latest gql subscription

There is a problem where too many immediate updates can cause the client to lag out (e.g., in case it has to update the queue in the cache based on the updates).
This happens in case e.g., a source is broken and all its downloads error out basically immediately.
With each errored out download, a new one starts, which causes an immediate notification to the clients.

* Determine downloader status from active state of downloader jobs

In case the downloader is active but all downloads are erroring out immediately, no download will have the DOWNLOADING status.
This then would result in the downloader status to constantly be STOPPED.

* Prevent multiple update for the same downloads

It was possible that multiple updates got added for the same download.
This caused issues with the graphql apollo client, because it wasn't able to correctly update the client cache.

* Set download error state only after reaching max retries

In case the max retries haven't been reached yet, the download will be retried and thus setting and emitting the error state will cause weird looking ui updates.
2025-07-14 17:50:03 -04:00
schroda
e7e76ed68d Prevent duplicated meta entries in database (#1517)
fixes #1513
2025-07-14 17:49:27 -04:00
schroda
06c1eeb995 Add missing transaction context to manga category update (#1516)
fixes #1510
2025-07-14 17:49:03 -04:00
renovate[bot]
d545d852c5 Update dependency com.android.tools.build:apksig to v8.11.1 (#1511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 17:48:37 -04:00
renovate[bot]
3486e8dcf3 Update dependency com.typesafe:config to v1.4.4 (#1509)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 17:48:27 -04:00
renovate[bot]
1956b700fc Update dependency com.github.usefulness:webp-imageio to v0.10.2 (#1507)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 17:48:21 -04:00
renovate[bot]
64ad9af344 Update okhttp monorepo to v5.1.0 (#1506)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 17:48:14 -04:00
renovate[bot]
55fec0b82c Update plugin ktlint to v13 (#1504)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 17:48:06 -04:00
Syer10
8323ef5f41 [skip ci] Winget now uses Suwayomi.Suwayomi-Server 2025-07-08 18:26:35 -04:00
Syer10
8dbab23de7 [skip ci] Manual release only 2025-07-07 23:21:29 -04:00
Syer10
825d232613 [skip ci] Manually input version 2025-07-07 23:14:51 -04:00
Syer10
d797a03502 Modify Winget 2025-07-07 23:05:33 -04:00
Mitchell Syer
0ef6d74514 Add auth to log protection (#1501) 2025-07-06 14:01:37 -04:00
Constantin Piber
6234e897a8 [#1497] WebView: Localstorage (#1500)
* [#1497] WebView: Localstorage

* WebView: Transition to our own header/postData system

This is also what is recommended by most other posts, I haven't seen the
context used anywhere, and `KCEFResourceRequestHandler` seems to just
bypass a lot of CEF

* Lint
2025-07-06 12:09:31 -04:00
renovate[bot]
fe121f59b0 Update okhttp monorepo to v5.0.0 (#1493)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-06 12:09:16 -04:00
renovate[bot]
90cf5fcdec Update dependency com.squareup.okio:okio to v3.15.0 (#1488)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-06 12:09:00 -04:00
renovate[bot]
8b5782a5b6 Update dependency gradle to v8.14.3 (#1494)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-06 12:08:44 -04:00
Constantin Piber
68a131dbeb [#1349] Basic Cookie Authentication (#1498)
* [#1349] Stub basic cookie authentication

* [#1349] Basic login page

Also adjusts WebView header color and shadow to match WebUI. WebUI uses
a background-image gradient to change the perceived color, which was not
noticed originally.

* [#1349] Handle login post

* [#1349] Redirect to previous URL

* [#1349] Return a basic 401 for api endpoints

Instead of redirecting to a visual login page, API should just indicate
the bad state

* Use more appropriate 303 redirect

* Update server/src/main/kotlin/suwayomi/tachidesk/server/JavalinSetup.kt

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

* Update server/src/main/kotlin/suwayomi/tachidesk/server/JavalinSetup.kt

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

* Lint

* Transition to AuthMode enum with migration path

* Make basicAuthEnabled auto property, Lint

* ConfigManager: Make sure to re-parse the config after migration

* basicAuth{Username,Password} -> auth{Username,Password}

* Lint

* Update server settings backup model

* Update comment

* Minor cleanup

* Improve backup legacy settings fix

* Lint

* Simplify config value migration

---------

Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com>
2025-07-06 12:08:29 -04:00
Mitchell Syer
1411c02e18 [skip ci] Update CONTRIBUTING.md 2025-07-02 23:38:22 -04:00
Constantin Piber
81fe3f0108 Stop dumping cookies in the console (#1490) 2025-07-02 13:35:56 -04:00
Constantin Piber
c15cf23168 Kcef: Disable SHM (#1489)
In Docker, `/dev/shm` is restricted, so Chromium dies of OOM

See also https://stackoverflow.com/a/56941767/7508309
2025-07-02 13:23:21 -04:00
Constantin Piber
a79dc580a5 Browser Webview (#1486)
* WebView: Add initial controller

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

* WebView: Prepare page

* WebView: Basic HTML setup

* WebView: Improve navigation

* WebView: Refactor message class deserialization

* WebView: Refactor event message serialization

* WebView: Handle click events

* WebView: Fix events after refactor

* WebView: Fix normalizing of URLs

* WebView: HTML remove navigation buttons

* WebView: Handle more events

* WebView: Handle document change in events

* WebView: Refactor to send mutation events

* WebView: More mouse events

* WebView: Include bubbles, cancelable in event

Those seem to be important

* WebView: Attempt to support nested iframe

* WebView: Handle long titles

* WebView: Avoid setting invalid url

* WebView: Send mousemove

* WebView: Start switch to canvas-based render

* WebView: Send on every render

* WebView: Dynamic size

* WebView: Keyboard events

* WebView: Handle mouse events in CEF

This is important because JS can't click into iFrames, meaning the
previous solution doesn't work for captchas

* WebView: Cleanup

* WebView: Cleanup 2

* WebView: Document title

* WebView: Also send title on address change

* WebView: Load and flush cookies from store

* WebView: remove outdated TODOs

* Offline WebView: Load cookies from store

* Cleanup

* Add KcefCookieManager, need to figure out how to inject it

* ktLintFormat

* Fix a few cookie bugs

* Fix Webview on Windows

* Minor cleanup

* WebView: Remove /tmp image write, lint

* Remove custom cookie manager

* Multiple cookie fixes

* Minor fix

* Minor cleanup and add support for MacOS meta key

* Get enter working

* WebView HTML: Make responsive for mobile pages

* WebView: Translate touch events to mouse scroll

* WebView: Overlay an actual input to allow typing on mobile

Browsers will only show the keyboard if an input is focused. This also
removes the `tabstop` hack.

* WebView: Protect against occasional NullPointerException

* WebView: Use float for clientX/Y

* WebView: Fix ChromeAndroid being a pain

* Simplify enter fix

* NetworkHelper: Fix cache

* Improve CookieStore url matching, fix another cookie conversion issue

* Move distinctBy

* WebView: Mouse direction toggle

* Remove accidentally copied comment

---------

Co-authored-by: Mitchell Syer <Syer10@users.noreply.github.com>
2025-07-01 17:28:41 -04:00
renovate[bot]
8a62c6295d Update moko to v0.25.0 (#1487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 17:28:28 -04:00
renovate[bot]
88e77e1547 Update okhttp monorepo to v5.0.0-alpha.17 (#1485)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 17:28:06 -04:00
Weblate (bot)
534619bc1a Weblate translations (#1484)
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-server/ja/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-server/pl/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-server/pt/
Translation: Suwayomi/Suwayomi-Server

Co-authored-by: 9811pc <9811.main@gmail.com>
Co-authored-by: N'Num Yutthaphon Inchaiya <yutthaphon30667@gmail.com>
Co-authored-by: Psico <psikenji@users.noreply.hosted.weblate.org>
Co-authored-by: Syer10 <Mitchellptbo@gmail.com>
Co-authored-by: UnknownSkyrimPasserby <f7022961@opayq.com>
2025-07-01 17:27:56 -04:00
Constantin Piber
ae904753f7 systemd: use startup script, X server (#1482)
* systemd: use startup script

* script: Start X server using `xvfb-run` if DISPLAY is not set
2025-06-28 17:04:13 -04:00
Mitchell Syer
8c4a2cb529 Add chapter lastReadAt to backups as BackupHistory (#1477)
* Add chapter lastReadAt to backups as BackupHistory

* MaxOrNull
2025-06-28 17:04:04 -04:00
renovate[bot]
16d4893480 Update dependency com.squareup.okio:okio to v3.14.0 (#1483)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-28 17:03:55 -04:00
renovate[bot]
a7446e2f4c Update dependency com.github.usefulness:webp-imageio to v0.10.1 (#1480)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-28 17:03:47 -04:00
renovate[bot]
9dcae193a9 Update serialization to v1.9.0 (#1479)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-28 17:03:36 -04:00
renovate[bot]
36fac0f3f4 Update dependency com.android.tools.build:apksig to v8.11.0 (#1473)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-28 17:03:26 -04:00
renovate[bot]
24a4c176c0 Update plugin buildconfig to v5.6.7 (#1469)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-28 17:03:17 -04:00
renovate[bot]
9c7f50e91e Update kotlin monorepo to v2.2.0 (#1466)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-28 17:03:07 -04:00