v5.3
Build Futon with Niadd patch / Build Futon Niadd debug APK (push) Failing after 21s

This commit is contained in:
2026-08-11 23:42:34 +03:00
parent cdb84a2793
commit c2ff6f9655
+44 -3
View File
@@ -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())