Update SY fetchMangaInfo and getchChapterList to use the new 1.x functions

This commit is contained in:
Jobobby04
2021-01-02 16:36:13 -05:00
parent 28fca8c839
commit ce0726d863
8 changed files with 69 additions and 44 deletions
+12 -11
View File
@@ -7,12 +7,14 @@ import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.DatabaseHelper
import eu.kanade.tachiyomi.data.database.models.Chapter
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.database.models.toMangaInfo
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.model.toSChapter
import eu.kanade.tachiyomi.source.model.toSManga
import eu.kanade.tachiyomi.source.online.UrlImportableSource
import eu.kanade.tachiyomi.source.online.all.EHentai
import eu.kanade.tachiyomi.util.chapter.syncChaptersWithSource
import eu.kanade.tachiyomi.util.lang.awaitSingle
import exh.source.getMainSource
import exh.util.executeOnIO
import uy.kohesive.injekt.Injekt
@@ -131,8 +133,8 @@ class GalleryAdder {
}
// Fetch and copy details
val newManga = source.fetchMangaDetails(manga).awaitSingle()
manga.copyFrom(newManga)
val newManga = source.getMangaDetails(manga.toMangaInfo())
manga.copyFrom(newManga.toSManga())
manga.initialized = true
if (fav) {
@@ -144,16 +146,15 @@ class GalleryAdder {
// Fetch and copy chapters
try {
val chapterListObs = if (source is EHentai) {
source.fetchChapterList(manga, throttleFunc)
val chapterList = if (source is EHentai) {
source.getChapterList(manga.toMangaInfo(), throttleFunc)
} else {
source.fetchChapterList(manga)
source.getChapterList(manga.toMangaInfo())
}.map { it.toSChapter() }
if (chapterList.isNotEmpty()) {
syncChaptersWithSource(db, chapterList, manga, source)
}
chapterListObs.map {
if (it.isNotEmpty()) {
syncChaptersWithSource(db, it, manga, source)
} else emptyList<Chapter>() to emptyList()
}.awaitSingle()
} catch (e: Exception) {
logger.w(context.getString(R.string.gallery_adder_chapter_fetch_error, manga.title), e)
return GalleryAddEvent.Fail.Error(url, context.getString(R.string.gallery_adder_chapter_fetch_error, url))
@@ -4,10 +4,12 @@ import android.app.Application
import com.elvishew.xlog.XLog
import com.pushtorefresh.storio.sqlite.queries.RawQuery
import eu.kanade.tachiyomi.data.database.DatabaseHelper
import eu.kanade.tachiyomi.data.database.models.toMangaInfo
import eu.kanade.tachiyomi.data.database.tables.MangaTable
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.source.CatalogueSource
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.model.toSManga
import eu.kanade.tachiyomi.util.lang.await
import exh.EH_SOURCE_ID
import exh.EXHMigrations
@@ -90,8 +92,8 @@ object DebugFunctions {
EXH_SOURCE_ID -> ex
else -> return@forEach
}
)?.fetchMangaDetails(manga)?.map { networkManga ->
manga.copyFrom(networkManga)
)?.getMangaDetails(manga.toMangaInfo())?.let { networkManga ->
manga.copyFrom(networkManga.toSManga())
manga.initialized = true
db.insertManga(manga).executeAsBlocking()
}
@@ -11,13 +11,15 @@ import com.elvishew.xlog.XLog
import eu.kanade.tachiyomi.data.database.DatabaseHelper
import eu.kanade.tachiyomi.data.database.models.Chapter
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.database.models.toMangaInfo
import eu.kanade.tachiyomi.data.library.LibraryUpdateNotifier
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.source.SourceManager
import eu.kanade.tachiyomi.source.model.toSChapter
import eu.kanade.tachiyomi.source.model.toSManga
import eu.kanade.tachiyomi.source.online.all.EHentai
import eu.kanade.tachiyomi.util.chapter.syncChaptersWithSource
import eu.kanade.tachiyomi.util.lang.await
import eu.kanade.tachiyomi.util.lang.awaitSingle
import exh.EH_SOURCE_ID
import exh.EXH_SOURCE_ID
import exh.debug.DebugToggles
@@ -261,11 +263,12 @@ class EHentaiUpdateWorker : JobService(), CoroutineScope {
?: throw GalleryNotUpdatedException(false, IllegalStateException("Missing EH-based source (${manga.source})!"))
try {
val updatedManga = source.fetchMangaDetails(manga).awaitSingle()
manga.copyFrom(updatedManga)
val updatedManga = source.getMangaDetails(manga.toMangaInfo())
manga.copyFrom(updatedManga.toSManga())
db.insertManga(manga).await()
val newChapters = source.fetchChapterList(manga).awaitSingle()
val newChapters = source.getChapterList(manga.toMangaInfo())
.map { it.toSChapter() }
val (new, _) = syncChaptersWithSource(db, newChapters, manga, source) // Not suspending, but does block, maybe fix this?
return new to db.getChapters(manga).await()