This commit is contained in:
@@ -73,7 +73,7 @@ index ae55a0f..9f4338b 100644
|
||||
+ val request = PageLoader.createPageRequest(pageUrl, page.source)
|
||||
+ .newBuilder()
|
||||
+ .header("Range", "bytes=$offset-$requestedEnd")
|
||||
+ .header("Connection", "keep-alive")
|
||||
+ .header("Connection", "close")
|
||||
+ .build()
|
||||
+
|
||||
+ niaddOkHttpClient.newCall(request).execute().use { response ->
|
||||
@@ -235,7 +235,7 @@ index 8227b2a..742341e 100644
|
||||
+ val request = PageLoader.createPageRequest(url, source)
|
||||
+ .newBuilder()
|
||||
+ .header("Range", "bytes=$offset-$requestedEnd")
|
||||
+ .header("Connection", "keep-alive")
|
||||
+ .header("Connection", "close")
|
||||
+ .build()
|
||||
+
|
||||
+ niaddOkHttp.newCall(request).execute().use { response ->
|
||||
@@ -424,7 +424,7 @@ index 18d203d..02b1653 100644
|
||||
+ val request = createPageRequest(pageUrl, source)
|
||||
+ .newBuilder()
|
||||
+ .header("Range", "bytes=$offset-$requestedEnd")
|
||||
+ .header("Connection", "keep-alive")
|
||||
+ .header("Connection", "close")
|
||||
+ .build()
|
||||
+
|
||||
+ niaddOkHttp.newCall(request).execute().use { response ->
|
||||
@@ -515,3 +515,44 @@ index 18d203d..02b1653 100644
|
||||
private const val PREFETCH_LIMIT_DEFAULT = 6
|
||||
private const val PREFETCH_MIN_RAM_MB = 80L
|
||||
|
||||
--- 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
|
||||
@@ -14,6 +14,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
|
||||
@@ -29,6 +30,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 {
|
||||
dataRepository.getReaderMode(manga.id)?.let { return it }
|
||||
@@ -57,8 +59,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 ->
|
||||
@@ -75,7 +80,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