Compare commits

...

3 Commits

Author SHA1 Message Date
FooIbar
3d80bf9358 Cleanup 2024-06-26 11:58:56 +00:00
FooIbar
518a936b8c Format 2024-06-26 11:46:48 +00:00
FooIbar
c062061a92 Move to mihon package 2024-06-26 11:36:35 +00:00
11 changed files with 28 additions and 31 deletions

View File

@@ -38,9 +38,9 @@ import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.coroutines.supervisorScope
import logcat.LogPriority
import mihon.core.common.archive.ZipWriter
import nl.adaptivity.xmlutil.serialization.XML
import okhttp3.Response
import tachiyomi.core.common.archive.ZipWriter
import tachiyomi.core.common.i18n.stringResource
import tachiyomi.core.common.storage.extension
import tachiyomi.core.common.util.lang.launchIO
@@ -592,8 +592,8 @@ class Downloader(
) {
val zip = mangaDir.createFile("$dirname.cbz$TMP_DIR_SUFFIX")!!
ZipWriter(context, zip).use { writer ->
tmpDir.listFiles()?.forEach { img ->
writer.write(img)
tmpDir.listFiles()?.forEach { file ->
writer.write(file)
}
}
zip.renameTo("$dirname.cbz")

View File

@@ -3,7 +3,7 @@ package eu.kanade.tachiyomi.ui.reader.loader
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.ui.reader.model.ReaderPage
import eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder
import tachiyomi.core.common.archive.ArchiveReader
import mihon.core.common.archive.ArchiveReader
import tachiyomi.core.common.util.system.ImageUtil
/**
@@ -12,18 +12,18 @@ import tachiyomi.core.common.util.system.ImageUtil
internal class ArchivePageLoader(private val reader: ArchiveReader) : PageLoader() {
override var isLocal: Boolean = true
override suspend fun getPages(): List<ReaderPage> =
reader.useEntries { entries ->
entries
.filter { it.isFile && ImageUtil.isImage(it.name) { reader.getInputStream(it.name)!! } }
.sortedWith { f1, f2 -> f1.name.compareToCaseInsensitiveNaturalOrder(f2.name) }
.mapIndexed { i, entry ->
ReaderPage(i).apply {
stream = { reader.getInputStream(entry.name)!! }
status = Page.State.READY
}
}.toList()
}
override suspend fun getPages(): List<ReaderPage> = reader.useEntries { entries ->
entries
.filter { it.isFile && ImageUtil.isImage(it.name) { reader.getInputStream(it.name)!! } }
.sortedWith { f1, f2 -> f1.name.compareToCaseInsensitiveNaturalOrder(f2.name) }
.mapIndexed { i, entry ->
ReaderPage(i).apply {
stream = { reader.getInputStream(entry.name)!! }
status = Page.State.READY
}
}
.toList()
}
override suspend fun loadPage(page: ReaderPage) {
check(!isRecycled)

View File

@@ -6,7 +6,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 tachiyomi.core.common.archive.archiveReader
import mihon.core.common.archive.archiveReader
import tachiyomi.core.common.i18n.stringResource
import tachiyomi.core.common.util.lang.withIOContext
import tachiyomi.core.common.util.system.logcat

View File

@@ -10,7 +10,7 @@ import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter
import eu.kanade.tachiyomi.ui.reader.model.ReaderPage
import tachiyomi.core.common.archive.archiveReader
import mihon.core.common.archive.archiveReader
import tachiyomi.domain.manga.model.Manga
import uy.kohesive.injekt.injectLazy

View File

@@ -3,7 +3,7 @@ package eu.kanade.tachiyomi.ui.reader.loader
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.ui.reader.model.ReaderPage
import eu.kanade.tachiyomi.util.storage.EpubFile
import tachiyomi.core.common.archive.ArchiveReader
import mihon.core.common.archive.ArchiveReader
/**
* Loader used to load a chapter from a .epub file.

View File

@@ -1,8 +1,8 @@
package eu.kanade.tachiyomi.util.storage
import mihon.core.common.archive.ArchiveReader
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import tachiyomi.core.common.archive.ArchiveReader
import java.io.Closeable
import java.io.File
import java.io.InputStream

View File

@@ -1,4 +1,4 @@
package tachiyomi.core.common.archive
package mihon.core.common.archive
class ArchiveEntry(
val name: String,

View File

@@ -1,4 +1,4 @@
package tachiyomi.core.common.archive
package mihon.core.common.archive
import me.zhanghai.android.libarchive.Archive
import me.zhanghai.android.libarchive.ArchiveEntry

View File

@@ -1,4 +1,4 @@
package tachiyomi.core.common.archive
package mihon.core.common.archive
import android.content.Context
import android.os.ParcelFileDescriptor

View File

@@ -1,4 +1,4 @@
package tachiyomi.core.common.archive
package mihon.core.common.archive
import android.content.Context
import android.system.Os

View File

@@ -17,9 +17,9 @@ import kotlinx.coroutines.awaitAll
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromStream
import logcat.LogPriority
import mihon.core.common.archive.archiveReader
import nl.adaptivity.xmlutil.AndroidXmlReader
import nl.adaptivity.xmlutil.serialization.XML
import tachiyomi.core.common.archive.archiveReader
import tachiyomi.core.common.i18n.stringResource
import tachiyomi.core.common.storage.extension
import tachiyomi.core.common.storage.nameWithoutExtension
@@ -206,10 +206,8 @@ actual class LocalSource(
private fun copyComicInfoFileFromArchive(chapterArchives: List<UniFile>, folder: UniFile): UniFile? {
for (chapter in chapterArchives) {
chapter.archiveReader(context).use { reader ->
reader.getInputStream(COMIC_INFO_FILE)?.let { entry ->
entry.use { stream ->
return copyComicInfoFile(stream, folder)
}
reader.getInputStream(COMIC_INFO_FILE)?.use { stream ->
return copyComicInfoFile(stream, folder)
}
}
}
@@ -323,8 +321,7 @@ actual class LocalSource(
}
is Format.Epub -> {
EpubFile(format.file.archiveReader(context)).use { epub ->
val entry = epub.getImagesFromPages()
.firstOrNull()
val entry = epub.getImagesFromPages().firstOrNull()
entry?.let { coverManager.update(manga, epub.getInputStream(it)!!) }
}