DuaLeoTruyen: Update domain and add custom settings (#8900)
* Update domain and add custom settings * Add check to the default base url saved when the extension is updated
This commit is contained in:
parent
4b44545e76
commit
c8cc594055
@ -1,7 +1,7 @@
|
|||||||
ext {
|
ext {
|
||||||
extName = "Dua Leo Truyen"
|
extName = "Dua Leo Truyen"
|
||||||
extClass = ".DuaLeoTruyen"
|
extClass = ".DuaLeoTruyen"
|
||||||
extVersionCode = 8
|
extVersionCode = 9
|
||||||
isNsfw = true
|
isNsfw = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,14 +1,20 @@
|
|||||||
package eu.kanade.tachiyomi.extension.vi.dualeotruyen
|
package eu.kanade.tachiyomi.extension.vi.dualeotruyen
|
||||||
|
|
||||||
|
import android.content.SharedPreferences
|
||||||
|
import android.widget.Toast
|
||||||
|
import androidx.preference.EditTextPreference
|
||||||
|
import androidx.preference.PreferenceScreen
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
import eu.kanade.tachiyomi.network.POST
|
import eu.kanade.tachiyomi.network.POST
|
||||||
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
import eu.kanade.tachiyomi.network.interceptor.rateLimitHost
|
||||||
|
import eu.kanade.tachiyomi.source.ConfigurableSource
|
||||||
import eu.kanade.tachiyomi.source.model.Filter
|
import eu.kanade.tachiyomi.source.model.Filter
|
||||||
import eu.kanade.tachiyomi.source.model.FilterList
|
import eu.kanade.tachiyomi.source.model.FilterList
|
||||||
import eu.kanade.tachiyomi.source.model.Page
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
import eu.kanade.tachiyomi.source.model.SChapter
|
import eu.kanade.tachiyomi.source.model.SChapter
|
||||||
import eu.kanade.tachiyomi.source.model.SManga
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
||||||
|
import keiyoushi.utils.getPreferencesLazy
|
||||||
import okhttp3.FormBody
|
import okhttp3.FormBody
|
||||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
@ -18,11 +24,35 @@ import java.text.SimpleDateFormat
|
|||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
|
||||||
class DuaLeoTruyen : ParsedHttpSource() {
|
class DuaLeoTruyen : ParsedHttpSource(), ConfigurableSource {
|
||||||
|
|
||||||
override val name = "Dưa Leo Truyện"
|
override val name = "Dưa Leo Truyện"
|
||||||
|
|
||||||
override val baseUrl = "https://dualeotruyenbotz.com"
|
private val isCi = System.getenv("CI") == "true"
|
||||||
|
|
||||||
|
override val baseUrl: String get() = when {
|
||||||
|
isCi -> defaultBaseUrl
|
||||||
|
else -> preferences.prefBaseUrl
|
||||||
|
}
|
||||||
|
|
||||||
|
private var cachedBaseUrl: String = ""
|
||||||
|
private val SharedPreferences.prefBaseUrl: String get() {
|
||||||
|
return cachedBaseUrl.takeIf(String::isNotBlank)
|
||||||
|
?: getString(BASE_URL_PREF, defaultBaseUrl)!!.also { cachedBaseUrl = it }
|
||||||
|
}
|
||||||
|
|
||||||
|
private val preferences: SharedPreferences by getPreferencesLazy {
|
||||||
|
getString(DEFAULT_BASE_URL_PREF, "").let { domain ->
|
||||||
|
if (domain != defaultBaseUrl) {
|
||||||
|
edit()
|
||||||
|
.putString(BASE_URL_PREF, defaultBaseUrl)
|
||||||
|
.putString(DEFAULT_BASE_URL_PREF, defaultBaseUrl)
|
||||||
|
.apply()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private val defaultBaseUrl: String = "https://dualeotruyeno.com"
|
||||||
|
|
||||||
override val lang = "vi"
|
override val lang = "vi"
|
||||||
|
|
||||||
@ -205,6 +235,31 @@ class DuaLeoTruyen : ParsedHttpSource() {
|
|||||||
Genre("Doujinshi", "the-loai/doujinshi.html"),
|
Genre("Doujinshi", "the-loai/doujinshi.html"),
|
||||||
Genre("ABO", "the-loai/abo.html"),
|
Genre("ABO", "the-loai/abo.html"),
|
||||||
)
|
)
|
||||||
}
|
|
||||||
|
|
||||||
private val DATE_FORMAT = SimpleDateFormat("dd/MM/yyyy", Locale.ROOT)
|
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||||
|
EditTextPreference(screen.context).apply {
|
||||||
|
key = BASE_URL_PREF
|
||||||
|
title = BASE_URL_PREF_TITLE
|
||||||
|
summary = URL_PREF_SUMMARY
|
||||||
|
|
||||||
|
dialogTitle = BASE_URL_PREF_TITLE
|
||||||
|
dialogMessage = "Default: $defaultBaseUrl"
|
||||||
|
|
||||||
|
setDefaultValue(defaultBaseUrl)
|
||||||
|
|
||||||
|
setOnPreferenceChangeListener { _, _ ->
|
||||||
|
Toast.makeText(screen.context, RESTART_APP_MESSAGE, Toast.LENGTH_LONG).show()
|
||||||
|
true
|
||||||
|
}
|
||||||
|
}.let(screen::addPreference)
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val BASE_URL_PREF = "overrideBaseUrl"
|
||||||
|
private const val DEFAULT_BASE_URL_PREF = "defaultBaseUrl"
|
||||||
|
private const val BASE_URL_PREF_TITLE = "Edit URL"
|
||||||
|
private const val URL_PREF_SUMMARY = "For temporary uses. Updating the extension will erase this setting. Leave blank to use the default URL"
|
||||||
|
private const val RESTART_APP_MESSAGE = "Restart app to apply new setting."
|
||||||
|
private val DATE_FORMAT = SimpleDateFormat("dd/MM/yyyy", Locale.ROOT)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user