diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt index 423f8a7cf..9b7afe547 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderDen.kt @@ -43,7 +43,6 @@ import com.hippo.ehviewer.util.sendTo import com.hippo.unifile.UniFile import com.hippo.unifile.asUniFile import com.hippo.unifile.openOutputStream -import eu.kanade.tachiyomi.util.lang.withNonCancellableContext import eu.kanade.tachiyomi.util.system.logcat import io.ktor.client.plugins.onDownload import io.ktor.client.statement.HttpResponse @@ -323,9 +322,7 @@ class SpiderDen(val info: GalleryInfo) { createFile(COMIC_INFO_FILE)?.also { runCatching { if (info !is GalleryDetail && fetchMetadata) { - withNonCancellableContext { - EhEngine.fillGalleryListByApi(listOf(info)) - } + EhEngine.fillGalleryListByApi(listOf(info)) } info.getComicInfo().apply { write(it) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt index d310db593..ebc2924e0 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/spider/SpiderQueen.kt @@ -244,12 +244,15 @@ class SpiderQueen private constructor(val galleryInfo: GalleryInfo) : CoroutineS if (archiveJob.isActive) { archiveJob.join() } - runCatching { - if (!mSpiderDen.postArchive()) { + if (!mSpiderDen.postArchive()) { + if (mWorkerScope.isDownloadMode) { + mSpiderDen.writeComicInfo() + } + runCatching { writeSpiderInfoToLocal() + }.onFailure { + logcat(it) } - }.onFailure { - logcat(it) } queenScope.cancel() } @@ -483,13 +486,7 @@ class SpiderQueen private constructor(val galleryInfo: GalleryInfo) : CoroutineS val gid = galleryInfo.gid return (sQueenMap[gid] ?: SpiderQueen(galleryInfo).also { sQueenMap[gid] = it }).apply { setMode(mode) - launch { - // Will create download dir if not exists - updateMode() - if (mode == MODE_DOWNLOAD) { - mSpiderDen.writeComicInfo() - } - } + launch { updateMode() } } } @@ -516,7 +513,8 @@ class SpiderQueen private constructor(val galleryInfo: GalleryInfo) : CoroutineS private val downloadTimeout = Settings.downloadTimeout.seconds private val delayLock = Mutex() private var lastRequestTime = TimeSource.Monotonic.markNow() - private var isDownloadMode = false + var isDownloadMode = false + private set fun cancelDecode(index: Int) { decoder.cancel(index)