Change latest API endpoint in Bilibili (#8445)

* Change latest API endpoint in Bilibili.

* Remove unused DTOs.
This commit is contained in:
Alessandro Jean 2021-08-07 14:00:07 -03:00 committed by GitHub
parent 1b9ccf1b0f
commit 53c9141f57
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 22 deletions

View File

@ -6,7 +6,7 @@ ext {
extName = 'Bilibili Comics' extName = 'Bilibili Comics'
pkgNameSuffix = 'en.bilibilicomics' pkgNameSuffix = 'en.bilibilicomics'
extClass = '.BilibiliComics' extClass = '.BilibiliComics'
extVersionCode = 6 extVersionCode = 7
libVersion = '1.2' libVersion = '1.2'
containsNsfw = true containsNsfw = true
} }

View File

@ -29,7 +29,6 @@ import rx.Observable
import uy.kohesive.injekt.injectLazy import uy.kohesive.injekt.injectLazy
import java.text.ParseException import java.text.ParseException
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale import java.util.Locale
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
@ -55,9 +54,6 @@ class BilibiliComics : HttpSource() {
private val json: Json by injectLazy() private val json: Json by injectLazy()
private val day: Int
get() = Calendar.getInstance().get(Calendar.DAY_OF_WEEK) - 1
override fun popularMangaRequest(page: Int): Request { override fun popularMangaRequest(page: Int): Request {
val requestPayload = buildJsonObject { val requestPayload = buildJsonObject {
put("area_id", -1) put("area_id", -1)
@ -103,7 +99,16 @@ class BilibiliComics : HttpSource() {
} }
override fun latestUpdatesRequest(page: Int): Request { override fun latestUpdatesRequest(page: Int): Request {
val requestPayload = buildJsonObject { put("day", day) } val requestPayload = buildJsonObject {
put("area_id", -1)
put("is_finish", -1)
put("is_free", 1)
put("order", 1)
put("page_num", page)
put("page_size", POPULAR_PER_PAGE)
put("style_id", -1)
put("style_prefer", "[]")
}
val requestBody = requestPayload.toString().toRequestBody(JSON_MEDIA_TYPE) val requestBody = requestPayload.toString().toRequestBody(JSON_MEDIA_TYPE)
val newHeaders = headersBuilder() val newHeaders = headersBuilder()
@ -112,29 +117,29 @@ class BilibiliComics : HttpSource() {
.build() .build()
return POST( return POST(
"$baseUrl/$BASE_API_ENDPOINT/GetSchedule?device=pc&platform=web", "$baseUrl/$BASE_API_ENDPOINT/ClassPage?device=pc&platform=web",
headers = newHeaders, headers = newHeaders,
body = requestBody body = requestBody
) )
} }
override fun latestUpdatesParse(response: Response): MangasPage { override fun latestUpdatesParse(response: Response): MangasPage {
val result = json.decodeFromString<BilibiliResultDto<BilibiliScheduleDto>>(response.body!!.string()) val result = json.decodeFromString<BilibiliResultDto<List<BilibiliComicDto>>>(response.body!!.string())
if (result.code != 0) { if (result.code != 0) {
return MangasPage(emptyList(), hasNextPage = false) return MangasPage(emptyList(), hasNextPage = false)
} }
val comicList = result.data!!.list val comicList = result.data!!.map(::latestMangaFromObject)
.map(::latestMangaFromObject) val hasNextPage = comicList.size == POPULAR_PER_PAGE
return MangasPage(comicList, hasNextPage = false) return MangasPage(comicList, hasNextPage)
} }
private fun latestMangaFromObject(comic: BilibiliComicDto): SManga = SManga.create().apply { private fun latestMangaFromObject(comic: BilibiliComicDto): SManga = SManga.create().apply {
title = comic.title title = comic.title
thumbnail_url = comic.verticalCover thumbnail_url = comic.verticalCover
url = "/detail/mc${comic.comicId}" url = "/detail/mc${comic.seasonId}"
} }
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {

View File

@ -10,16 +10,6 @@ data class BilibiliResultDto<T>(
@SerialName("msg") val message: String = "" @SerialName("msg") val message: String = ""
) )
@Serializable
data class BilibiliFeaturedDto(
@SerialName("roll_six_comics") val rollSixComics: List<BilibiliComicDto> = emptyList()
)
@Serializable
data class BilibiliScheduleDto(
val list: List<BilibiliComicDto> = emptyList()
)
@Serializable @Serializable
data class BilibiliSearchDto( data class BilibiliSearchDto(
val list: List<BilibiliComicDto> = emptyList() val list: List<BilibiliComicDto> = emptyList()