From 28f152a029aeba25f6d1ca497c1a16e534574402 Mon Sep 17 00:00:00 2001 From: Eshlender <35057681+e-shl@users.noreply.github.com> Date: Sat, 1 Feb 2025 18:24:09 +0500 Subject: [PATCH] [RU]Desu new domain (#7283) * [RU]Desu new domain * no lazy * Update Desu.kt --------- Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com> --- src/ru/desu/build.gradle | 2 +- .../tachiyomi/extension/ru/desu/Desu.kt | 41 ++++++++++++++++--- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/ru/desu/build.gradle b/src/ru/desu/build.gradle index 111819c99..904ccee78 100644 --- a/src/ru/desu/build.gradle +++ b/src/ru/desu/build.gradle @@ -1,7 +1,7 @@ ext { extName = 'Desu' extClass = '.Desu' - extVersionCode = 25 + extVersionCode = 26 } apply from: "$rootDir/common.gradle" diff --git a/src/ru/desu/src/eu/kanade/tachiyomi/extension/ru/desu/Desu.kt b/src/ru/desu/src/eu/kanade/tachiyomi/extension/ru/desu/Desu.kt index 9a3362430..f114efeca 100644 --- a/src/ru/desu/src/eu/kanade/tachiyomi/extension/ru/desu/Desu.kt +++ b/src/ru/desu/src/eu/kanade/tachiyomi/extension/ru/desu/Desu.kt @@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.extension.ru.desu import android.app.Application import android.content.SharedPreferences import android.widget.Toast +import androidx.preference.EditTextPreference import androidx.preference.ListPreference import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.asObservableSuccess @@ -40,7 +41,22 @@ class Desu : ConfigurableSource, HttpSource() { override val id: Long = 6684416167758830305 - override val baseUrl = "https://desu.win" + private val preferences: SharedPreferences = + Injekt.get().getSharedPreferences("source_$id", 0x0000) + + init { + preferences.getString(DEFAULT_DOMAIN_PREF, null).let { prefDefaultDomain -> + if (prefDefaultDomain != DOMAIN_DEFAULT) { + preferences.edit() + .putString(DOMAIN_TITLE, DOMAIN_DEFAULT) + .putString(DEFAULT_DOMAIN_PREF, DOMAIN_DEFAULT) + .apply() + } + } + } + + private var domain: String = preferences.getString(DOMAIN_TITLE, DOMAIN_DEFAULT)!! + override val baseUrl: String = domain override val lang = "ru" @@ -48,10 +64,6 @@ class Desu : ConfigurableSource, HttpSource() { private val json: Json by injectLazy() - private val preferences: SharedPreferences by lazy { - Injekt.get().getSharedPreferences("source_$id", 0x0000) - } - override fun headersBuilder() = Headers.Builder().apply { add("User-Agent", "Tachiyomi") add("Referer", baseUrl) @@ -349,6 +361,7 @@ class Desu : ConfigurableSource, HttpSource() { ) private var isEng: String? = preferences.getString(LANGUAGE_PREF, "eng") + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { val titleLanguagePref = ListPreference(screen.context).apply { key = LANGUAGE_PREF @@ -363,13 +376,31 @@ class Desu : ConfigurableSource, HttpSource() { true } } + val domainDesuPref = EditTextPreference(screen.context).apply { + key = DOMAIN_TITLE + title = DOMAIN_TITLE + summary = domain + setDefaultValue(DOMAIN_DEFAULT) + dialogTitle = DOMAIN_TITLE + setOnPreferenceChangeListener { _, _ -> + val warning = "Для смены домена необходимо перезапустить приложение с полной остановкой." + Toast.makeText(screen.context, warning, Toast.LENGTH_LONG).show() + true + } + } screen.addPreference(titleLanguagePref) + screen.addPreference(domainDesuPref) } + companion object { const val PREFIX_SLUG_SEARCH = "slug:" private const val LANGUAGE_PREF = "DesuTitleLanguage" private const val API_URL = "/manga/api" + + private const val DOMAIN_TITLE = "Домен" + private const val DEFAULT_DOMAIN_PREF = "default_domain" + private const val DOMAIN_DEFAULT = "https://desu.store" } }