Mangadex replace list of langs with just the source lang
This commit is contained in:
parent
6bb7b676bd
commit
73e861ec9e
@ -119,20 +119,20 @@ class MangaDex(delegate: HttpSource, val context: Context) :
|
||||
|
||||
override suspend fun mapChapterUrlToMangaUrl(uri: Uri): String? {
|
||||
val id = uri.pathSegments.getOrNull(2) ?: return null
|
||||
val mangaId = MangaHandler(client, headers, listOf(mdLang)).getMangaIdFromChapterId(id)
|
||||
val mangaId = MangaHandler(client, headers, mdLang).getMangaIdFromChapterId(id)
|
||||
return MdUtil.mapMdIdToMangaUrl(mangaId)
|
||||
}
|
||||
|
||||
override fun fetchMangaDetails(manga: SManga): Observable<SManga> {
|
||||
return MangaHandler(client, headers, listOf(mdLang), preferences.mangaDexForceLatestCovers().get()).fetchMangaDetailsObservable(manga)
|
||||
return MangaHandler(client, headers, mdLang, preferences.mangaDexForceLatestCovers().get()).fetchMangaDetailsObservable(manga)
|
||||
}
|
||||
|
||||
override suspend fun getMangaDetails(manga: MangaInfo): MangaInfo {
|
||||
return MangaHandler(client, headers, listOf(mdLang), preferences.mangaDexForceLatestCovers().get()).getMangaDetails(manga, id)
|
||||
return MangaHandler(client, headers, mdLang, preferences.mangaDexForceLatestCovers().get()).getMangaDetails(manga, id)
|
||||
}
|
||||
|
||||
override fun fetchChapterList(manga: SManga): Observable<List<SChapter>> {
|
||||
return MangaHandler(client, headers, listOf(mdLang), preferences.mangaDexForceLatestCovers().get()).fetchChapterListObservable(manga)
|
||||
return MangaHandler(client, headers, mdLang, preferences.mangaDexForceLatestCovers().get()).fetchChapterListObservable(manga)
|
||||
}
|
||||
|
||||
override fun fetchPageList(chapter: SChapter): Observable<List<Page>> {
|
||||
@ -165,7 +165,7 @@ class MangaDex(delegate: HttpSource, val context: Context) :
|
||||
}
|
||||
|
||||
override fun parseIntoMetadata(metadata: MangaDexSearchMetadata, input: Response) {
|
||||
ApiMangaParser(listOf(mdLang)).parseIntoMetadata(metadata, input, emptyList())
|
||||
ApiMangaParser(mdLang).parseIntoMetadata(metadata, input, emptyList())
|
||||
}
|
||||
|
||||
override suspend fun fetchFollows(): MangasPage {
|
||||
@ -272,7 +272,7 @@ class MangaDex(delegate: HttpSource, val context: Context) :
|
||||
}
|
||||
|
||||
override suspend fun fetchRandomMangaUrl(): String {
|
||||
return MangaHandler(client, headers, listOf(mdLang)).fetchRandomMangaId()
|
||||
return MangaHandler(client, headers, mdLang).fetchRandomMangaId()
|
||||
}
|
||||
|
||||
fun fetchMangaSimilar(manga: Manga): Observable<MangasPage> {
|
||||
|
@ -40,7 +40,6 @@ import eu.kanade.tachiyomi.databinding.ReaderActivityBinding
|
||||
import eu.kanade.tachiyomi.source.SourceManager
|
||||
import eu.kanade.tachiyomi.source.model.Page
|
||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
||||
import eu.kanade.tachiyomi.source.online.all.EHentai
|
||||
import eu.kanade.tachiyomi.ui.base.activity.BaseRxActivity
|
||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||
|
@ -29,7 +29,7 @@ import tachiyomi.source.model.MangaInfo
|
||||
import uy.kohesive.injekt.Injekt
|
||||
import uy.kohesive.injekt.api.get
|
||||
|
||||
class ApiMangaParser(private val langs: List<String>) {
|
||||
class ApiMangaParser(private val lang: String) {
|
||||
val db: DatabaseHelper get() = Injekt.get()
|
||||
|
||||
val metaClass = MangaDexSearchMetadata::class
|
||||
@ -186,7 +186,7 @@ class ApiMangaParser(private val langs: List<String>) {
|
||||
|
||||
private fun filterChapterForChecking(serializer: ApiMangaSerializer): List<ChapterSerializer> {
|
||||
return serializer.data.chapters.asSequence()
|
||||
.filter { langs.contains(it.language) }
|
||||
.filter { lang == it.language }
|
||||
.filter {
|
||||
it.chapter?.let { chapterNumber ->
|
||||
if (chapterNumber.toDoubleOrNull() == null) {
|
||||
@ -244,9 +244,9 @@ class ApiMangaParser(private val langs: List<String>) {
|
||||
|
||||
// Skip chapters that don't match the desired language, or are future releases
|
||||
|
||||
val chapLangs = MdLang.values().filter { langs.contains(it.dexLang) }
|
||||
val chapLangs = MdLang.values().filter { lang == it.dexLang }
|
||||
return networkChapters.asSequence()
|
||||
.filter { langs.contains(it.language) && (it.timestamp * 1000) <= now }
|
||||
.filter { lang == it.language && (it.timestamp * 1000) <= now }
|
||||
.map { mapChapter(it, finalChapterNumber, status, chapLangs, networkChapters.size, groups) }.toList()
|
||||
}
|
||||
|
||||
|
@ -21,14 +21,14 @@ import okhttp3.Request
|
||||
import rx.Observable
|
||||
import tachiyomi.source.model.MangaInfo
|
||||
|
||||
class MangaHandler(val client: OkHttpClient, val headers: Headers, val langs: List<String>, val forceLatestCovers: Boolean = false) {
|
||||
class MangaHandler(val client: OkHttpClient, val headers: Headers, val lang: String, val forceLatestCovers: Boolean = false) {
|
||||
|
||||
// TODO make use of this
|
||||
suspend fun fetchMangaAndChapterDetails(manga: MangaInfo, sourceId: Long): Pair<MangaInfo, List<SChapter>> {
|
||||
return withContext(Dispatchers.IO) {
|
||||
val response = client.newCall(apiRequest(manga.toSManga())).await()
|
||||
val covers = getCovers(manga, forceLatestCovers)
|
||||
val parser = ApiMangaParser(langs)
|
||||
val parser = ApiMangaParser(lang)
|
||||
|
||||
val jsonData = withContext(Dispatchers.IO) { response.body!!.string() }
|
||||
if (response.code != 200) {
|
||||
@ -58,7 +58,7 @@ class MangaHandler(val client: OkHttpClient, val headers: Headers, val langs: Li
|
||||
return withContext(Dispatchers.IO) {
|
||||
val request = GET(MdUtil.apiUrl + MdUtil.newApiChapter + urlChapterId + MdUtil.apiChapterSuffix, headers, CacheControl.FORCE_NETWORK)
|
||||
val response = client.newCall(request).await()
|
||||
ApiMangaParser(langs).chapterParseForMangaId(response)
|
||||
ApiMangaParser(lang).chapterParseForMangaId(response)
|
||||
}
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ class MangaHandler(val client: OkHttpClient, val headers: Headers, val langs: Li
|
||||
return withContext(Dispatchers.IO) {
|
||||
val response = client.newCall(apiRequest(manga.toSManga())).await()
|
||||
val covers = getCovers(manga, forceLatestCovers)
|
||||
ApiMangaParser(langs).parseToManga(manga, response, covers, sourceId)
|
||||
ApiMangaParser(lang).parseToManga(manga, response, covers, sourceId)
|
||||
}
|
||||
}
|
||||
|
||||
@ -81,7 +81,7 @@ class MangaHandler(val client: OkHttpClient, val headers: Headers, val langs: Li
|
||||
}
|
||||
}
|
||||
.flatMap {
|
||||
ApiMangaParser(langs).parseToManga(manga, it.first, it.second).andThen(
|
||||
ApiMangaParser(lang).parseToManga(manga, it.first, it.second).andThen(
|
||||
Observable.just(
|
||||
manga.apply {
|
||||
initialized = true
|
||||
@ -95,14 +95,14 @@ class MangaHandler(val client: OkHttpClient, val headers: Headers, val langs: Li
|
||||
return client.newCall(apiRequest(manga))
|
||||
.asObservableSuccess()
|
||||
.map { response ->
|
||||
ApiMangaParser(langs).chapterListParse(response)
|
||||
ApiMangaParser(lang).chapterListParse(response)
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun fetchChapterList(manga: SManga): List<SChapter> {
|
||||
return withContext(Dispatchers.IO) {
|
||||
val response = client.newCall(apiRequest(manga)).await()
|
||||
ApiMangaParser(langs).chapterListParse(response)
|
||||
ApiMangaParser(lang).chapterListParse(response)
|
||||
}
|
||||
}
|
||||
|
||||
@ -110,14 +110,14 @@ class MangaHandler(val client: OkHttpClient, val headers: Headers, val langs: Li
|
||||
return client.newCall(randomMangaRequest())
|
||||
.asObservableSuccess()
|
||||
.map { response ->
|
||||
ApiMangaParser(langs).randomMangaIdParse(response)
|
||||
ApiMangaParser(lang).randomMangaIdParse(response)
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun fetchRandomMangaId(): String {
|
||||
return withContext(Dispatchers.IO) {
|
||||
val response = client.newCall(randomMangaRequest()).await()
|
||||
ApiMangaParser(langs).randomMangaIdParse(response)
|
||||
ApiMangaParser(lang).randomMangaIdParse(response)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ import org.jsoup.nodes.Element
|
||||
import rx.Observable
|
||||
|
||||
// Unused, kept for reference todo
|
||||
class SearchHandler(val client: OkHttpClient, private val headers: Headers, val langs: List<String>, private val useLowQualityCovers: Boolean) {
|
||||
class SearchHandler(val client: OkHttpClient, private val headers: Headers, val lang: String, private val useLowQualityCovers: Boolean) {
|
||||
|
||||
fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> {
|
||||
return when {
|
||||
@ -29,7 +29,7 @@ class SearchHandler(val client: OkHttpClient, private val headers: Headers, val
|
||||
.map { response ->
|
||||
val details = SManga.create()
|
||||
details.url = "/manga/$realQuery/"
|
||||
ApiMangaParser(langs).parseToManga(details, response, emptyList()).await()
|
||||
ApiMangaParser(lang).parseToManga(details, response, emptyList()).await()
|
||||
MangasPage(listOf(details), false)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user