This commit is contained in:
1 file changed
+11
-37
@@ -515,44 +515,18 @@ index 18d203d..02b1653 100644
|
|||||||
private const val PREFETCH_LIMIT_DEFAULT = 6
|
private const val PREFETCH_LIMIT_DEFAULT = 6
|
||||||
private const val PREFETCH_MIN_RAM_MB = 80L
|
private const val PREFETCH_MIN_RAM_MB = 80L
|
||||||
|
|
||||||
|
diff --git a/app/src/main/kotlin/io/github/landwarderer/futon/reader/domain/DetectReaderModeUseCase.kt b/app/src/main/kotlin/io/github/landwarderer/futon/reader/domain/DetectReaderModeUseCase.kt
|
||||||
--- a/app/src/main/kotlin/io/github/landwarderer/futon/reader/domain/DetectReaderModeUseCase.kt
|
--- a/app/src/main/kotlin/io/github/landwarderer/futon/reader/domain/DetectReaderModeUseCase.kt
|
||||||
+++ b/app/src/main/kotlin/io/github/landwarderer/futon/reader/domain/DetectReaderModeUseCase.kt
|
+++ b/app/src/main/kotlin/io/github/landwarderer/futon/reader/domain/DetectReaderModeUseCase.kt
|
||||||
@@ -15,6 +15,7 @@
|
@@ -32,7 +32,10 @@ class DetectReaderModeUseCase @Inject constructor(
|
||||||
import io.github.landwarderer.futon.core.util.ext.printStackTraceDebug
|
|
||||||
import org.koitharu.kotatsu.parsers.model.Manga
|
|
||||||
import org.koitharu.kotatsu.parsers.model.MangaPage
|
|
||||||
+import org.koitharu.kotatsu.parsers.model.MangaParserSource
|
|
||||||
import org.koitharu.kotatsu.parsers.util.runCatchingCancellable
|
|
||||||
import io.github.landwarderer.futon.reader.ui.ReaderState
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
|
||||||
@@ -31,6 +32,7 @@
|
|
||||||
private val mangaRepositoryFactory: MangaRepository.Factory,
|
|
||||||
@MangaHttpClient private val okHttpClient: OkHttpClient,
|
|
||||||
private val imageProxyInterceptor: ImageProxyInterceptor,
|
|
||||||
+ private val pageLoader: PageLoader,
|
|
||||||
) {
|
|
||||||
suspend operator fun invoke(manga: Manga, state: ReaderState?): ReaderMode {
|
suspend operator fun invoke(manga: Manga, state: ReaderState?): ReaderMode {
|
||||||
dataRepository.getReaderMode(manga.id)?.let { return it }
|
dataRepository.getReaderMode(manga.id)?.let { return it }
|
||||||
@@ -60,8 +62,11 @@
|
val defaultMode = settings.defaultReaderMode
|
||||||
private suspend fun guessMangaIsWebtoon(repository: MangaRepository, pages: List<MangaPage>): Boolean {
|
- if (!settings.isReaderModeDetectionEnabled || defaultMode == ReaderMode.WEBTOON) {
|
||||||
val pageIndex = (pages.size * 0.3).roundToInt()
|
+ if (
|
||||||
val page = requireNotNull(pages.getOrNull(pageIndex)) { "No pages" }
|
+ manga.source == org.koitharu.kotatsu.parsers.model.MangaParserSource.NINEMANGA_RU ||
|
||||||
- val url = repository.getPageUrl(page)
|
+ !settings.isReaderModeDetectionEnabled || defaultMode == ReaderMode.WEBTOON
|
||||||
- val uri = url.toUri()
|
+ ) {
|
||||||
+ val uri = if (page.source == MangaParserSource.NINEMANGA_RU) {
|
return defaultMode
|
||||||
+ pageLoader.loadPage(page, force = false)
|
}
|
||||||
+ } else {
|
val chapter = state?.let { manga.findChapterById(it.chapterId) }
|
||||||
+ repository.getPageUrl(page).toUri()
|
|
||||||
+ }
|
|
||||||
val size = when {
|
|
||||||
uri.isZipUri() -> runInterruptible(Dispatchers.IO) {
|
|
||||||
ZipFile(uri.schemeSpecificPart).use { zip ->
|
|
||||||
@@ -78,7 +83,7 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else -> {
|
|
||||||
- val request = PageLoader.createPageRequest(url, page.source)
|
|
||||||
+ val request = PageLoader.createPageRequest(uri.toString(), page.source)
|
|
||||||
imageProxyInterceptor.interceptPageRequest(request, okHttpClient).use {
|
|
||||||
runInterruptible(Dispatchers.IO) {
|
|
||||||
getBitmapSize(it.body?.byteStream())
|
|
||||||
Reference in new issue
Block a user