From ef7a5f6faa41c435447533e4041888a4ca824b2c Mon Sep 17 00:00:00 2001 From: tanaka-shizuku3 Date: Sat, 30 Aug 2025 19:25:00 +0800 Subject: [PATCH] Dm5: Add mirror selection in preference (#10330) * Dm5: Add mirror selection in preference * Add MIRROR_PREF constant --- src/zh/dm5/build.gradle | 2 +- .../eu/kanade/tachiyomi/extension/zh/dm5/Dm5.kt | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/zh/dm5/build.gradle b/src/zh/dm5/build.gradle index d1c90cf71..5a7c51984 100644 --- a/src/zh/dm5/build.gradle +++ b/src/zh/dm5/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Dm5' extClass = '.Dm5' - extVersionCode = 5 + extVersionCode = 6 isNsfw = true } diff --git a/src/zh/dm5/src/eu/kanade/tachiyomi/extension/zh/dm5/Dm5.kt b/src/zh/dm5/src/eu/kanade/tachiyomi/extension/zh/dm5/Dm5.kt index f55177347..d7f1bbb48 100644 --- a/src/zh/dm5/src/eu/kanade/tachiyomi/extension/zh/dm5/Dm5.kt +++ b/src/zh/dm5/src/eu/kanade/tachiyomi/extension/zh/dm5/Dm5.kt @@ -1,6 +1,7 @@ package eu.kanade.tachiyomi.extension.zh.dm5 import android.content.SharedPreferences +import androidx.preference.ListPreference import androidx.preference.PreferenceScreen import androidx.preference.SwitchPreferenceCompat import eu.kanade.tachiyomi.lib.unpacker.Unpacker @@ -26,12 +27,12 @@ class Dm5 : ParsedHttpSource(), ConfigurableSource { override val lang = "zh" override val supportsLatest = true override val name = "动漫屋" - override val baseUrl = "https://www.dm5.cn" override val client: OkHttpClient = network.cloudflareClient.newBuilder() .addInterceptor(CommentsInterceptor) .build() private val preferences: SharedPreferences = getPreferences() + override val baseUrl = preferences.getString(MIRROR_PREF, MIRROR_ENTRIES[0])!! // Some mangas are blocked without this override fun headersBuilder() = super.headersBuilder().set("Accept-Language", "zh-TW") @@ -186,6 +187,13 @@ class Dm5 : ParsedHttpSource(), ConfigurableSource { } override fun setupPreferenceScreen(screen: PreferenceScreen) { + val mirrorPreference = ListPreference(screen.context).apply { + key = MIRROR_PREF + title = "使用镜像网址" + entries = MIRROR_ENTRIES + entryValues = MIRROR_ENTRIES + setDefaultValue(MIRROR_ENTRIES[0]) + } val chapterCommentsPreference = SwitchPreferenceCompat(screen.context).apply { key = CHAPTER_COMMENTS_PREF title = "章末吐槽页" @@ -197,11 +205,17 @@ class Dm5 : ParsedHttpSource(), ConfigurableSource { title = "依照上傳時間排序章節" setDefaultValue(false) } + screen.addPreference(mirrorPreference) screen.addPreference(chapterCommentsPreference) screen.addPreference(sortChapterPreference) } companion object { + private val MIRROR_ENTRIES get() = arrayOf( + "https://www.dm5.cn", + "https://www.dm5.com", + ) + private const val MIRROR_PREF = "mirror" private const val CHAPTER_COMMENTS_PREF = "chapterComments" private const val SORT_CHAPTER_PREF = "sortChapter" private val dateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.ROOT)