fix: Fix crash when reading local 7zip manga (#1)

This commit is contained in:
Claudemirovsky
2024-01-02 21:24:51 -03:00
committed by GitHub
parent ed18014430
commit 9e8b14d141
4 changed files with 25 additions and 15 deletions

View File

@@ -32,6 +32,7 @@ dependencies {
implementation(libs.image.decoder)
implementation(libs.unifile)
implementation(libs.bundles.sevenzip)
api(kotlinx.coroutines.core)
api(kotlinx.serialization.json)

View File

@@ -0,0 +1,16 @@
package eu.kanade.tachiyomi.util.storage
import eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder
import org.apache.commons.compress.archivers.sevenz.SevenZFile
import tachiyomi.core.util.system.ImageUtil
import java.io.InputStream
object SevenZUtil {
fun SevenZFile.getImages(): Sequence<InputStream> {
return generateSequence { runCatching { getNextEntry() }.getOrNull() }
.filter { !it.isDirectory && ImageUtil.isImage(it.name) { getInputStream(it) } }
.sortedWith { f1, f2 -> f1.name.compareToCaseInsensitiveNaturalOrder(f2.name) }
.map(::getInputStream)
.map { it.use(InputStream::readBytes).inputStream() } // ByteArrayInputStream
}
}