Redirect from api Remanga and Desu (open in browser) (#5527)
This commit is contained in:
parent
514374f13a
commit
fcbab38aa1
@ -5,7 +5,7 @@ ext {
|
|||||||
extName = 'Desu'
|
extName = 'Desu'
|
||||||
pkgNameSuffix = 'ru.desu'
|
pkgNameSuffix = 'ru.desu'
|
||||||
extClass = '.Desu'
|
extClass = '.Desu'
|
||||||
extVersionCode = 5
|
extVersionCode = 6
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package eu.kanade.tachiyomi.extension.ru.desu
|
package eu.kanade.tachiyomi.extension.ru.desu
|
||||||
|
|
||||||
import eu.kanade.tachiyomi.network.GET
|
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.Filter
|
||||||
import eu.kanade.tachiyomi.source.model.FilterList
|
import eu.kanade.tachiyomi.source.model.FilterList
|
||||||
import eu.kanade.tachiyomi.source.model.MangasPage
|
import eu.kanade.tachiyomi.source.model.MangasPage
|
||||||
@ -13,6 +14,7 @@ import okhttp3.Request
|
|||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
import org.json.JSONArray
|
import org.json.JSONArray
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
|
import rx.Observable
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
|
|
||||||
class Desu : HttpSource() {
|
class Desu : HttpSource() {
|
||||||
@ -108,6 +110,26 @@ class Desu : HttpSource() {
|
|||||||
return mangaPageFromJSON(obj.toString(), count > page * limit)
|
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 {
|
override fun mangaDetailsParse(response: Response) = SManga.create().apply {
|
||||||
val obj = JSONObject(response.body()!!.string()).getJSONObject("response")
|
val obj = JSONObject(response.body()!!.string()).getJSONObject("response")
|
||||||
mangaFromJSON(obj, true)
|
mangaFromJSON(obj, true)
|
||||||
|
@ -5,7 +5,7 @@ ext {
|
|||||||
extName = 'Remanga'
|
extName = 'Remanga'
|
||||||
pkgNameSuffix = 'ru.remanga'
|
pkgNameSuffix = 'ru.remanga'
|
||||||
extClass = '.Remanga'
|
extClass = '.Remanga'
|
||||||
extVersionCode = 13
|
extVersionCode = 14
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -221,10 +221,18 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
status = parseStatus(o.status.id)
|
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> {
|
override fun fetchMangaDetails(manga: SManga): Observable<SManga> {
|
||||||
var warnLogin = false
|
var warnLogin = false
|
||||||
return client.newCall(mangaDetailsRequest(manga))
|
return client.newCall(titleDetailsRequest(manga))
|
||||||
.asObservable().doOnNext { response ->
|
.asObservable().doOnNext { response ->
|
||||||
if (!response.isSuccessful) {
|
if (!response.isSuccessful) {
|
||||||
response.close()
|
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 {
|
override fun mangaDetailsParse(response: Response): SManga {
|
||||||
val series = gson.fromJson<SeriesWrapperDto<MangaDetDto>>(response.body()?.charStream()!!)
|
val series = gson.fromJson<SeriesWrapperDto<MangaDetDto>>(response.body()?.charStream()!!)
|
||||||
branches[series.content.en_name] = series.content.branches
|
branches[series.content.en_name] = series.content.branches
|
||||||
|
Loading…
x
Reference in New Issue
Block a user