diff --git a/.run/BilibiliGenerator.run.xml b/.run/BilibiliGenerator.run.xml new file mode 100644 index 000000000..acb5cd96d --- /dev/null +++ b/.run/BilibiliGenerator.run.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/src/all/bilibili/AndroidManifest.xml b/multisrc/overrides/bilibili/bilibilicomics/AndroidManifest.xml similarity index 76% rename from src/all/bilibili/AndroidManifest.xml rename to multisrc/overrides/bilibili/bilibilicomics/AndroidManifest.xml index 3ae58c91b..47787bc19 100644 --- a/src/all/bilibili/AndroidManifest.xml +++ b/multisrc/overrides/bilibili/bilibilicomics/AndroidManifest.xml @@ -4,7 +4,7 @@ @@ -33,17 +33,7 @@ android:host="m.bilibilicomics.com" android:pathPattern="/detail/mc..*" android:scheme="https" /> - - - - - + \ No newline at end of file diff --git a/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliComics.kt b/multisrc/overrides/bilibili/bilibilicomics/src/BilibiliComicsFactory.kt similarity index 70% rename from src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliComics.kt rename to multisrc/overrides/bilibili/bilibilicomics/src/BilibiliComicsFactory.kt index 69f613a35..d3f680679 100644 --- a/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliComics.kt +++ b/multisrc/overrides/bilibili/bilibilicomics/src/BilibiliComicsFactory.kt @@ -1,6 +1,17 @@ -package eu.kanade.tachiyomi.extension.all.bilibili +package eu.kanade.tachiyomi.extension.all.bilibilicomics +import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor +import eu.kanade.tachiyomi.multisrc.bilibili.Bilibili +import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliAccessToken +import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliAccessTokenCookie +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.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.Page import eu.kanade.tachiyomi.source.model.SChapter import kotlinx.serialization.decodeFromString @@ -17,13 +28,26 @@ import okio.Buffer import java.io.IOException import java.net.URLDecoder +class BilibiliComicsFactory : SourceFactory { + override fun createSources() = listOf( + BilibiliComicsEn(), + BilibiliComicsCn(), + BilibiliComicsId(), + ) +} + abstract class BilibiliComics(lang: String) : Bilibili( "BILIBILI COMICS", "https://www.bilibilicomics.com", lang ) { + override val client: OkHttpClient = super.client.newBuilder() .addInterceptor(::signedInIntercept) + .addInterceptor(::expiredTokenIntercept) + .addInterceptor(SpecificHostRateLimitInterceptor(baseUrl.toHttpUrl(), 1)) + .addInterceptor(SpecificHostRateLimitInterceptor(CDN_URL.toHttpUrl(), 2)) + .addInterceptor(SpecificHostRateLimitInterceptor(COVER_CDN_URL.toHttpUrl(), 2)) .build() override val signedIn: Boolean @@ -246,3 +270,74 @@ abstract class BilibiliComics(lang: String) : Bilibili( "Failed to get the credential to read the chapter." } } + +class BilibiliComicsEn : BilibiliComics("en") { + + override fun getAllGenres(): Array = arrayOf( + BilibiliTag("All", -1), + BilibiliTag("Action", 19), + BilibiliTag("Adventure", 22), + BilibiliTag("BL", 3), + BilibiliTag("Comedy", 14), + BilibiliTag("Eastern", 30), + BilibiliTag("Fantasy", 11), + BilibiliTag("GL", 16), + BilibiliTag("Harem", 15), + BilibiliTag("Historical", 12), + BilibiliTag("Horror", 23), + BilibiliTag("Mistery", 17), + BilibiliTag("Romance", 13), + BilibiliTag("Slice of Life", 21), + BilibiliTag("Suspense", 41), + BilibiliTag("Teen", 20) + ) +} + +class BilibiliComicsCn : BilibiliComics("zh-Hans") { + + override fun getAllSortOptions(): Array = arrayOf("为你推荐", "人气推荐", "更新时间") + + override fun getAllStatus(): Array = arrayOf("全部", "连载中", "已完结") + + override fun getAllPrices(): Array = arrayOf("全部", "免费", "付费") + + override fun getAllGenres(): Array = arrayOf( + BilibiliTag("全部", -1), + BilibiliTag("校园", 18), + BilibiliTag("都市", 9), + BilibiliTag("耽美", 3), + BilibiliTag("少女", 20), + BilibiliTag("恋爱", 13), + BilibiliTag("奇幻", 11), + BilibiliTag("热血", 19), + BilibiliTag("冒险", 22), + BilibiliTag("古风", 12), + BilibiliTag("百合", 16), + BilibiliTag("玄幻", 30), + BilibiliTag("悬疑", 41), + BilibiliTag("科幻", 8) + ) +} + +class BilibiliComicsId : BilibiliComics("id") { + + override fun getAllSortOptions(): Array = arrayOf("Kamu Mungkin Suka", "Populer", "Terbaru") + + override fun getAllStatus(): Array = arrayOf("Semua", "Berlangsung", "Tamat") + + override fun getAllPrices(): Array = arrayOf("Semua", "Bebas", "Dibayar") + + override fun getAllGenres(): Array = arrayOf( + BilibiliTag("Semua", -1), + BilibiliTag("Aksi", 19), + BilibiliTag("Fantasi Timur", 30), + BilibiliTag("Fantasi", 11), + BilibiliTag("Historis", 12), + BilibiliTag("Horror", 23), + BilibiliTag("Kampus", 18), + BilibiliTag("Komedi", 14), + BilibiliTag("Menegangkan", 41), + BilibiliTag("Remaja", 20), + BilibiliTag("Romantis", 13) + ) +} diff --git a/multisrc/overrides/bilibili/bilibilimanga/AndroidManifest.xml b/multisrc/overrides/bilibili/bilibilimanga/AndroidManifest.xml new file mode 100644 index 000000000..36b5bd4bf --- /dev/null +++ b/multisrc/overrides/bilibili/bilibilimanga/AndroidManifest.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + diff --git a/multisrc/overrides/bilibili/bilibilimanga/src/BilibiliManga.kt b/multisrc/overrides/bilibili/bilibilimanga/src/BilibiliManga.kt new file mode 100644 index 000000000..c2767cb59 --- /dev/null +++ b/multisrc/overrides/bilibili/bilibilimanga/src/BilibiliManga.kt @@ -0,0 +1,64 @@ +package eu.kanade.tachiyomi.extension.zh.bilibilimanga + +import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor +import eu.kanade.tachiyomi.multisrc.bilibili.Bilibili +import eu.kanade.tachiyomi.multisrc.bilibili.BilibiliTag +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.OkHttpClient + +class BilibiliManga : Bilibili( + "哔哩哔哩漫画", + "https://manga.bilibili.com", + "zh-Hans" +) { + + override val id: Long = 3561131545129718586 + + override val client: OkHttpClient = super.client.newBuilder() + .addInterceptor(::expiredTokenIntercept) + .addInterceptor(SpecificHostRateLimitInterceptor(baseUrl.toHttpUrl(), 1)) + .addInterceptor(SpecificHostRateLimitInterceptor(CDN_URL.toHttpUrl(), 2)) + .addInterceptor(SpecificHostRateLimitInterceptor(COVER_CDN_URL.toHttpUrl(), 2)) + .build() + + override val defaultPopularSort: Int = 0 + + override val defaultLatestSort: Int = 1 + + override fun getAllStatus(): Array = arrayOf("全部", "连载", "完结") + + override fun getAllSortOptions(): Array = arrayOf("人气推荐", "更新时间", "追漫人数", "上架时间") + + override fun getAllPrices(): Array = arrayOf("全部", "免费", "付费", "等就免费") + + override fun getAllGenres(): Array = arrayOf( + BilibiliTag("全部", -1), + BilibiliTag("竞技", 1034), + BilibiliTag("冒险", 1013), + BilibiliTag("热血", 999), + BilibiliTag("搞笑", 994), + BilibiliTag("恋爱", 995), + BilibiliTag("少女", 1026), + BilibiliTag("日常", 1020), + BilibiliTag("校园", 1001), + BilibiliTag("治愈", 1007), + BilibiliTag("古风", 997), + BilibiliTag("玄幻", 1016), + BilibiliTag("奇幻", 998), + BilibiliTag("惊奇", 996), + BilibiliTag("悬疑", 1023), + BilibiliTag("都市", 1002), + BilibiliTag("剧情", 1030), + BilibiliTag("总裁", 1004), + BilibiliTag("科幻", 1015), + BilibiliTag("正能量", 1028), + ) + + override fun getAllAreas(): Array = arrayOf( + BilibiliTag("全部", -1), + BilibiliTag("大陆", 1), + BilibiliTag("日本", 2), + BilibiliTag("韩国", 6), + BilibiliTag("其他", 5), + ) +} diff --git a/multisrc/overrides/bilibili/default/AndroidManifest.xml b/multisrc/overrides/bilibili/default/AndroidManifest.xml new file mode 100644 index 000000000..28803fa65 --- /dev/null +++ b/multisrc/overrides/bilibili/default/AndroidManifest.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/multisrc/overrides/bilibili/default/additional.gradle.kts b/multisrc/overrides/bilibili/default/additional.gradle.kts new file mode 100644 index 000000000..10beb8157 --- /dev/null +++ b/multisrc/overrides/bilibili/default/additional.gradle.kts @@ -0,0 +1,4 @@ + +dependencies { + implementation project(':lib-ratelimit') +} diff --git a/src/all/bilibili/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/bilibili/default/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from src/all/bilibili/res/mipmap-hdpi/ic_launcher.png rename to multisrc/overrides/bilibili/default/res/mipmap-hdpi/ic_launcher.png diff --git a/src/all/bilibili/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/bilibili/default/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from src/all/bilibili/res/mipmap-mdpi/ic_launcher.png rename to multisrc/overrides/bilibili/default/res/mipmap-mdpi/ic_launcher.png diff --git a/src/all/bilibili/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/bilibili/default/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from src/all/bilibili/res/mipmap-xhdpi/ic_launcher.png rename to multisrc/overrides/bilibili/default/res/mipmap-xhdpi/ic_launcher.png diff --git a/src/all/bilibili/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/bilibili/default/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from src/all/bilibili/res/mipmap-xxhdpi/ic_launcher.png rename to multisrc/overrides/bilibili/default/res/mipmap-xxhdpi/ic_launcher.png diff --git a/src/all/bilibili/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/bilibili/default/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from src/all/bilibili/res/mipmap-xxxhdpi/ic_launcher.png rename to multisrc/overrides/bilibili/default/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/src/all/bilibili/res/web_hi_res_512.png b/multisrc/overrides/bilibili/default/res/web_hi_res_512.png similarity index 100% rename from src/all/bilibili/res/web_hi_res_512.png rename to multisrc/overrides/bilibili/default/res/web_hi_res_512.png diff --git a/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/Bilibili.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/Bilibili.kt similarity index 96% rename from src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/Bilibili.kt rename to multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/Bilibili.kt index e8170c057..5dd90d6b5 100644 --- a/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/Bilibili.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/Bilibili.kt @@ -1,10 +1,9 @@ -package eu.kanade.tachiyomi.extension.all.bilibili +package eu.kanade.tachiyomi.multisrc.bilibili import android.app.Application import android.content.SharedPreferences import androidx.preference.ListPreference import androidx.preference.PreferenceScreen -import eu.kanade.tachiyomi.lib.ratelimit.SpecificHostRateLimitInterceptor import eu.kanade.tachiyomi.network.POST import eu.kanade.tachiyomi.network.asObservableSuccess import eu.kanade.tachiyomi.source.ConfigurableSource @@ -44,12 +43,7 @@ abstract class Bilibili( override val supportsLatest = true - override val client: OkHttpClient = network.cloudflareClient.newBuilder() - .addInterceptor(::expiredTokenIntercept) - .addInterceptor(SpecificHostRateLimitInterceptor(baseUrl.toHttpUrl(), 1)) - .addInterceptor(SpecificHostRateLimitInterceptor(CDN_URL.toHttpUrl(), 2)) - .addInterceptor(SpecificHostRateLimitInterceptor(COVER_CDN_URL.toHttpUrl(), 2)) - .build() + override val client: OkHttpClient = network.cloudflareClient override fun headersBuilder(): Headers.Builder = Headers.Builder() .add("Accept", ACCEPT_JSON) @@ -516,7 +510,7 @@ abstract class Bilibili( return FilterList(filters) } - private fun expiredTokenIntercept(chain: Interceptor.Chain): Response { + protected fun expiredTokenIntercept(chain: Interceptor.Chain): Response { val response = chain.proceed(chain.request()) // Get a new image token if the current one expired. @@ -562,8 +556,8 @@ abstract class Bilibili( } companion object { - private const val CDN_URL = "https://manga.hdslb.com" - private const val COVER_CDN_URL = "https://i0.hdslb.com" + const val CDN_URL = "https://manga.hdslb.com" + const val COVER_CDN_URL = "https://i0.hdslb.com" const val BASE_API_COMIC_ENDPOINT = "twirp/comic.v1.Comic" const val BASE_API_USER_ENDPOINT = "twirp/comic.v1.User" diff --git a/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliDto.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliDto.kt similarity index 98% rename from src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliDto.kt rename to multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliDto.kt index 5d34527c5..f83ff365c 100644 --- a/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliDto.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliDto.kt @@ -1,4 +1,4 @@ -package eu.kanade.tachiyomi.extension.all.bilibili +package eu.kanade.tachiyomi.multisrc.bilibili import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliFilters.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliFilters.kt similarity index 94% rename from src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliFilters.kt rename to multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliFilters.kt index 9905c8cf2..74ffc874c 100644 --- a/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliFilters.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliFilters.kt @@ -1,4 +1,4 @@ -package eu.kanade.tachiyomi.extension.all.bilibili +package eu.kanade.tachiyomi.multisrc.bilibili import eu.kanade.tachiyomi.source.model.Filter 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 new file mode 100644 index 000000000..ea0f2acc0 --- /dev/null +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliGenerator.kt @@ -0,0 +1,26 @@ +package eu.kanade.tachiyomi.multisrc.bilibili + +import generator.ThemeSourceData.MultiLang +import generator.ThemeSourceData.SingleLang +import generator.ThemeSourceGenerator + +class BilibiliGenerator : ThemeSourceGenerator { + + override val themePkg = "bilibili" + + override val themeClass = "Bilibili" + + override val baseVersionCode: Int = 1 + + override val sources = listOf( + MultiLang("BILIBILI COMICS", "https://www.bilibilicomics.com", listOf("en", "zh-Hans", "id"), className = "BilibiliComicsFactory"), + SingleLang("BILIBILI MANGA", "https://manga.bilibili.com", "zh-Hans", className = "BilibiliManga") + ) + + companion object { + @JvmStatic + fun main(args: Array) { + BilibiliGenerator().createAll() + } + } +} diff --git a/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliUrlActivity.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliUrlActivity.kt similarity index 96% rename from src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliUrlActivity.kt rename to multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliUrlActivity.kt index d428c148d..eeb968411 100644 --- a/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliUrlActivity.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/BilibiliUrlActivity.kt @@ -1,4 +1,4 @@ -package eu.kanade.tachiyomi.extension.all.bilibili +package eu.kanade.tachiyomi.multisrc.bilibili import android.app.Activity import android.content.ActivityNotFoundException diff --git a/src/all/bilibili/README.md b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/README.md similarity index 94% rename from src/all/bilibili/README.md rename to multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/README.md index b20de4a6f..003a4b3bf 100644 --- a/src/all/bilibili/README.md +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/bilibili/README.md @@ -5,7 +5,7 @@ Table of Content - [Why are some chapters missing?](#why-are-some-chapters-missing) - [Guides](#Guides) - [Reading already paid chapters](#reading-already-paid-chapters) - + Don't find the question you are looking for? Go check out our general FAQs and Guides over at [Extension FAQ] or [Getting Started]. @@ -36,8 +36,8 @@ Follow the following steps to be able to sign in and get access to them: #### Observations - Sign in with your Google account is not supported due to WebView restrictions - access that Google have. You need to have a simple account in order to be able - to login via WebView. + access that Google have. **You need to have a simple account in order to be able + to login via WebView**. - You may sometime face the *"Failed to refresh the token"* error. To fix it, you just need to open the WebView, await for the website to completely load. After that, you can close the WebView and try again. diff --git a/src/all/bilibili/build.gradle b/src/all/bilibili/build.gradle deleted file mode 100644 index 676128839..000000000 --- a/src/all/bilibili/build.gradle +++ /dev/null @@ -1,16 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlinx-serialization' - -ext { - extName = 'BILIBILI' - pkgNameSuffix = 'all.bilibili' - extClass = '.BilibiliFactory' - extVersionCode = 7 -} - -dependencies { - implementation project(':lib-ratelimit') -} - -apply from: "$rootDir/common.gradle" diff --git a/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliFactory.kt b/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliFactory.kt deleted file mode 100644 index ca059bb2b..000000000 --- a/src/all/bilibili/src/eu/kanade/tachiyomi/extension/all/bilibili/BilibiliFactory.kt +++ /dev/null @@ -1,134 +0,0 @@ -package eu.kanade.tachiyomi.extension.all.bilibili - -import eu.kanade.tachiyomi.source.Source -import eu.kanade.tachiyomi.source.SourceFactory - -class BilibiliFactory : SourceFactory { - override fun createSources(): List = listOf( - BilibiliComicsEn(), - BilibiliComicsCn(), - BilibiliComicsId(), - BilibiliManga() - ) -} - -class BilibiliComicsEn : BilibiliComics("en") { - - override fun getAllGenres(): Array = arrayOf( - BilibiliTag("All", -1), - BilibiliTag("Action", 19), - BilibiliTag("Adventure", 22), - BilibiliTag("BL", 3), - BilibiliTag("Comedy", 14), - BilibiliTag("Eastern", 30), - BilibiliTag("Fantasy", 11), - BilibiliTag("GL", 16), - BilibiliTag("Harem", 15), - BilibiliTag("Historical", 12), - BilibiliTag("Horror", 23), - BilibiliTag("Mistery", 17), - BilibiliTag("Romance", 13), - BilibiliTag("Slice of Life", 21), - BilibiliTag("Suspense", 41), - BilibiliTag("Teen", 20) - ) -} - -class BilibiliComicsCn : BilibiliComics("zh-Hans") { - - override fun getAllSortOptions(): Array = arrayOf("为你推荐", "人气推荐", "更新时间") - - override fun getAllStatus(): Array = arrayOf("全部", "连载中", "已完结") - - override fun getAllPrices(): Array = arrayOf("全部", "免费", "付费") - - override fun getAllGenres(): Array = arrayOf( - BilibiliTag("全部", -1), - BilibiliTag("校园", 18), - BilibiliTag("都市", 9), - BilibiliTag("耽美", 3), - BilibiliTag("少女", 20), - BilibiliTag("恋爱", 13), - BilibiliTag("奇幻", 11), - BilibiliTag("热血", 19), - BilibiliTag("冒险", 22), - BilibiliTag("古风", 12), - BilibiliTag("百合", 16), - BilibiliTag("玄幻", 30), - BilibiliTag("悬疑", 41), - BilibiliTag("科幻", 8) - ) -} - -class BilibiliComicsId : BilibiliComics("id") { - - override fun getAllSortOptions(): Array = arrayOf("Kamu Mungkin Suka", "Populer", "Terbaru") - - override fun getAllStatus(): Array = arrayOf("Semua", "Berlangsung", "Tamat") - - override fun getAllPrices(): Array = arrayOf("Semua", "Bebas", "Dibayar") - - override fun getAllGenres(): Array = arrayOf( - BilibiliTag("Semua", -1), - BilibiliTag("Aksi", 19), - BilibiliTag("Fantasi Timur", 30), - BilibiliTag("Fantasi", 11), - BilibiliTag("Historis", 12), - BilibiliTag("Horror", 23), - BilibiliTag("Kampus", 18), - BilibiliTag("Komedi", 14), - BilibiliTag("Menegangkan", 41), - BilibiliTag("Remaja", 20), - BilibiliTag("Romantis", 13) - ) -} - -class BilibiliManga : Bilibili( - "哔哩哔哩漫画", - "https://manga.bilibili.com", - "zh-Hans" -) { - - override val id: Long = 3561131545129718586 - - override val defaultPopularSort: Int = 0 - - override val defaultLatestSort: Int = 1 - - override fun getAllStatus(): Array = arrayOf("全部", "连载", "完结") - - override fun getAllSortOptions(): Array = arrayOf("人气推荐", "更新时间", "追漫人数", "上架时间") - - override fun getAllPrices(): Array = arrayOf("全部", "免费", "付费", "等就免费") - - override fun getAllGenres(): Array = arrayOf( - BilibiliTag("全部", -1), - BilibiliTag("竞技", 1034), - BilibiliTag("冒险", 1013), - BilibiliTag("热血", 999), - BilibiliTag("搞笑", 994), - BilibiliTag("恋爱", 995), - BilibiliTag("少女", 1026), - BilibiliTag("日常", 1020), - BilibiliTag("校园", 1001), - BilibiliTag("治愈", 1007), - BilibiliTag("古风", 997), - BilibiliTag("玄幻", 1016), - BilibiliTag("奇幻", 998), - BilibiliTag("惊奇", 996), - BilibiliTag("悬疑", 1023), - BilibiliTag("都市", 1002), - BilibiliTag("剧情", 1030), - BilibiliTag("总裁", 1004), - BilibiliTag("科幻", 1015), - BilibiliTag("正能量", 1028), - ) - - override fun getAllAreas(): Array = arrayOf( - BilibiliTag("全部", -1), - BilibiliTag("大陆", 1), - BilibiliTag("日本", 2), - BilibiliTag("韩国", 6), - BilibiliTag("其他", 5), - ) -}