Redirect from api Remanga and Desu (open in browser) (#5527)

This commit is contained in:
Eugene 2021-01-24 01:10:09 +05:00 committed by GitHub
parent 514374f13a
commit fcbab38aa1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 36 additions and 4 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'Desu'
pkgNameSuffix = 'ru.desu'
extClass = '.Desu'
extVersionCode = 5
extVersionCode = 6
libVersion = '1.2'
}

View File

@ -1,6 +1,7 @@
package eu.kanade.tachiyomi.extension.ru.desu
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.asObservableSuccess
import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.MangasPage
@ -13,6 +14,7 @@ import okhttp3.Request
import okhttp3.Response
import org.json.JSONArray
import org.json.JSONObject
import rx.Observable
import java.util.ArrayList
class Desu : HttpSource() {
@ -108,6 +110,26 @@ class Desu : HttpSource() {
return mangaPageFromJSON(obj.toString(), count > page * limit)
}
private fun titleDetailsRequest(manga: SManga): Request {
val titleId = manga.url.substringAfterLast("/")
val newHeaders = headersBuilder().build()
return GET("$baseUrl/$titleId", newHeaders)
}
// Workaround to allow "Open in browser" use the real URL.
override fun fetchMangaDetails(manga: SManga): Observable<SManga> {
return client.newCall(titleDetailsRequest(manga))
.asObservableSuccess()
.map { response ->
mangaDetailsParse(response).apply { initialized = true }
}
}
override fun mangaDetailsRequest(manga: SManga): Request {
return GET(baseUrl.substringBefore("/api") + manga.url, headers)
}
override fun mangaDetailsParse(response: Response) = SManga.create().apply {
val obj = JSONObject(response.body()!!.string()).getJSONObject("response")
mangaFromJSON(obj, true)

View File

@ -5,7 +5,7 @@ ext {
extName = 'Remanga'
pkgNameSuffix = 'ru.remanga'
extClass = '.Remanga'
extVersionCode = 13
extVersionCode = 14
libVersion = '1.2'
}

View File

@ -221,10 +221,18 @@ class Remanga : ConfigurableSource, HttpSource() {
status = parseStatus(o.status.id)
}
}
private fun titleDetailsRequest(manga: SManga): Request {
val titleId = manga.url
val newHeaders = headersBuilder().build()
return GET("$baseUrl/$titleId", newHeaders)
}
// Workaround to allow "Open in browser" use the real URL.
override fun fetchMangaDetails(manga: SManga): Observable<SManga> {
var warnLogin = false
return client.newCall(mangaDetailsRequest(manga))
return client.newCall(titleDetailsRequest(manga))
.asObservable().doOnNext { response ->
if (!response.isSuccessful) {
response.close()
@ -238,7 +246,9 @@ class Remanga : ConfigurableSource, HttpSource() {
}
}
}
override fun mangaDetailsRequest(manga: SManga): Request {
return GET(baseUrl + "/manga/" + manga.url.substringAfter("/api/titles/", "/"), headers)
}
override fun mangaDetailsParse(response: Response): SManga {
val series = gson.fromJson<SeriesWrapperDto<MangaDetDto>>(response.body()?.charStream()!!)
branches[series.content.en_name] = series.content.branches