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? {
|
override suspend fun mapChapterUrlToMangaUrl(uri: Uri): String? {
|
||||||
val id = uri.pathSegments.getOrNull(2) ?: return null
|
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)
|
return MdUtil.mapMdIdToMangaUrl(mangaId)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun fetchMangaDetails(manga: SManga): Observable<SManga> {
|
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 {
|
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>> {
|
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>> {
|
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) {
|
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 {
|
override suspend fun fetchFollows(): MangasPage {
|
||||||
@ -272,7 +272,7 @@ class MangaDex(delegate: HttpSource, val context: Context) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun fetchRandomMangaUrl(): String {
|
override suspend fun fetchRandomMangaUrl(): String {
|
||||||
return MangaHandler(client, headers, listOf(mdLang)).fetchRandomMangaId()
|
return MangaHandler(client, headers, mdLang).fetchRandomMangaId()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun fetchMangaSimilar(manga: Manga): Observable<MangasPage> {
|
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.SourceManager
|
||||||
import eu.kanade.tachiyomi.source.model.Page
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
import eu.kanade.tachiyomi.source.online.HttpSource
|
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.base.activity.BaseRxActivity
|
||||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
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.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
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 db: DatabaseHelper get() = Injekt.get()
|
||||||
|
|
||||||
val metaClass = MangaDexSearchMetadata::class
|
val metaClass = MangaDexSearchMetadata::class
|
||||||
@ -186,7 +186,7 @@ class ApiMangaParser(private val langs: List<String>) {
|
|||||||
|
|
||||||
private fun filterChapterForChecking(serializer: ApiMangaSerializer): List<ChapterSerializer> {
|
private fun filterChapterForChecking(serializer: ApiMangaSerializer): List<ChapterSerializer> {
|
||||||
return serializer.data.chapters.asSequence()
|
return serializer.data.chapters.asSequence()
|
||||||
.filter { langs.contains(it.language) }
|
.filter { lang == it.language }
|
||||||
.filter {
|
.filter {
|
||||||
it.chapter?.let { chapterNumber ->
|
it.chapter?.let { chapterNumber ->
|
||||||
if (chapterNumber.toDoubleOrNull() == null) {
|
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
|
// 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()
|
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()
|
.map { mapChapter(it, finalChapterNumber, status, chapLangs, networkChapters.size, groups) }.toList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,14 +21,14 @@ import okhttp3.Request
|
|||||||
import rx.Observable
|
import rx.Observable
|
||||||
import tachiyomi.source.model.MangaInfo
|
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
|
// TODO make use of this
|
||||||
suspend fun fetchMangaAndChapterDetails(manga: MangaInfo, sourceId: Long): Pair<MangaInfo, List<SChapter>> {
|
suspend fun fetchMangaAndChapterDetails(manga: MangaInfo, sourceId: Long): Pair<MangaInfo, List<SChapter>> {
|
||||||
return withContext(Dispatchers.IO) {
|
return withContext(Dispatchers.IO) {
|
||||||
val response = client.newCall(apiRequest(manga.toSManga())).await()
|
val response = client.newCall(apiRequest(manga.toSManga())).await()
|
||||||
val covers = getCovers(manga, forceLatestCovers)
|
val covers = getCovers(manga, forceLatestCovers)
|
||||||
val parser = ApiMangaParser(langs)
|
val parser = ApiMangaParser(lang)
|
||||||
|
|
||||||
val jsonData = withContext(Dispatchers.IO) { response.body!!.string() }
|
val jsonData = withContext(Dispatchers.IO) { response.body!!.string() }
|
||||||
if (response.code != 200) {
|
if (response.code != 200) {
|
||||||
@ -58,7 +58,7 @@ class MangaHandler(val client: OkHttpClient, val headers: Headers, val langs: Li
|
|||||||
return withContext(Dispatchers.IO) {
|
return withContext(Dispatchers.IO) {
|
||||||
val request = GET(MdUtil.apiUrl + MdUtil.newApiChapter + urlChapterId + MdUtil.apiChapterSuffix, headers, CacheControl.FORCE_NETWORK)
|
val request = GET(MdUtil.apiUrl + MdUtil.newApiChapter + urlChapterId + MdUtil.apiChapterSuffix, headers, CacheControl.FORCE_NETWORK)
|
||||||
val response = client.newCall(request).await()
|
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) {
|
return withContext(Dispatchers.IO) {
|
||||||
val response = client.newCall(apiRequest(manga.toSManga())).await()
|
val response = client.newCall(apiRequest(manga.toSManga())).await()
|
||||||
val covers = getCovers(manga, forceLatestCovers)
|
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 {
|
.flatMap {
|
||||||
ApiMangaParser(langs).parseToManga(manga, it.first, it.second).andThen(
|
ApiMangaParser(lang).parseToManga(manga, it.first, it.second).andThen(
|
||||||
Observable.just(
|
Observable.just(
|
||||||
manga.apply {
|
manga.apply {
|
||||||
initialized = true
|
initialized = true
|
||||||
@ -95,14 +95,14 @@ class MangaHandler(val client: OkHttpClient, val headers: Headers, val langs: Li
|
|||||||
return client.newCall(apiRequest(manga))
|
return client.newCall(apiRequest(manga))
|
||||||
.asObservableSuccess()
|
.asObservableSuccess()
|
||||||
.map { response ->
|
.map { response ->
|
||||||
ApiMangaParser(langs).chapterListParse(response)
|
ApiMangaParser(lang).chapterListParse(response)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun fetchChapterList(manga: SManga): List<SChapter> {
|
suspend fun fetchChapterList(manga: SManga): List<SChapter> {
|
||||||
return withContext(Dispatchers.IO) {
|
return withContext(Dispatchers.IO) {
|
||||||
val response = client.newCall(apiRequest(manga)).await()
|
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())
|
return client.newCall(randomMangaRequest())
|
||||||
.asObservableSuccess()
|
.asObservableSuccess()
|
||||||
.map { response ->
|
.map { response ->
|
||||||
ApiMangaParser(langs).randomMangaIdParse(response)
|
ApiMangaParser(lang).randomMangaIdParse(response)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun fetchRandomMangaId(): String {
|
suspend fun fetchRandomMangaId(): String {
|
||||||
return withContext(Dispatchers.IO) {
|
return withContext(Dispatchers.IO) {
|
||||||
val response = client.newCall(randomMangaRequest()).await()
|
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
|
import rx.Observable
|
||||||
|
|
||||||
// Unused, kept for reference todo
|
// 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> {
|
fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> {
|
||||||
return when {
|
return when {
|
||||||
@ -29,7 +29,7 @@ class SearchHandler(val client: OkHttpClient, private val headers: Headers, val
|
|||||||
.map { response ->
|
.map { response ->
|
||||||
val details = SManga.create()
|
val details = SManga.create()
|
||||||
details.url = "/manga/$realQuery/"
|
details.url = "/manga/$realQuery/"
|
||||||
ApiMangaParser(langs).parseToManga(details, response, emptyList()).await()
|
ApiMangaParser(lang).parseToManga(details, response, emptyList()).await()
|
||||||
MangasPage(listOf(details), false)
|
MangasPage(listOf(details), false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user