2020-08-21 02:50:37 +02:00
|
|
|
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
|
2020-08-21 02:50:37 +02:00
|
|
|
import exh.md.utils.MdUtil
|
2021-05-13 05:29:14 +02:00
|
|
|
import tachiyomi.source.model.MangaInfo
|
2020-08-21 02:50:37 +02:00
|
|
|
|
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
|
|
|
) {
|
2020-08-21 02:50:37 +02:00
|
|
|
|
2021-05-13 05:29:14 +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-05-13 05:29:14 +02:00
|
|
|
}
|
|
|
|
|
|
2021-07-06 00:31:30 +02:00
|
|
|
private suspend fun similarDtoToMangaListPage(
|
|
|
|
|
similarMangaDto: SimilarMangaDto,
|
|
|
|
|
): MangasPage {
|
|
|
|
|
val ids = similarMangaDto.matches.map {
|
|
|
|
|
it.id
|
|
|
|
|
}
|
2021-05-13 05:29:14 +02:00
|
|
|
|
2021-09-12 19:07:18 +02:00
|
|
|
val mangaList = service.viewMangas(ids).data.map {
|
2021-07-06 00:31:30 +02:00
|
|
|
MdUtil.createMangaEntry(it, lang).toSManga()
|
2021-05-13 05:29:14 +02:00
|
|
|
}
|
2021-07-06 00:31:30 +02:00
|
|
|
|
2021-05-13 05:29:14 +02:00
|
|
|
return MangasPage(mangaList, false)
|
2020-08-21 02:50:37 +02:00
|
|
|
}
|
2020-10-26 07:13:02 +01:00
|
|
|
}
|