Use schedule only in Bilibili Comics override (#14150)
* Use schedule only in Bilibili Comics. * Fix unused inports.
This commit is contained in:
parent
7def22b8e1
commit
4c93d035aa
@ -7,13 +7,16 @@ import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliComicDto
|
|||||||
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliCredential
|
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliCredential
|
||||||
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliGetCredential
|
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliGetCredential
|
||||||
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliIntl
|
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliIntl
|
||||||
|
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliSearchDto
|
||||||
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliTag
|
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliTag
|
||||||
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliUnlockedEpisode
|
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliUnlockedEpisode
|
||||||
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliUserEpisodes
|
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliUserEpisodes
|
||||||
import eu.kanade.tachiyomi.network.POST
|
import eu.kanade.tachiyomi.network.POST
|
||||||
import eu.kanade.tachiyomi.source.SourceFactory
|
import eu.kanade.tachiyomi.source.SourceFactory
|
||||||
|
import eu.kanade.tachiyomi.source.model.MangasPage
|
||||||
import eu.kanade.tachiyomi.source.model.Page
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
import eu.kanade.tachiyomi.source.model.SChapter
|
import eu.kanade.tachiyomi.source.model.SChapter
|
||||||
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
import kotlinx.serialization.decodeFromString
|
import kotlinx.serialization.decodeFromString
|
||||||
import kotlinx.serialization.encodeToString
|
import kotlinx.serialization.encodeToString
|
||||||
import kotlinx.serialization.json.buildJsonObject
|
import kotlinx.serialization.json.buildJsonObject
|
||||||
@ -64,6 +67,41 @@ abstract class BilibiliComics(lang: String) : Bilibili(
|
|||||||
|
|
||||||
private var accessTokenCookie: BilibiliAccessTokenCookie? = null
|
private var accessTokenCookie: BilibiliAccessTokenCookie? = null
|
||||||
|
|
||||||
|
override fun latestUpdatesRequest(page: Int): Request {
|
||||||
|
val jsonPayload = buildJsonObject { put("day", dayOfWeek) }
|
||||||
|
val requestBody = jsonPayload.toString().toRequestBody(JSON_MEDIA_TYPE)
|
||||||
|
|
||||||
|
val newHeaders = headersBuilder()
|
||||||
|
.add("Content-Length", requestBody.contentLength().toString())
|
||||||
|
.add("Content-Type", requestBody.contentType().toString())
|
||||||
|
.set("Referer", "$baseUrl/schedule")
|
||||||
|
.build()
|
||||||
|
|
||||||
|
val apiUrl = "$baseUrl/$API_COMIC_V1_COMIC_ENDPOINT/GetSchedule".toHttpUrl().newBuilder()
|
||||||
|
.addCommonParameters()
|
||||||
|
.toString()
|
||||||
|
|
||||||
|
return POST(apiUrl, newHeaders, requestBody)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun latestUpdatesParse(response: Response): MangasPage {
|
||||||
|
val result = response.parseAs<BilibiliSearchDto>()
|
||||||
|
|
||||||
|
if (result.code != 0) {
|
||||||
|
return MangasPage(emptyList(), hasNextPage = false)
|
||||||
|
}
|
||||||
|
|
||||||
|
val comicList = result.data!!.list.map(::latestMangaFromObject)
|
||||||
|
|
||||||
|
return MangasPage(comicList, hasNextPage = false)
|
||||||
|
}
|
||||||
|
|
||||||
|
protected open fun latestMangaFromObject(comic: BilibiliComicDto): SManga = SManga.create().apply {
|
||||||
|
title = comic.title
|
||||||
|
thumbnail_url = comic.verticalCover + THUMBNAIL_RESOLUTION
|
||||||
|
url = "/detail/mc${comic.comicId}"
|
||||||
|
}
|
||||||
|
|
||||||
override fun chapterListParse(response: Response): List<SChapter> {
|
override fun chapterListParse(response: Response): List<SChapter> {
|
||||||
if (!signedIn) {
|
if (!signedIn) {
|
||||||
return super.chapterListParse(response)
|
return super.chapterListParse(response)
|
||||||
|
@ -4,12 +4,8 @@ import eu.kanade.tachiyomi.multisrc.bilibili.Bilibili
|
|||||||
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliComicDto
|
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliComicDto
|
||||||
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliIntl
|
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliIntl
|
||||||
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliTag
|
import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliTag
|
||||||
import eu.kanade.tachiyomi.multisrc.bilibili.SortFilter
|
|
||||||
import eu.kanade.tachiyomi.source.model.FilterList
|
|
||||||
import eu.kanade.tachiyomi.source.model.MangasPage
|
|
||||||
import eu.kanade.tachiyomi.source.model.SChapter
|
import eu.kanade.tachiyomi.source.model.SChapter
|
||||||
import okhttp3.Headers
|
import okhttp3.Headers
|
||||||
import okhttp3.Request
|
|
||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
|
|
||||||
class BilibiliManga : Bilibili(
|
class BilibiliManga : Bilibili(
|
||||||
@ -24,16 +20,6 @@ class BilibiliManga : Bilibili(
|
|||||||
add("User-Agent", DEFAULT_USER_AGENT)
|
add("User-Agent", DEFAULT_USER_AGENT)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun latestUpdatesRequest(page: Int): Request = searchMangaRequest(
|
|
||||||
page = page,
|
|
||||||
query = "",
|
|
||||||
filters = FilterList(
|
|
||||||
SortFilter("", getAllSortOptions(), defaultLatestSort)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun latestUpdatesParse(response: Response): MangasPage = searchMangaParse(response)
|
|
||||||
|
|
||||||
override fun chapterListParse(response: Response): List<SChapter> {
|
override fun chapterListParse(response: Response): List<SChapter> {
|
||||||
val result = response.parseAs<BilibiliComicDto>()
|
val result = response.parseAs<BilibiliComicDto>()
|
||||||
|
|
||||||
|
@ -89,40 +89,15 @@ abstract class Bilibili(
|
|||||||
|
|
||||||
override fun popularMangaParse(response: Response): MangasPage = searchMangaParse(response)
|
override fun popularMangaParse(response: Response): MangasPage = searchMangaParse(response)
|
||||||
|
|
||||||
override fun latestUpdatesRequest(page: Int): Request {
|
override fun latestUpdatesRequest(page: Int): Request = searchMangaRequest(
|
||||||
val jsonPayload = buildJsonObject { put("day", dayOfWeek) }
|
page = page,
|
||||||
val requestBody = jsonPayload.toString().toRequestBody(JSON_MEDIA_TYPE)
|
query = "",
|
||||||
|
filters = FilterList(
|
||||||
|
SortFilter("", getAllSortOptions(), defaultLatestSort)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
val newHeaders = headersBuilder()
|
override fun latestUpdatesParse(response: Response): MangasPage = searchMangaParse(response)
|
||||||
.add("Content-Length", requestBody.contentLength().toString())
|
|
||||||
.add("Content-Type", requestBody.contentType().toString())
|
|
||||||
.set("Referer", "$baseUrl/schedule")
|
|
||||||
.build()
|
|
||||||
|
|
||||||
val apiUrl = "$baseUrl/$API_COMIC_V1_COMIC_ENDPOINT/GetSchedule".toHttpUrl().newBuilder()
|
|
||||||
.addCommonParameters()
|
|
||||||
.toString()
|
|
||||||
|
|
||||||
return POST(apiUrl, newHeaders, requestBody)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun latestUpdatesParse(response: Response): MangasPage {
|
|
||||||
val result = response.parseAs<BilibiliSearchDto>()
|
|
||||||
|
|
||||||
if (result.code != 0) {
|
|
||||||
return MangasPage(emptyList(), hasNextPage = false)
|
|
||||||
}
|
|
||||||
|
|
||||||
val comicList = result.data!!.list.map(::latestMangaFromObject)
|
|
||||||
|
|
||||||
return MangasPage(comicList, hasNextPage = false)
|
|
||||||
}
|
|
||||||
|
|
||||||
protected open fun latestMangaFromObject(comic: BilibiliComicDto): SManga = SManga.create().apply {
|
|
||||||
title = comic.title
|
|
||||||
thumbnail_url = comic.verticalCover + THUMBNAIL_RESOLUTION
|
|
||||||
url = "/detail/mc${comic.comicId}"
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
||||||
if (query.startsWith(PREFIX_ID_SEARCH) && query.matches(ID_SEARCH_PATTERN)) {
|
if (query.startsWith(PREFIX_ID_SEARCH) && query.matches(ID_SEARCH_PATTERN)) {
|
||||||
|
@ -10,7 +10,7 @@ class BilibiliGenerator : ThemeSourceGenerator {
|
|||||||
|
|
||||||
override val themeClass = "Bilibili"
|
override val themeClass = "Bilibili"
|
||||||
|
|
||||||
override val baseVersionCode: Int = 6
|
override val baseVersionCode: Int = 7
|
||||||
|
|
||||||
override val sources = listOf(
|
override val sources = listOf(
|
||||||
MultiLang(
|
MultiLang(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user