mirror of
https://github.com/mihonapp/mihon.git
synced 2025-02-12 10:08:55 +01:00
throw an error when trying to use PPMd
This commit is contained in:
parent
db3c53da3d
commit
9bfb34982e
@ -7,6 +7,7 @@ import eu.kanade.tachiyomi.data.download.DownloadProvider
|
|||||||
import eu.kanade.tachiyomi.source.Source
|
import eu.kanade.tachiyomi.source.Source
|
||||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||||
import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter
|
import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter
|
||||||
|
import org.apache.commons.compress.archivers.dump.UnsupportedCompressionAlgorithmException
|
||||||
import tachiyomi.core.i18n.stringResource
|
import tachiyomi.core.i18n.stringResource
|
||||||
import tachiyomi.core.storage.UniFileTempFileManager
|
import tachiyomi.core.storage.UniFileTempFileManager
|
||||||
import tachiyomi.core.util.lang.withIOContext
|
import tachiyomi.core.util.lang.withIOContext
|
||||||
@ -98,7 +99,11 @@ class ChapterLoader(
|
|||||||
when (format) {
|
when (format) {
|
||||||
is Format.Directory -> DirectoryPageLoader(format.file)
|
is Format.Directory -> DirectoryPageLoader(format.file)
|
||||||
is Format.Zip -> ZipPageLoader(tempFileManager.createTempFile(format.file))
|
is Format.Zip -> ZipPageLoader(tempFileManager.createTempFile(format.file))
|
||||||
is Format.SevenZip -> SevenZipPageLoader(tempFileManager.createTempFile(format.file))
|
is Format.SevenZip -> try {
|
||||||
|
SevenZipPageLoader(tempFileManager.createTempFile(format.file))
|
||||||
|
} catch (e: UnsupportedCompressionAlgorithmException) {
|
||||||
|
error(context.stringResource(MR.strings.loader_ppmd_error))
|
||||||
|
}
|
||||||
is Format.Rar -> try {
|
is Format.Rar -> try {
|
||||||
RarPageLoader(tempFileManager.createTempFile(format.file))
|
RarPageLoader(tempFileManager.createTempFile(format.file))
|
||||||
} catch (e: UnsupportedRarV5Exception) {
|
} catch (e: UnsupportedRarV5Exception) {
|
||||||
|
@ -1,14 +1,21 @@
|
|||||||
package eu.kanade.tachiyomi.util.storage
|
package eu.kanade.tachiyomi.util.storage
|
||||||
|
|
||||||
import eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder
|
import eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder
|
||||||
|
import org.apache.commons.compress.archivers.dump.UnsupportedCompressionAlgorithmException
|
||||||
import org.apache.commons.compress.archivers.sevenz.SevenZFile
|
import org.apache.commons.compress.archivers.sevenz.SevenZFile
|
||||||
import tachiyomi.core.util.system.ImageUtil
|
import tachiyomi.core.util.system.ImageUtil
|
||||||
|
import java.io.IOException
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
|
|
||||||
object SevenZUtil {
|
object SevenZUtil {
|
||||||
fun SevenZFile.getImages(): Sequence<ByteArray> {
|
fun SevenZFile.getImages(): Sequence<ByteArray> {
|
||||||
return generateSequence { runCatching { getNextEntry() }.getOrNull() }
|
return generateSequence {
|
||||||
.filter { !it.isDirectory && ImageUtil.isImage(it.name) { getInputStream(it) } }
|
try {
|
||||||
|
getNextEntry()
|
||||||
|
} catch (e: IOException) {
|
||||||
|
throw UnsupportedCompressionAlgorithmException()
|
||||||
|
}
|
||||||
|
}.filter { !it.isDirectory && ImageUtil.isImage(it.name) { getInputStream(it) } }
|
||||||
.sortedWith { f1, f2 -> f1.name.compareToCaseInsensitiveNaturalOrder(f2.name) }
|
.sortedWith { f1, f2 -> f1.name.compareToCaseInsensitiveNaturalOrder(f2.name) }
|
||||||
.map(::getInputStream)
|
.map(::getInputStream)
|
||||||
.map { it.use(InputStream::readBytes) } // ByteArray
|
.map { it.use(InputStream::readBytes) } // ByteArray
|
||||||
|
@ -776,6 +776,7 @@
|
|||||||
<string name="page_list_empty_error">No pages found</string>
|
<string name="page_list_empty_error">No pages found</string>
|
||||||
<string name="loader_not_implemented_error">Source not found</string>
|
<string name="loader_not_implemented_error">Source not found</string>
|
||||||
<string name="loader_rar5_error">RARv5 format is not supported</string>
|
<string name="loader_rar5_error">RARv5 format is not supported</string>
|
||||||
|
<string name="loader_ppmd_error">PPMd compression is not supported</string>
|
||||||
|
|
||||||
<!-- Updates -->
|
<!-- Updates -->
|
||||||
<string name="updating_library">Updating library</string>
|
<string name="updating_library">Updating library</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user