From e930c54246894f853620d06b62759a54d1243161 Mon Sep 17 00:00:00 2001 From: Aria Moradi Date: Mon, 5 Jun 2023 14:31:14 +0330 Subject: [PATCH] improve zip parsing (#569) --- gradle/libs.versions.toml | 1 + server/build.gradle.kts | 1 + .../eu/kanade/tachiyomi/source/local/loader/ZipPageLoader.kt | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index efb26623..d5cd9282 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -93,6 +93,7 @@ xmlpull = "xmlpull:xmlpull:1.1.3.4a" # Disk & File appdirs = "net.harawata:appdirs:1.2.1" zip4j = "net.lingala.zip4j:zip4j:2.11.2" +commonscompress = "org.apache.commons:commons-compress:1.23.0" junrar = "com.github.junrar:junrar:7.5.3" # CloudflareInterceptor diff --git a/server/build.gradle.kts b/server/build.gradle.kts index 65591dc3..c3a092ce 100644 --- a/server/build.gradle.kts +++ b/server/build.gradle.kts @@ -48,6 +48,7 @@ dependencies { // Disk & File implementation(libs.zip4j) + implementation(libs.commonscompress) implementation(libs.junrar) // CloudflareInterceptor diff --git a/server/src/main/kotlin/eu/kanade/tachiyomi/source/local/loader/ZipPageLoader.kt b/server/src/main/kotlin/eu/kanade/tachiyomi/source/local/loader/ZipPageLoader.kt index 9742ac03..71c5f2f7 100644 --- a/server/src/main/kotlin/eu/kanade/tachiyomi/source/local/loader/ZipPageLoader.kt +++ b/server/src/main/kotlin/eu/kanade/tachiyomi/source/local/loader/ZipPageLoader.kt @@ -3,7 +3,7 @@ package eu.kanade.tachiyomi.source.local.loader import eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder import suwayomi.tachidesk.manga.impl.util.storage.ImageUtil import java.io.File -import java.util.zip.ZipFile +import org.apache.commons.compress.archivers.zip.ZipFile class ZipPageLoader(file: File) : PageLoader { /** @@ -16,7 +16,7 @@ class ZipPageLoader(file: File) : PageLoader { * comparator. */ override fun getPages(): List { - return zip.entries().toList() + return zip.entries.toList() .filter { !it.isDirectory && ImageUtil.isImage(it.name) { zip.getInputStream(it) } } .sortedWith { f1, f2 -> f1.name.compareToCaseInsensitiveNaturalOrder(f2.name) } .mapIndexed { i, entry ->