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