From 603fd58fff6f415212ed6f2c044734ee4f182215 Mon Sep 17 00:00:00 2001 From: Chopper <156493704+choppeh@users.noreply.github.com> Date: Tue, 8 Jul 2025 14:30:42 -0300 Subject: [PATCH] TresDaosScan: Update domain and add url editor (#9589) Update domain and add url editor --- src/es/tresdaosscan/build.gradle | 4 +- .../extension/es/tresdaosscan/TresDaosScan.kt | 68 +++++++++++++++++-- 2 files changed, 64 insertions(+), 8 deletions(-) diff --git a/src/es/tresdaosscan/build.gradle b/src/es/tresdaosscan/build.gradle index 80070fcf2..aff460d77 100644 --- a/src/es/tresdaosscan/build.gradle +++ b/src/es/tresdaosscan/build.gradle @@ -2,8 +2,8 @@ ext { extName = 'Tres Daos Scan' extClass = '.TresDaosScan' themePkg = 'mangathemesia' - baseUrl = 'https://threedaos.drublood.com' - overrideVersionCode = 10 + baseUrl = 'https://threedaos.zdrz.xyz' + overrideVersionCode = 11 isNsfw = false } diff --git a/src/es/tresdaosscan/src/eu/kanade/tachiyomi/extension/es/tresdaosscan/TresDaosScan.kt b/src/es/tresdaosscan/src/eu/kanade/tachiyomi/extension/es/tresdaosscan/TresDaosScan.kt index 75031aa6d..55aae9f36 100644 --- a/src/es/tresdaosscan/src/eu/kanade/tachiyomi/extension/es/tresdaosscan/TresDaosScan.kt +++ b/src/es/tresdaosscan/src/eu/kanade/tachiyomi/extension/es/tresdaosscan/TresDaosScan.kt @@ -1,19 +1,75 @@ package eu.kanade.tachiyomi.extension.es.tresdaosscan +import android.content.SharedPreferences +import android.widget.Toast +import androidx.preference.EditTextPreference +import androidx.preference.PreferenceScreen import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia import eu.kanade.tachiyomi.network.interceptor.rateLimit +import eu.kanade.tachiyomi.source.ConfigurableSource +import keiyoushi.utils.getPreferences import java.text.SimpleDateFormat import java.util.Locale -class TresDaosScan : MangaThemesia( - "Tres Daos Scan", - "https://threedaos.drublood.com", - "es", - dateFormat = SimpleDateFormat("MMMM dd, yyyy", Locale("es")), -) { +class TresDaosScan : + MangaThemesia( + "Tres Daos Scan", + "https://threedaos.zdrz.xyz", + "es", + dateFormat = SimpleDateFormat("MMMM dd, yyyy", Locale("es")), + ), + ConfigurableSource { override val versionId = 4 override val client = super.client.newBuilder() .rateLimit(2) .build() + + private val defaultBaseUrl: String = super.baseUrl + + private val preferences = getPreferences { + getString(DEFAULT_BASE_URL_PREF, defaultBaseUrl).let { domain -> + if (domain != defaultBaseUrl) { + edit() + .putString(BASE_URL_PREF, defaultBaseUrl) + .putString(DEFAULT_BASE_URL_PREF, defaultBaseUrl) + .apply() + } + } + } + + override val baseUrl: String get() = preferences.prefBaseUrl + + private var _cachedBaseUrl: String? = null + private var SharedPreferences.prefBaseUrl: String + get() { + if (_cachedBaseUrl == null) { + _cachedBaseUrl = getString(BASE_URL_PREF, defaultBaseUrl)!! + } + return _cachedBaseUrl!! + } + set(value) { + _cachedBaseUrl = value + edit().putString(BASE_URL_PREF, value).apply() + } + + override fun setupPreferenceScreen(screen: PreferenceScreen) { + EditTextPreference(screen.context).apply { + key = BASE_URL_PREF + title = "Editar URL de la fuente" + summary = "Para uso temporal, si la extensión se actualiza se perderá el cambio." + dialogTitle = title + dialogMessage = "URL por defecto:\n$defaultBaseUrl" + setDefaultValue(defaultBaseUrl) + setOnPreferenceChangeListener { _, _ -> + Toast.makeText(screen.context, "Reinicie la aplicación para aplicar los cambios", Toast.LENGTH_LONG).show() + true + } + }.also { screen.addPreference(it) } + } + + companion object { + private const val BASE_URL_PREF = "overrideBaseUrl" + private const val DEFAULT_BASE_URL_PREF = "defaultBaseUrl" + } }