2020-08-21 02:50:37 +02:00
|
|
|
package exh.md.handlers
|
|
|
|
|
|
2021-05-13 05:29:14 +02:00
|
|
|
import eu.kanade.tachiyomi.network.GET
|
|
|
|
|
import eu.kanade.tachiyomi.network.await
|
|
|
|
|
import eu.kanade.tachiyomi.network.parseAs
|
2020-08-21 02:50:37 +02:00
|
|
|
import eu.kanade.tachiyomi.source.model.MangasPage
|
|
|
|
|
import eu.kanade.tachiyomi.source.model.SManga
|
2021-05-13 05:29:14 +02:00
|
|
|
import exh.md.handlers.serializers.SimilarMangaResponse
|
2020-08-21 02:50:37 +02:00
|
|
|
import exh.md.utils.MdUtil
|
2021-05-13 05:29:14 +02:00
|
|
|
import okhttp3.CacheControl
|
|
|
|
|
import okhttp3.Headers
|
|
|
|
|
import okhttp3.OkHttpClient
|
|
|
|
|
import okhttp3.Request
|
|
|
|
|
import okhttp3.Response
|
|
|
|
|
import tachiyomi.source.model.MangaInfo
|
2020-08-21 02:50:37 +02:00
|
|
|
|
2021-05-17 18:45:33 +02:00
|
|
|
class SimilarHandler(val client: OkHttpClient, val lang: String) {
|
2020-08-21 02:50:37 +02:00
|
|
|
|
2021-05-13 05:29:14 +02:00
|
|
|
suspend fun getSimilar(manga: MangaInfo): MangasPage {
|
|
|
|
|
val response = client.newCall(similarMangaRequest(manga)).await()
|
|
|
|
|
return similarMangaParse(response)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun similarMangaRequest(manga: MangaInfo): Request {
|
|
|
|
|
val tempUrl = MdUtil.similarBaseApi + MdUtil.getMangaId(manga.key) + ".json"
|
|
|
|
|
return GET(tempUrl, Headers.Builder().build(), CacheControl.FORCE_NETWORK)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun similarMangaParse(response: Response): MangasPage {
|
|
|
|
|
val mangaList = response.parseAs<SimilarMangaResponse>().matches.map {
|
|
|
|
|
SManga.create().apply {
|
2021-05-17 18:45:33 +02:00
|
|
|
url = MdUtil.buildMangaUrl(it.id)
|
2021-05-13 05:29:14 +02:00
|
|
|
title = MdUtil.cleanString(it.title[lang] ?: it.title["en"]!!)
|
2021-05-17 18:45:33 +02:00
|
|
|
thumbnail_url = MdUtil.formThumbUrl(url)
|
2020-08-21 02:50:37 +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
|
|
|
}
|