From 4c93d035aaa779f8cd7b0cae9ee929273f6143d8 Mon Sep 17 00:00:00 2001
From: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
Date: Sun, 6 Nov 2022 22:15:58 -0300
Subject: [PATCH] Use schedule only in Bilibili Comics override (#14150)

* Use schedule only in Bilibili Comics.

* Fix unused inports.
---
 .../src/BilibiliComicsFactory.kt              | 38 +++++++++++++++++
 .../bilibilimanga/src/BilibiliManga.kt        | 14 -------
 .../tachiyomi/multisrc/bilibili/Bilibili.kt   | 41 ++++---------------
 .../multisrc/bilibili/BilibiliGenerator.kt    |  2 +-
 4 files changed, 47 insertions(+), 48 deletions(-)

diff --git a/multisrc/overrides/bilibili/bilibilicomics/src/BilibiliComicsFactory.kt b/multisrc/overrides/bilibili/bilibilicomics/src/BilibiliComicsFactory.kt
index fabd9bf27..22f2f3ad1 100644
--- a/multisrc/overrides/bilibili/bilibilicomics/src/BilibiliComicsFactory.kt
+++ b/multisrc/overrides/bilibili/bilibilicomics/src/BilibiliComicsFactory.kt
@@ -7,13 +7,16 @@ import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliComicDto
 import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliCredential
 import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliGetCredential
 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.BilibiliUnlockedEpisode
 import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliUserEpisodes
 import eu.kanade.tachiyomi.network.POST
 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.SChapter
+import eu.kanade.tachiyomi.source.model.SManga
 import kotlinx.serialization.decodeFromString
 import kotlinx.serialization.encodeToString
 import kotlinx.serialization.json.buildJsonObject
@@ -64,6 +67,41 @@ abstract class BilibiliComics(lang: String) : Bilibili(
 
     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> {
         if (!signedIn) {
             return super.chapterListParse(response)
diff --git a/multisrc/overrides/bilibili/bilibilimanga/src/BilibiliManga.kt b/multisrc/overrides/bilibili/bilibilimanga/src/BilibiliManga.kt
index a52ea71f9..3f6779243 100644
--- a/multisrc/overrides/bilibili/bilibilimanga/src/BilibiliManga.kt
+++ b/multisrc/overrides/bilibili/bilibilimanga/src/BilibiliManga.kt
@@ -4,12 +4,8 @@ import eu.kanade.tachiyomi.multisrc.bilibili.Bilibili
 import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliComicDto
 import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliIntl
 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 okhttp3.Headers
-import okhttp3.Request
 import okhttp3.Response
 
 class BilibiliManga : Bilibili(
@@ -24,16 +20,6 @@ class BilibiliManga : Bilibili(
         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> {
         val result = response.parseAs<BilibiliComicDto>()
 
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/Bilibili.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/Bilibili.kt
index 2cfe86e44..62906a1b9 100644
--- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/Bilibili.kt
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/Bilibili.kt
@@ -89,40 +89,15 @@ abstract class Bilibili(
 
     override fun popularMangaParse(response: Response): MangasPage = searchMangaParse(response)
 
-    override fun latestUpdatesRequest(page: Int): Request {
-        val jsonPayload = buildJsonObject { put("day", dayOfWeek) }
-        val requestBody = jsonPayload.toString().toRequestBody(JSON_MEDIA_TYPE)
+    override fun latestUpdatesRequest(page: Int): Request = searchMangaRequest(
+        page = page,
+        query = "",
+        filters = FilterList(
+            SortFilter("", getAllSortOptions(), defaultLatestSort)
+        )
+    )
 
-        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 latestUpdatesParse(response: Response): MangasPage = searchMangaParse(response)
 
     override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
         if (query.startsWith(PREFIX_ID_SEARCH) && query.matches(ID_SEARCH_PATTERN)) {
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliGenerator.kt
index daec2e648..cfe8d7565 100644
--- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliGenerator.kt
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliGenerator.kt
@@ -10,7 +10,7 @@ class BilibiliGenerator : ThemeSourceGenerator {
 
     override val themeClass = "Bilibili"
 
-    override val baseVersionCode: Int = 6
+    override val baseVersionCode: Int = 7
 
     override val sources = listOf(
         MultiLang(