mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-06 04:14:34 -05:00
Compare commits
11 Commits
renovate/g
...
v2.3.2238
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a1770cb055 | ||
|
|
cf3589f272 | ||
|
|
d7a839b1fd | ||
|
|
5d46f2a197 | ||
|
|
fbd3a3cc5d | ||
|
|
41d23c0a09 | ||
|
|
f473135d04 | ||
|
|
36ecb3ce6f | ||
|
|
0cac79f354 | ||
|
|
0fd10cc08e | ||
|
|
87aac38253 |
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -42,7 +42,7 @@ body:
|
|||||||
label: Suwayomi-Server version
|
label: Suwayomi-Server version
|
||||||
description: You can find your Suwayomi-Server version in **More → About**.
|
description: You can find your Suwayomi-Server version in **More → About**.
|
||||||
placeholder: |
|
placeholder: |
|
||||||
Example: "v2.3.2226"
|
Example: "v2.3.2238"
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
|||||||
2
.github/workflows/docker_build_stable.yml
vendored
2
.github/workflows/docker_build_stable.yml
vendored
@@ -11,5 +11,5 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: run docker build and publish script
|
- name: run docker build and publish script
|
||||||
run: |
|
run: |
|
||||||
curl -X POST -H "Accept: application/vnd.github.v3+json" -H "Authorization: token ${{ secrets.DEPLOY_PREVIEW_TOKEN }}" -d '{"ref":"main", "inputs":{"tachidesk_release_type": "stable"}}' https://api.github.com/repos/suwayomi/docker-tachidesk/actions/workflows/build_container_images.yml/dispatches
|
curl -X POST -H "Accept: application/vnd.github.v3+json" -H "Authorization: token ${{ secrets.DEPLOY_DOCKER_TOKEN }}" -d '{"ref":"main", "inputs":{"tachidesk_release_type": "stable"}}' https://api.github.com/repos/suwayomi/suwayomi-server-docker/actions/workflows/build_container_images.yml/dispatches
|
||||||
|
|
||||||
|
|||||||
37
.github/workflows/winget.yml
vendored
37
.github/workflows/winget.yml
vendored
@@ -1,19 +1,52 @@
|
|||||||
name: Publish to WinGet
|
name: Publish to WinGet
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
version:
|
version:
|
||||||
description: Version
|
description: Version
|
||||||
required: false
|
required: false
|
||||||
|
type: string
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publish:
|
||||||
runs-on: windows-latest # action can only be run on windows
|
runs-on: windows-latest # action can only be run on windows
|
||||||
steps:
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Determine version
|
||||||
|
id: version
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ github.token }}
|
||||||
|
run: |
|
||||||
|
if [ -n "${{ inputs.version }}" ]; then
|
||||||
|
VERSION="${{ inputs.version }}"
|
||||||
|
elif [ "${{ github.event_name }}" = "release" ]; then
|
||||||
|
VERSION="${{ github.event.release.tag_name }}"
|
||||||
|
else
|
||||||
|
VERSION="$(gh release view --json tagName -q .tagName)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: Sync winget-pkgs fork with upstream
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.WINGET_PUBLISH_PAT }}
|
||||||
|
run: |
|
||||||
|
gh api \
|
||||||
|
--method POST \
|
||||||
|
-H "Accept: application/vnd.github+json" \
|
||||||
|
"/repos/Suwayomi/winget-pkgs/merge-upstream" \
|
||||||
|
-f branch=master
|
||||||
|
|
||||||
- uses: vedantmgoyal2009/winget-releaser@v2
|
- uses: vedantmgoyal2009/winget-releaser@v2
|
||||||
with:
|
with:
|
||||||
identifier: Suwayomi.Suwayomi-Server
|
identifier: Suwayomi.Suwayomi-Server
|
||||||
installers-regex: '.*x64.msi$'
|
installers-regex: '.*x64.msi$'
|
||||||
token: ${{ secrets.WINGET_PUBLISH_PAT }}
|
token: ${{ secrets.WINGET_PUBLISH_PAT }}
|
||||||
version: ${{ inputs.version || github.ref_name }}
|
version: ${{ steps.version.outputs.version }}
|
||||||
release-tag: ${{ inputs.version || github.ref_name }}
|
release-tag: ${{ steps.version.outputs.version }}
|
||||||
24
CHANGELOG.md
24
CHANGELOG.md
@@ -15,11 +15,27 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|||||||
### Fixed
|
### Fixed
|
||||||
- .
|
- .
|
||||||
|
|
||||||
## [v2.3.2226] - 2026-07-01
|
## [v2.3.2238] - 2026-07-05
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- (**Extension**) Support fully qualified extension class names
|
||||||
|
- (**Manga/API**) Return partial responses for Manga And Chapters query
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- (**Database/H2**) Use temporary file for H2 migration tools download
|
||||||
|
|
||||||
|
## [v2.3.2232] - 2026-07-03
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- (**Extension**) Update APK url on installed Extensions
|
||||||
|
|
||||||
|
## [v2.3.2230] - 2026-07-01
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- (**Extension/API**) Fix GQL handling of extensions without an extension store
|
- (**Extension/API**) Fix GQL handling of extensions without an extension store
|
||||||
- (**Build/Bundler**) Fix build continuing if errors happen
|
- (**Build/Bundler**) Fix build continuing if errors happen
|
||||||
|
- (**Build/Bundler**) Remove jogamp from build script
|
||||||
|
- (**Build/Bundler**) Fix chmod attempts on Windows Java
|
||||||
|
|
||||||
## [v2.3.2223] + [WebUI: v20260509.01] - 2026-06-30
|
## [v2.3.2223] + [WebUI: v20260509.01] - 2026-06-30
|
||||||
|
|
||||||
@@ -484,8 +500,10 @@ Huge thanks to @martinek who pulled the most of the weight this release!
|
|||||||
|
|
||||||
<!-- SERVER LINKS -->
|
<!-- SERVER LINKS -->
|
||||||
|
|
||||||
[unreleased]: https://github.com/suwayomi/suwayomi-server/compare/v2.3.2226...HEAD
|
[unreleased]: https://github.com/suwayomi/suwayomi-server/compare/v2.3.2238...HEAD
|
||||||
[v2.3.2226]: https://github.com/suwayomi/suwayomi-server/compare/v2.3.2223...v2.3.2226
|
[v2.3.2238]: https://github.com/suwayomi/suwayomi-server/compare/v2.3.2232...v2.3.2238
|
||||||
|
[v2.3.2232]: https://github.com/suwayomi/suwayomi-server/compare/v2.3.2230...v2.3.2232
|
||||||
|
[v2.3.2230]: https://github.com/suwayomi/suwayomi-server/compare/v2.3.2223...v2.3.2230
|
||||||
[v2.3.2223]: https://github.com/suwayomi/suwayomi-server/compare/v2.2.2100...v2.3.2223
|
[v2.3.2223]: https://github.com/suwayomi/suwayomi-server/compare/v2.2.2100...v2.3.2223
|
||||||
[v2.2.2100]: https://github.com/suwayomi/suwayomi-server/compare/v2.1.1867...v2.2.2100
|
[v2.2.2100]: https://github.com/suwayomi/suwayomi-server/compare/v2.1.1867...v2.2.2100
|
||||||
[v2.1.1867]: https://github.com/suwayomi/suwayomi-server/compare/v2.0.1727...v2.1.1867
|
[v2.1.1867]: https://github.com/suwayomi/suwayomi-server/compare/v2.0.1727...v2.1.1867
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ main() {
|
|||||||
case "$OS" in
|
case "$OS" in
|
||||||
debian-all)
|
debian-all)
|
||||||
RELEASE="$RELEASE_NAME.deb"
|
RELEASE="$RELEASE_NAME.deb"
|
||||||
download_jogamp "linux-*" # it's easier to bundle them ourselves than to handle Debian's path conventions
|
|
||||||
make_deb_package
|
make_deb_package
|
||||||
move_release_to_output_dir
|
move_release_to_output_dir
|
||||||
;;
|
;;
|
||||||
@@ -57,7 +56,6 @@ main() {
|
|||||||
JRE="$ZULU_RELEASE-ca-$JRE_RELEASE-linux_x64.zip"
|
JRE="$ZULU_RELEASE-ca-$JRE_RELEASE-linux_x64.zip"
|
||||||
JRE_DIR="${JRE%.*}"
|
JRE_DIR="${JRE%.*}"
|
||||||
JRE_URL="https://cdn.azul.com/zulu/bin/$JRE"
|
JRE_URL="https://cdn.azul.com/zulu/bin/$JRE"
|
||||||
download_jogamp "linux-amd64"
|
|
||||||
setup_jre
|
setup_jre
|
||||||
|
|
||||||
RELEASE="$RELEASE_NAME.AppImage"
|
RELEASE="$RELEASE_NAME.AppImage"
|
||||||
@@ -77,7 +75,6 @@ main() {
|
|||||||
ELECTRON="electron-$electron_version-linux-x64.zip"
|
ELECTRON="electron-$electron_version-linux-x64.zip"
|
||||||
ELECTRON_URL="https://github.com/electron/electron/releases/download/$electron_version/$ELECTRON"
|
ELECTRON_URL="https://github.com/electron/electron/releases/download/$electron_version/$ELECTRON"
|
||||||
download_electron
|
download_electron
|
||||||
download_jogamp "linux-amd64"
|
|
||||||
setup_jre
|
setup_jre
|
||||||
tree "$RELEASE_NAME"
|
tree "$RELEASE_NAME"
|
||||||
|
|
||||||
@@ -92,7 +89,6 @@ main() {
|
|||||||
ELECTRON="electron-$electron_version-darwin-x64.zip"
|
ELECTRON="electron-$electron_version-darwin-x64.zip"
|
||||||
ELECTRON_URL="https://github.com/electron/electron/releases/download/$electron_version/$ELECTRON"
|
ELECTRON_URL="https://github.com/electron/electron/releases/download/$electron_version/$ELECTRON"
|
||||||
download_electron
|
download_electron
|
||||||
download_jogamp "macosx-universal"
|
|
||||||
setup_jre
|
setup_jre
|
||||||
tree "$RELEASE_NAME"
|
tree "$RELEASE_NAME"
|
||||||
|
|
||||||
@@ -107,7 +103,6 @@ main() {
|
|||||||
ELECTRON="electron-$electron_version-darwin-arm64.zip"
|
ELECTRON="electron-$electron_version-darwin-arm64.zip"
|
||||||
ELECTRON_URL="https://github.com/electron/electron/releases/download/$electron_version/$ELECTRON"
|
ELECTRON_URL="https://github.com/electron/electron/releases/download/$electron_version/$ELECTRON"
|
||||||
download_electron
|
download_electron
|
||||||
download_jogamp "macosx-universal"
|
|
||||||
setup_jre
|
setup_jre
|
||||||
tree "$RELEASE_NAME"
|
tree "$RELEASE_NAME"
|
||||||
|
|
||||||
@@ -122,7 +117,6 @@ main() {
|
|||||||
ELECTRON="electron-$electron_version-win32-x64.zip"
|
ELECTRON="electron-$electron_version-win32-x64.zip"
|
||||||
ELECTRON_URL="https://github.com/electron/electron/releases/download/$electron_version/$ELECTRON"
|
ELECTRON_URL="https://github.com/electron/electron/releases/download/$electron_version/$ELECTRON"
|
||||||
download_electron
|
download_electron
|
||||||
download_jogamp "windows-amd64"
|
|
||||||
setup_jre
|
setup_jre
|
||||||
tree "$RELEASE_NAME"
|
tree "$RELEASE_NAME"
|
||||||
|
|
||||||
@@ -157,18 +151,6 @@ download_launcher() {
|
|||||||
mv "Suwayomi-Launcher.jar" "$RELEASE_NAME/Suwayomi-Launcher.jar" || error $LINENO "Failed to move launcher JAR" 1
|
mv "Suwayomi-Launcher.jar" "$RELEASE_NAME/Suwayomi-Launcher.jar" || error $LINENO "Failed to move launcher JAR" 1
|
||||||
}
|
}
|
||||||
|
|
||||||
download_jogamp() {
|
|
||||||
local platform="$1"
|
|
||||||
if [ ! -f jogamp-all-platforms.7z ]; then
|
|
||||||
curl -f "https://jogamp.org/deployment/jogamp-current/archive/jogamp-all-platforms.7z" -o jogamp-all-platforms.7z || error $LINENO "Failed to download jogamp archive" 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
7z x jogamp-all-platforms.7z "jogamp-all-platforms/lib/$platform/" || error $LINENO "Failed to extract jogamp archive" 1
|
|
||||||
mkdir -p "$RELEASE_NAME/natives/"
|
|
||||||
mv jogamp-all-platforms/lib/* "$RELEASE_NAME/natives/" || error $LINENO "Failed to move natives" 1
|
|
||||||
rm -rf jogamp-all-platforms
|
|
||||||
}
|
|
||||||
|
|
||||||
download_electron() {
|
download_electron() {
|
||||||
if [ ! -f "$ELECTRON" ]; then
|
if [ ! -f "$ELECTRON" ]; then
|
||||||
curl -fL "$ELECTRON_URL" -o "$ELECTRON" || error $LINENO "Failed to download electron" 1
|
curl -fL "$ELECTRON_URL" -o "$ELECTRON" || error $LINENO "Failed to download electron" 1
|
||||||
@@ -179,8 +161,10 @@ download_electron() {
|
|||||||
|
|
||||||
setup_jre() {
|
setup_jre() {
|
||||||
if [ -d "jre" ]; then
|
if [ -d "jre" ]; then
|
||||||
chmod +x ./jre/bin/java || error $LINENO "Failed to set java executable permission" 1
|
if [ ! -f "./jre/bin/java.exe" ]; then
|
||||||
chmod +x ./jre/lib/jspawnhelper || error $LINENO "Failed to set jspawnhelper executable permission" 1
|
chmod +x ./jre/bin/java || error $LINENO "Failed to set java executable permission" 1
|
||||||
|
chmod +x ./jre/lib/jspawnhelper || error $LINENO "Failed to set jspawnhelper executable permission" 1
|
||||||
|
fi
|
||||||
mv "jre" "$RELEASE_NAME/jre" || error $LINENO "Failed to move jre" 1
|
mv "jre" "$RELEASE_NAME/jre" || error $LINENO "Failed to move jre" 1
|
||||||
else
|
else
|
||||||
if [ ! -f "$JRE" ]; then
|
if [ ! -f "$JRE" ]; then
|
||||||
@@ -194,6 +178,11 @@ setup_jre() {
|
|||||||
tar xvf "$JRE" || error $LINENO "Failed to extract JRE tar" 1
|
tar xvf "$JRE" || error $LINENO "Failed to extract JRE tar" 1
|
||||||
fi
|
fi
|
||||||
mv "$JRE_DIR" "$RELEASE_NAME/jre" || error $LINENO "Failed to move extracted JRE" 1
|
mv "$JRE_DIR" "$RELEASE_NAME/jre" || error $LINENO "Failed to move extracted JRE" 1
|
||||||
|
|
||||||
|
if [ ! -f "$RELEASE_NAME/jre/bin/java.exe" ]; then
|
||||||
|
chmod +x "$RELEASE_NAME/jre/bin/java" || error $LINENO "Failed to set java executable permission" 1
|
||||||
|
chmod +x "$RELEASE_NAME/jre/lib/jspawnhelper" || error $LINENO "Failed to set jspawnhelper executable permission" 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,7 +226,6 @@ make_deb_package() {
|
|||||||
local upstream_source="suwayomi-server_$RELEASE_VERSION.orig.tar.gz"
|
local upstream_source="suwayomi-server_$RELEASE_VERSION.orig.tar.gz"
|
||||||
|
|
||||||
mkdir "$RELEASE_NAME/$source_dir/" || error $LINENO "Failed to create source directory" 1
|
mkdir "$RELEASE_NAME/$source_dir/" || error $LINENO "Failed to create source directory" 1
|
||||||
mv "$RELEASE_NAME/natives" "$RELEASE_NAME/$source_dir/natives" || error $LINENO "Failed to move natives" 1
|
|
||||||
mv "$RELEASE_NAME/Suwayomi-Launcher.jar" "$RELEASE_NAME/$source_dir/Suwayomi-Launcher.jar" || error $LINENO "Failed to move launcher jar" 1
|
mv "$RELEASE_NAME/Suwayomi-Launcher.jar" "$RELEASE_NAME/$source_dir/Suwayomi-Launcher.jar" || error $LINENO "Failed to move launcher jar" 1
|
||||||
cp "$JAR" "$RELEASE_NAME/$source_dir/Suwayomi-Server.jar" || error $LINENO "Failed to copy server jar" 1
|
cp "$JAR" "$RELEASE_NAME/$source_dir/Suwayomi-Server.jar" || error $LINENO "Failed to copy server jar" 1
|
||||||
copy_linux_package_assets_to "$RELEASE_NAME/$source_dir/"
|
copy_linux_package_assets_to "$RELEASE_NAME/$source_dir/"
|
||||||
@@ -329,9 +317,6 @@ make_windows_package() {
|
|||||||
find "$RELEASE_NAME/electron" \
|
find "$RELEASE_NAME/electron" \
|
||||||
| wixl-heat --var var.SourceDir -p "$RELEASE_NAME/" \
|
| wixl-heat --var var.SourceDir -p "$RELEASE_NAME/" \
|
||||||
--directory-ref electron --component-group electron >"$RELEASE_NAME/electron.wxs" || error $LINENO "Failed to heat electron" 1
|
--directory-ref electron --component-group electron >"$RELEASE_NAME/electron.wxs" || error $LINENO "Failed to heat electron" 1
|
||||||
find "$RELEASE_NAME/natives" \
|
|
||||||
| wixl-heat --var var.SourceDir -p "$RELEASE_NAME/" \
|
|
||||||
--directory-ref natives --component-group natives >"$RELEASE_NAME/natives.wxs" || error $LINENO "Failed to heat natives" 1
|
|
||||||
|
|
||||||
find "$RELEASE_NAME/bin" \
|
find "$RELEASE_NAME/bin" \
|
||||||
| wixl-heat --var var.SourceDir -p "$RELEASE_NAME/" \
|
| wixl-heat --var var.SourceDir -p "$RELEASE_NAME/" \
|
||||||
@@ -342,7 +327,7 @@ make_windows_package() {
|
|||||||
|
|
||||||
wixl -D ProductVersion="$RELEASE_VERSION" -D SourceDir="$RELEASE_NAME" \
|
wixl -D ProductVersion="$RELEASE_VERSION" -D SourceDir="$RELEASE_NAME" \
|
||||||
-D Icon="$icon" --arch "$arch" "scripts/resources/msi/suwayomi-server-$arch.wxs" \
|
-D Icon="$icon" --arch "$arch" "scripts/resources/msi/suwayomi-server-$arch.wxs" \
|
||||||
"$RELEASE_NAME/jre.wxs" "$RELEASE_NAME/electron.wxs" "$RELEASE_NAME/natives.wxs" "$RELEASE_NAME/bin.wxs" -o "$RELEASE" || error $LINENO "Windows package build failed" 1
|
"$RELEASE_NAME/jre.wxs" "$RELEASE_NAME/electron.wxs" "$RELEASE_NAME/bin.wxs" -o "$RELEASE" || error $LINENO "Windows package build failed" 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Error handler
|
# Error handler
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
Suwayomi-Server.jar usr/share/java/suwayomi-server/bin/
|
Suwayomi-Server.jar usr/share/java/suwayomi-server/bin/
|
||||||
Suwayomi-Launcher.jar usr/share/java/suwayomi-server/
|
Suwayomi-Launcher.jar usr/share/java/suwayomi-server/
|
||||||
natives/* usr/share/java/suwayomi-server/natives/
|
|
||||||
suwayomi-server.png usr/share/pixmaps/
|
suwayomi-server.png usr/share/pixmaps/
|
||||||
suwayomi-server.desktop usr/share/applications/
|
suwayomi-server.desktop usr/share/applications/
|
||||||
suwayomi-launcher.desktop usr/share/applications/
|
suwayomi-launcher.desktop usr/share/applications/
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
<Directory Id="INSTALLDIR" Name="Suwayomi-Server" >
|
<Directory Id="INSTALLDIR" Name="Suwayomi-Server" >
|
||||||
<Directory Id="jre"/>
|
<Directory Id="jre"/>
|
||||||
<Directory Id="electron"/>
|
<Directory Id="electron"/>
|
||||||
<Directory Id="natives"/>
|
|
||||||
<Directory Id="bin"/>
|
<Directory Id="bin"/>
|
||||||
</Directory>
|
</Directory>
|
||||||
</Directory>
|
</Directory>
|
||||||
@@ -63,7 +62,6 @@
|
|||||||
<ComponentRef Id="SuwayomiLauncherBAT" />
|
<ComponentRef Id="SuwayomiLauncherBAT" />
|
||||||
<ComponentRef Id="ProgramMenuDir" />
|
<ComponentRef Id="ProgramMenuDir" />
|
||||||
<ComponentGroupRef Id="electron" />
|
<ComponentGroupRef Id="electron" />
|
||||||
<ComponentGroupRef Id="natives" />
|
|
||||||
</Feature>
|
</Feature>
|
||||||
|
|
||||||
<Icon Id="Suwayomi.ico" SourceFile="$(var.Icon)" />
|
<Icon Id="Suwayomi.ico" SourceFile="$(var.Icon)" />
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
package suwayomi.tachidesk.graphql.mutations
|
package suwayomi.tachidesk.graphql.mutations
|
||||||
|
|
||||||
import com.expediagroup.graphql.generator.annotations.GraphQLDeprecated
|
import com.expediagroup.graphql.generator.annotations.GraphQLDeprecated
|
||||||
|
import com.expediagroup.graphql.server.extensions.toGraphQLError
|
||||||
|
import graphql.execution.DataFetcherResult
|
||||||
import org.jetbrains.exposed.v1.core.LikePattern
|
import org.jetbrains.exposed.v1.core.LikePattern
|
||||||
import org.jetbrains.exposed.v1.core.Op
|
import org.jetbrains.exposed.v1.core.Op
|
||||||
import org.jetbrains.exposed.v1.core.and
|
import org.jetbrains.exposed.v1.core.and
|
||||||
@@ -181,15 +183,21 @@ class MangaMutation {
|
|||||||
)
|
)
|
||||||
|
|
||||||
@RequireAuth
|
@RequireAuth
|
||||||
fun fetchMangaAndChapters(input: FetchMangaAndChaptersInput): CompletableFuture<FetchMangaAndChaptersPayload?> {
|
fun fetchMangaAndChapters(input: FetchMangaAndChaptersInput): CompletableFuture<DataFetcherResult<FetchMangaAndChaptersPayload?>> {
|
||||||
val (clientMutationId, id, fetchManga, fetchChapters) = input
|
val (clientMutationId, id, fetchManga, fetchChapters) = input
|
||||||
|
|
||||||
return future {
|
return future {
|
||||||
Manga.updateMangaAndChapters(
|
val error =
|
||||||
mangaId = id,
|
try {
|
||||||
updateManga = fetchManga,
|
Manga.updateMangaAndChapters(
|
||||||
updateChapters = fetchChapters,
|
mangaId = id,
|
||||||
)
|
updateManga = fetchManga,
|
||||||
|
updateChapters = fetchChapters,
|
||||||
|
)
|
||||||
|
null
|
||||||
|
} catch (e: Exception) {
|
||||||
|
e
|
||||||
|
}
|
||||||
|
|
||||||
val (manga, chapters) =
|
val (manga, chapters) =
|
||||||
transaction {
|
transaction {
|
||||||
@@ -202,11 +210,20 @@ class MangaMutation {
|
|||||||
.map { ChapterType(it) },
|
.map { ChapterType(it) },
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
FetchMangaAndChaptersPayload(
|
@Suppress("UNCHECKED_CAST")
|
||||||
clientMutationId = clientMutationId,
|
DataFetcherResult
|
||||||
manga = MangaType(manga),
|
.newResult<FetchMangaAndChaptersPayload>()
|
||||||
chapters = chapters,
|
.data(
|
||||||
)
|
FetchMangaAndChaptersPayload(
|
||||||
|
clientMutationId = clientMutationId,
|
||||||
|
manga = MangaType(manga),
|
||||||
|
chapters = chapters,
|
||||||
|
),
|
||||||
|
).also {
|
||||||
|
if (error != null) {
|
||||||
|
it.error(error.toGraphQLError())
|
||||||
|
}
|
||||||
|
}.build() as DataFetcherResult<FetchMangaAndChaptersPayload?>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -166,8 +166,17 @@ object Extension {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val sourceClass =
|
||||||
|
packageInfo.applicationInfo.metaData
|
||||||
|
.getString(METADATA_SOURCE_CLASS)!!
|
||||||
|
.trim()
|
||||||
|
|
||||||
val className =
|
val className =
|
||||||
packageInfo.packageName + packageInfo.applicationInfo.metaData.getString(METADATA_SOURCE_CLASS)
|
if (sourceClass.startsWith(".")) {
|
||||||
|
packageInfo.packageName + sourceClass
|
||||||
|
} else {
|
||||||
|
sourceClass
|
||||||
|
}
|
||||||
|
|
||||||
logger.debug { "Main class for extension is $className" }
|
logger.debug { "Main class for extension is $className" }
|
||||||
|
|
||||||
|
|||||||
@@ -132,6 +132,7 @@ object ExtensionsList {
|
|||||||
// Always update icon url and repo
|
// Always update icon url and repo
|
||||||
this[ExtensionTable.iconUrl] = foundExtension.iconUrl
|
this[ExtensionTable.iconUrl] = foundExtension.iconUrl
|
||||||
this[ExtensionTable.storeIndexUrl] = foundExtension.storeIndexUrl
|
this[ExtensionTable.storeIndexUrl] = foundExtension.storeIndexUrl
|
||||||
|
this[ExtensionTable.apkUrl] = foundExtension.apkUrl
|
||||||
|
|
||||||
// add these because batch updates need matching columns
|
// add these because batch updates need matching columns
|
||||||
this[ExtensionTable.hasUpdate] = extensionRecord[ExtensionTable.hasUpdate]
|
this[ExtensionTable.hasUpdate] = extensionRecord[ExtensionTable.hasUpdate]
|
||||||
|
|||||||
@@ -130,9 +130,12 @@ object H2Migration {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
output.outputStream().use { out ->
|
val tmp = output.resolveSibling(output.name + ".tmp")
|
||||||
|
tmp.outputStream().use { out ->
|
||||||
response.body.byteStream().copyTo(out)
|
response.body.byteStream().copyTo(out)
|
||||||
}
|
}
|
||||||
|
tmp.copyTo(output)
|
||||||
|
tmp.deleteExisting()
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info { "Saved: ${output.absolutePathString()}" }
|
logger.info { "Saved: ${output.absolutePathString()}" }
|
||||||
|
|||||||
Reference in New Issue
Block a user