From 4d89c324b98a3d9ad4c2cf05d81623a24534aecb Mon Sep 17 00:00:00 2001 From: Mitchell Syer Date: Sun, 27 Aug 2023 22:39:05 -0400 Subject: [PATCH] Fix Oracle JRE Extension Install (#670) * Minor cleanup * Fix Oracle JRE Write issue --- .../fileProvider/ChaptersFilesProvider.kt | 16 ++-------------- .../impl/download/fileProvider/FileDownloader.kt | 12 ++++-------- .../impl/download/fileProvider/FileRetriever.kt | 12 ++++-------- .../fileProvider/impl/ThumbnailFileProvider.kt | 14 +++----------- .../tachidesk/manga/impl/util/BytecodeEditor.kt | 8 +++++++- 5 files changed, 20 insertions(+), 42 deletions(-) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/ChaptersFilesProvider.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/ChaptersFilesProvider.kt index 02a70af99..f7646767e 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/ChaptersFilesProvider.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/ChaptersFilesProvider.kt @@ -11,11 +11,7 @@ abstract class ChaptersFilesProvider(val mangaId: Int, val chapterId: Int) : Dow abstract fun getImageImpl(index: Int): Pair override fun getImage(): RetrieveFile1Args { - return object : RetrieveFile1Args { - override fun execute(a: Int): Pair { - return getImageImpl(a) - } - } + return RetrieveFile1Args(::getImageImpl) } abstract suspend fun downloadImpl( @@ -25,15 +21,7 @@ abstract class ChaptersFilesProvider(val mangaId: Int, val chapterId: Int) : Dow ): Boolean override fun download(): FileDownload3Args Unit> { - return object : FileDownload3Args Unit> { - override suspend fun execute( - a: DownloadChapter, - b: CoroutineScope, - c: suspend (DownloadChapter?, Boolean) -> Unit - ): Boolean { - return downloadImpl(a, b, c) - } - } + return FileDownload3Args(::downloadImpl) } abstract override fun delete(): Boolean diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/FileDownloader.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/FileDownloader.kt index 5c46cfaae..bc9f86840 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/FileDownloader.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/FileDownloader.kt @@ -1,12 +1,10 @@ package suwayomi.tachidesk.manga.impl.download.fileProvider -@FunctionalInterface -interface FileDownload { +fun interface FileDownload { suspend fun executeDownload(vararg args: Any): Boolean } -@FunctionalInterface -interface FileDownload0Args : FileDownload { +fun interface FileDownload0Args : FileDownload { suspend fun execute(): Boolean override suspend fun executeDownload(vararg args: Any): Boolean { @@ -14,8 +12,7 @@ interface FileDownload0Args : FileDownload { } } -@FunctionalInterface -interface FileDownload3Args : FileDownload { +fun interface FileDownload3Args : FileDownload { suspend fun execute(a: A, b: B, c: C): Boolean override suspend fun executeDownload(vararg args: Any): Boolean { @@ -23,7 +20,6 @@ interface FileDownload3Args : FileDownload { } } -@FunctionalInterface -interface FileDownloader { +fun interface FileDownloader { fun download(): FileDownload } diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/FileRetriever.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/FileRetriever.kt index bf585f341..4549e4bfc 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/FileRetriever.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/FileRetriever.kt @@ -2,13 +2,11 @@ package suwayomi.tachidesk.manga.impl.download.fileProvider import java.io.InputStream -@FunctionalInterface -interface RetrieveFile { +fun interface RetrieveFile { fun executeGetImage(vararg args: Any): Pair } -@FunctionalInterface -interface RetrieveFile0Args : RetrieveFile { +fun interface RetrieveFile0Args : RetrieveFile { fun execute(): Pair override fun executeGetImage(vararg args: Any): Pair { @@ -16,8 +14,7 @@ interface RetrieveFile0Args : RetrieveFile { } } -@FunctionalInterface -interface RetrieveFile1Args : RetrieveFile { +fun interface RetrieveFile1Args : RetrieveFile { fun execute(a: A): Pair override fun executeGetImage(vararg args: Any): Pair { @@ -25,7 +22,6 @@ interface RetrieveFile1Args : RetrieveFile { } } -@FunctionalInterface -interface FileRetriever { +fun interface FileRetriever { fun getImage(): RetrieveFile } diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/impl/ThumbnailFileProvider.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/impl/ThumbnailFileProvider.kt index a2c2126d5..a3d543064 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/impl/ThumbnailFileProvider.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/fileProvider/impl/ThumbnailFileProvider.kt @@ -37,14 +37,10 @@ class ThumbnailFileProvider(val mangaId: Int) : DownloadedFilesProvider { } override fun getImage(): RetrieveFile0Args { - return object : RetrieveFile0Args { - override fun execute(): Pair { - return getImageImpl() - } - } + return RetrieveFile0Args(::getImageImpl) } - suspend fun downloadImpl(): Boolean { + private suspend fun downloadImpl(): Boolean { val isExistingFile = getFilePath() != null if (isExistingFile) { return true @@ -60,11 +56,7 @@ class ThumbnailFileProvider(val mangaId: Int) : DownloadedFilesProvider { } override fun download(): FileDownload0Args { - return object : FileDownload0Args { - override suspend fun execute(): Boolean { - return downloadImpl() - } - } + return FileDownload0Args(::downloadImpl) } override fun delete(): Boolean { diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/BytecodeEditor.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/BytecodeEditor.kt index 0deeaa2cf..c8f38857c 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/BytecodeEditor.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/BytecodeEditor.kt @@ -18,6 +18,7 @@ import org.objectweb.asm.Opcodes import java.nio.file.FileSystems import java.nio.file.Files import java.nio.file.Path +import java.nio.file.StandardOpenOption import kotlin.streams.asSequence object BytecodeEditor { @@ -257,6 +258,11 @@ object BytecodeEditor { } private fun write(pair: Pair) { - Files.write(pair.first, pair.second) + Files.write( + pair.first, + pair.second, + StandardOpenOption.CREATE, + StandardOpenOption.TRUNCATE_EXISTING + ) } }