mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
refactor: Move archive related code to core.archive module
This commit is contained in:
parent
54a3059730
commit
b4377a4609
19 changed files with 61 additions and 55 deletions
|
@ -144,6 +144,7 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation(projects.core.archive)
|
||||
implementation(projects.core.main)
|
||||
implementation(projects.data)
|
||||
implementation(projects.domain)
|
||||
|
|
|
@ -12,8 +12,6 @@ import eu.kanade.tachiyomi.source.model.SChapter
|
|||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import eu.kanade.tachiyomi.util.lang.compareToCaseInsensitiveNaturalOrder
|
||||
import eu.kanade.tachiyomi.util.storage.DiskUtil
|
||||
import eu.kanade.tachiyomi.util.storage.EpubFile
|
||||
import eu.kanade.tachiyomi.util.storage.fillMetadata
|
||||
import eu.kanade.tachiyomi.util.system.ImageUtil
|
||||
import eu.kanade.tachiyomi.util.system.extension
|
||||
import eu.kanade.tachiyomi.util.system.nameWithoutExtension
|
||||
|
@ -33,7 +31,8 @@ import nl.adaptivity.xmlutil.serialization.XML
|
|||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import yokai.core.archive.archiveReader
|
||||
import yokai.core.archive.util.archiveReader
|
||||
import yokai.core.archive.util.epubReader
|
||||
import yokai.core.metadata.COMIC_INFO_FILE
|
||||
import yokai.core.metadata.ComicInfo
|
||||
import yokai.core.metadata.copyFromComicInfo
|
||||
|
@ -42,6 +41,7 @@ import yokai.domain.chapter.services.ChapterRecognition
|
|||
import yokai.domain.source.SourcePreferences
|
||||
import yokai.domain.storage.StorageManager
|
||||
import yokai.i18n.MR
|
||||
import yokai.util.fillMetadata
|
||||
import yokai.util.lang.getString
|
||||
|
||||
class LocalSource(private val context: Context) : CatalogueSource, UnmeteredSource {
|
||||
|
@ -410,7 +410,7 @@ class LocalSource(private val context: Context) : CatalogueSource, UnmeteredSour
|
|||
}
|
||||
}
|
||||
is Format.Epub -> {
|
||||
EpubFile(format.file.archiveReader(context)).use { epub ->
|
||||
format.file.epubReader(context).use { epub ->
|
||||
val entry = epub.getImagesFromPages().firstOrNull()
|
||||
|
||||
entry?.let { updateCover(manga, epub.getInputStream(it)!!, context) }
|
||||
|
@ -433,7 +433,7 @@ class LocalSource(private val context: Context) : CatalogueSource, UnmeteredSour
|
|||
true
|
||||
}
|
||||
is Format.Epub -> {
|
||||
EpubFile(format.file.archiveReader(context)).use { epub ->
|
||||
format.file.epubReader(context).use { epub ->
|
||||
epub.fillMetadata(chapter, manga)
|
||||
}
|
||||
true
|
||||
|
|
|
@ -10,7 +10,8 @@ import eu.kanade.tachiyomi.source.Source
|
|||
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||
import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter
|
||||
import eu.kanade.tachiyomi.util.system.withIOContext
|
||||
import yokai.core.archive.archiveReader
|
||||
import yokai.core.archive.util.archiveReader
|
||||
import yokai.core.archive.util.epubReader
|
||||
import yokai.i18n.MR
|
||||
import yokai.util.lang.getString
|
||||
|
||||
|
@ -82,7 +83,7 @@ class ChapterLoader(
|
|||
when (format) {
|
||||
is LocalSource.Format.Directory -> DirectoryPageLoader(format.file)
|
||||
is LocalSource.Format.Archive -> ArchivePageLoader(format.file.archiveReader(context))
|
||||
is LocalSource.Format.Epub -> EpubPageLoader(format.file.archiveReader(context))
|
||||
is LocalSource.Format.Epub -> EpubPageLoader(format.file.epubReader(context))
|
||||
}
|
||||
}
|
||||
else -> error(context.getString(MR.strings.source_not_installed))
|
||||
|
|
|
@ -11,7 +11,7 @@ import eu.kanade.tachiyomi.source.model.Page
|
|||
import eu.kanade.tachiyomi.ui.reader.model.ReaderChapter
|
||||
import eu.kanade.tachiyomi.ui.reader.model.ReaderPage
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
import yokai.core.archive.archiveReader
|
||||
import yokai.core.archive.util.archiveReader
|
||||
|
||||
/**
|
||||
* Loader used to load a chapter from the downloaded chapters.
|
||||
|
|
|
@ -2,21 +2,15 @@ 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 yokai.core.archive.ArchiveReader
|
||||
import yokai.core.archive.EpubReader
|
||||
|
||||
/**
|
||||
* Loader used to load a chapter from a .epub file.
|
||||
*/
|
||||
class EpubPageLoader(reader: ArchiveReader) : PageLoader() {
|
||||
class EpubPageLoader(private val epub: EpubReader) : PageLoader() {
|
||||
|
||||
override val isLocal: Boolean = true
|
||||
|
||||
/**
|
||||
* The epub file.
|
||||
*/
|
||||
private val epub = EpubFile(reader)
|
||||
|
||||
/**
|
||||
* Recycles this loader and the open zip.
|
||||
*/
|
||||
|
|
|
@ -1,15 +1,16 @@
|
|||
package eu.kanade.tachiyomi.util.storage
|
||||
package yokai.util
|
||||
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import java.text.ParseException
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import java.util.Locale
|
||||
import yokai.core.archive.EpubReader
|
||||
|
||||
/**
|
||||
* Fills manga and chapter metadata using this epub file's metadata.
|
||||
*/
|
||||
fun EpubFile.fillMetadata(chapter: SChapter, manga: SManga) {
|
||||
fun EpubReader.fillMetadata(chapter: SChapter, manga: SManga) {
|
||||
val ref = getPackageHref()
|
||||
val doc = getPackageDocument(ref)
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue