This commit is contained in:
@@ -515,44 +515,18 @@ index 18d203d..02b1653 100644
|
||||
private const val PREFETCH_LIMIT_DEFAULT = 6
|
||||
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
|
||||
+++ b/app/src/main/kotlin/io/github/landwarderer/futon/reader/domain/DetectReaderModeUseCase.kt
|
||||
@@ -15,6 +15,7 @@
|
||||
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,
|
||||
) {
|
||||
@@ -32,7 +32,10 @@ class DetectReaderModeUseCase @Inject constructor(
|
||||
suspend operator fun invoke(manga: Manga, state: ReaderState?): ReaderMode {
|
||||
dataRepository.getReaderMode(manga.id)?.let { return it }
|
||||
@@ -60,8 +62,11 @@
|
||||
private suspend fun guessMangaIsWebtoon(repository: MangaRepository, pages: List<MangaPage>): Boolean {
|
||||
val pageIndex = (pages.size * 0.3).roundToInt()
|
||||
val page = requireNotNull(pages.getOrNull(pageIndex)) { "No pages" }
|
||||
- val url = repository.getPageUrl(page)
|
||||
- val uri = url.toUri()
|
||||
+ val uri = if (page.source == MangaParserSource.NINEMANGA_RU) {
|
||||
+ pageLoader.loadPage(page, force = false)
|
||||
+ } else {
|
||||
+ 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())
|
||||
val defaultMode = settings.defaultReaderMode
|
||||
- if (!settings.isReaderModeDetectionEnabled || defaultMode == ReaderMode.WEBTOON) {
|
||||
+ if (
|
||||
+ manga.source == org.koitharu.kotatsu.parsers.model.MangaParserSource.NINEMANGA_RU ||
|
||||
+ !settings.isReaderModeDetectionEnabled || defaultMode == ReaderMode.WEBTOON
|
||||
+ ) {
|
||||
return defaultMode
|
||||
}
|
||||
val chapter = state?.let { manga.findChapterById(it.chapterId) }
|
||||
|
||||
Reference in New Issue
Block a user