From f6fec2424c6d3548bc178c790aad6259309579f5 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Mon, 7 Aug 2023 05:21:31 +0200 Subject: [PATCH] Fix/extracting assets from apks (#644) * Get rid of multiple static "assets/" usage * Correctly add new zip entry The name of the entry has to be a "/" separated path, otherwise, the files can't be found. --- .../suwayomi/tachidesk/manga/impl/extension/Extension.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/extension/Extension.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/extension/Extension.kt index 4093ec2e..eb6f5964 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/extension/Extension.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/extension/Extension.kt @@ -213,7 +213,7 @@ object Extension { var zipEntry = zipInputStream.nextEntry while (zipEntry != null) { if (zipEntry.name.startsWith("assets/")) { - val assetFile = File(assetsFolder, zipEntry.name.substringAfter("assets/")) + val assetFile = File(assetsFolder, zipEntry.name) assetFile.parentFile.mkdirs() FileOutputStream(assetFile).use { outputStream -> zipInputStream.copyTo(outputStream) @@ -236,7 +236,7 @@ object Extension { } assetsFolder.walkTopDown().forEach { file -> if (file.isFile) { - jarZipOutputStream.putNextEntry(ZipEntry("assets/${file.relativeTo(assetsFolder)}")) + jarZipOutputStream.putNextEntry(ZipEntry(file.relativeTo(assetsFolder).toString().replace("\\", "/"))) file.inputStream().use { inputStream -> inputStream.copyTo(jarZipOutputStream) }