komikku/app/src/main/java/exh/md/handlers/SimilarHandler.kt

36 lines
1,022 B
Kotlin
Raw Normal View History

package exh.md.handlers
import eu.kanade.tachiyomi.source.model.MangasPage
2021-07-06 00:31:30 +02:00
import eu.kanade.tachiyomi.source.model.toSManga
import exh.md.dto.SimilarMangaDto
import exh.md.service.MangaDexService
import exh.md.service.SimilarService
import exh.md.utils.MdUtil
import tachiyomi.source.model.MangaInfo
2021-06-03 22:42:26 +02:00
class SimilarHandler(
2021-07-06 00:31:30 +02:00
private val lang: String,
private val service: MangaDexService,
private val similarService: SimilarService
2021-06-03 22:42:26 +02:00
) {
suspend fun getSimilar(manga: MangaInfo): MangasPage {
2021-07-06 00:31:30 +02:00
val similarDto = similarService.getSimilarManga(MdUtil.getMangaId(manga.key))
return similarDtoToMangaListPage(similarDto)
}
2021-07-06 00:31:30 +02:00
private suspend fun similarDtoToMangaListPage(
similarMangaDto: SimilarMangaDto,
): MangasPage {
val ids = similarMangaDto.matches.map {
it.id
}
val mangaList = service.viewMangas(ids).data.map {
2021-07-06 00:31:30 +02:00
MdUtil.createMangaEntry(it, lang).toSManga()
}
2021-07-06 00:31:30 +02:00
return MangasPage(mangaList, false)
}
}