Fix EHentai reading progress not carrying over

This commit is contained in:
NerdNumber9
2019-08-13 00:04:02 -04:00
parent b64ecfb836
commit 141edac99b
4 changed files with 39 additions and 15 deletions

View File

@@ -191,17 +191,20 @@ class EHentai(override val id: Long,
}!!.nextElementSibling().text()).time
}
// Build and append the rest of the galleries
newDisplay.mapIndexed { index, newGallery ->
val link = newGallery.attr("href")
val name = newGallery.text()
val posted = (newGallery.nextSibling() as TextNode).text().removePrefix(", added ")
SChapter.create().apply {
this.url = EHentaiSearchMetadata.normalizeUrl(link)
this.name = "v${index + 2}: $name"
this.chapter_number = index + 2f
this.date_upload = EX_DATE_FORMAT.parse(posted).time
}
}.reversed() + self
if(DebugToggles.INCLUDE_ONLY_ROOT_WHEN_LOADING_EXH_VERSIONS.enabled) listOf(self)
else {
newDisplay.mapIndexed { index, newGallery ->
val link = newGallery.attr("href")
val name = newGallery.text()
val posted = (newGallery.nextSibling() as TextNode).text().removePrefix(", added ")
SChapter.create().apply {
this.url = EHentaiSearchMetadata.normalizeUrl(link)
this.name = "v${index + 2}: $name"
this.chapter_number = index + 2f
this.date_upload = EX_DATE_FORMAT.parse(posted).time
}
}.reversed() + self
}
}.toObservable()
}

View File

@@ -6,6 +6,8 @@ import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.source.Source
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.online.HttpSource
import exh.EH_SOURCE_ID
import exh.EXH_SOURCE_ID
import java.util.*
/**
@@ -118,6 +120,21 @@ fun syncChaptersWithSource(db: DatabaseHelper,
readded.add(c)
}
}
// --> EXH (carry over reading progress)
if(manga.source == EH_SOURCE_ID || manga.source == EXH_SOURCE_ID) {
val finalAdded = toAdd.subtract(readded)
if(finalAdded.isNotEmpty()) {
val max = dbChapters.maxBy { it.last_page_read }
if (max != null && max.last_page_read > 0) {
for (chapter in finalAdded) {
chapter.last_page_read = max.last_page_read
}
}
}
}
// <-- EXH
db.insertChapters(toAdd).executeAsBlocking()
}