diff --git a/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt b/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt index a44c983ba..4e5262f04 100644 --- a/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt +++ b/app/src/main/java/exh/eh/EHentaiUpdateHelper.kt @@ -66,61 +66,41 @@ class EHentaiUpdateHelper(context: Context) { // Copy chain chapters to curChapters val newChapters = toDiscard .flatMap { chain -> - val meta by lazy { - db.getFlatMetadataForManga(chain.manga.id!!) - .executeAsBlocking() - ?.raise() - } - - chain.chapters.map { chapter -> - // Convert old style chapters to new style chapters if possible - if (chapter.date_upload <= 0 && - meta?.datePosted != null && - meta?.title != null - ) { - chapter.name = meta!!.title!! - chapter.date_upload = meta!!.datePosted!! - } - chapter - } + chain.chapters } .fold(accepted.chapters) { curChapters, chapter -> val existing = curChapters.find { it.url == chapter.url } val newLastPageRead = chainsAsChapters.maxByOrNull { it.last_page_read }?.last_page_read - when { - existing != null -> { - existing.read = existing.read || chapter.read - existing.last_page_read = existing.last_page_read.coerceAtLeast(chapter.last_page_read) - if (newLastPageRead != null && existing.last_page_read <= 0) { - existing.last_page_read = newLastPageRead - } - existing.bookmark = existing.bookmark || chapter.bookmark - curChapters + if (existing != null) { + existing.read = existing.read || chapter.read + existing.last_page_read = existing.last_page_read.coerceAtLeast(chapter.last_page_read) + if (newLastPageRead != null && existing.last_page_read <= 0) { + existing.last_page_read = newLastPageRead } - chapter.date_upload > 0 -> { // Ignore chapters using the old system - new = true - curChapters + ChapterImpl().apply { - manga_id = accepted.manga.id - url = chapter.url - name = chapter.name - read = chapter.read - bookmark = chapter.bookmark + existing.bookmark = existing.bookmark || chapter.bookmark + curChapters + } + else { + new = true + curChapters + ChapterImpl().apply { + manga_id = accepted.manga.id + url = chapter.url + name = chapter.name + read = chapter.read + bookmark = chapter.bookmark - last_page_read = chapter.last_page_read - if (newLastPageRead != null && last_page_read <= 0) { - last_page_read = newLastPageRead - } - - date_fetch = chapter.date_fetch - date_upload = chapter.date_upload + last_page_read = chapter.last_page_read + if (newLastPageRead != null && last_page_read <= 0) { + last_page_read = newLastPageRead } + + date_fetch = chapter.date_fetch + date_upload = chapter.date_upload } - else -> curChapters } } - .filter { it.date_upload > 0 } // Ignore chapters using the old system (filter after to prevent dupes from insert) .sortedBy { it.date_upload } .apply { mapIndexed { index, chapter ->