improve zip parsing (#569)

This commit is contained in:
Aria Moradi
2023-06-05 14:31:14 +03:30
committed by GitHub
parent dfff047cbf
commit e930c54246
3 changed files with 4 additions and 2 deletions
+1
View File
@@ -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
+1
View File
@@ -48,6 +48,7 @@ dependencies {
// Disk & File
implementation(libs.zip4j)
implementation(libs.commonscompress)
implementation(libs.junrar)
// CloudflareInterceptor
@@ -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<ReaderPage> {
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 ->