[RU]Mangalib Selector Domain (#6995)
* [RU]Mangalib Selector Domain * timeouts * setDefaultValue * changing order of settings
This commit is contained in:
parent
9ddcfddf68
commit
ea8c9de614
|
@ -5,7 +5,7 @@ ext {
|
||||||
extName = 'MangaLib'
|
extName = 'MangaLib'
|
||||||
pkgNameSuffix = 'ru.libmanga'
|
pkgNameSuffix = 'ru.libmanga'
|
||||||
extClass = '.LibManga'
|
extClass = '.LibManga'
|
||||||
extVersionCode = 44
|
extVersionCode = 45
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,7 @@ import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
class LibManga : ConfigurableSource, HttpSource() {
|
class LibManga : ConfigurableSource, HttpSource() {
|
||||||
|
|
||||||
|
@ -52,11 +53,15 @@ class LibManga : ConfigurableSource, HttpSource() {
|
||||||
|
|
||||||
override val supportsLatest = true
|
override val supportsLatest = true
|
||||||
|
|
||||||
override val client: OkHttpClient = network.cloudflareClient
|
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||||
|
.connectTimeout(10, TimeUnit.SECONDS)
|
||||||
|
.readTimeout(30, TimeUnit.SECONDS)
|
||||||
|
.build()
|
||||||
|
|
||||||
// The mirror is used because the main site "mangalib.me" in application returns error 403
|
private val baseOrig: String = "https://mangalib.me"
|
||||||
override val baseUrl: String = "https://mangalib.org"
|
private val baseMirr: String = "https://mangalib.org"
|
||||||
private val baseOrigUrl: String = "https://mangalib.me"
|
private var domain: String? = preferences.getString(DOMAIN_PREF, baseOrig)
|
||||||
|
override val baseUrl: String = domain.toString()
|
||||||
|
|
||||||
override fun headersBuilder() = Headers.Builder().apply {
|
override fun headersBuilder() = Headers.Builder().apply {
|
||||||
add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64)")
|
add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64)")
|
||||||
|
@ -173,7 +178,7 @@ class LibManga : ConfigurableSource, HttpSource() {
|
||||||
|
|
||||||
val genres = document.select(".media-tags > a").map { it.text() }
|
val genres = document.select(".media-tags > a").map { it.text() }
|
||||||
manga.title = document.select(".media-name__alt").text()
|
manga.title = document.select(".media-name__alt").text()
|
||||||
manga.thumbnail_url = baseUrl + document.select(".media-sidebar__cover > img").attr("src").substringAfter(baseOrigUrl)
|
manga.thumbnail_url = baseUrl + document.select(".media-sidebar__cover > img").attr("src").substringAfter(baseOrig)
|
||||||
manga.author = body.select("div.media-info-list__title:contains(Автор) + div").text()
|
manga.author = body.select("div.media-info-list__title:contains(Автор) + div").text()
|
||||||
manga.artist = body.select("div.media-info-list__title:contains(Художник) + div").text()
|
manga.artist = body.select("div.media-info-list__title:contains(Художник) + div").text()
|
||||||
manga.status = when (
|
manga.status = when (
|
||||||
|
@ -743,10 +748,12 @@ class LibManga : ConfigurableSource, HttpSource() {
|
||||||
|
|
||||||
private const val SORTING_PREF = "MangaLibSorting"
|
private const val SORTING_PREF = "MangaLibSorting"
|
||||||
private const val SORTING_PREF_Title = "Способ выбора переводчиков"
|
private const val SORTING_PREF_Title = "Способ выбора переводчиков"
|
||||||
|
|
||||||
|
private const val DOMAIN_PREF = "MangaLibDomain"
|
||||||
|
private const val DOMAIN_PREF_Title = "Выбор домена"
|
||||||
}
|
}
|
||||||
|
|
||||||
private var server: String? = preferences.getString(SERVER_PREF, null)
|
private var server: String? = preferences.getString(SERVER_PREF, null)
|
||||||
|
|
||||||
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
||||||
val serverPref = ListPreference(screen.context).apply {
|
val serverPref = ListPreference(screen.context).apply {
|
||||||
key = SERVER_PREF
|
key = SERVER_PREF
|
||||||
|
@ -754,7 +761,7 @@ class LibManga : ConfigurableSource, HttpSource() {
|
||||||
entries = arrayOf("Основной", "Второй (тестовый)", "Третий (эконом трафика)", "Авто")
|
entries = arrayOf("Основной", "Второй (тестовый)", "Третий (эконом трафика)", "Авто")
|
||||||
entryValues = arrayOf("secondary", "fourth", "compress", "auto")
|
entryValues = arrayOf("secondary", "fourth", "compress", "auto")
|
||||||
summary = "%s"
|
summary = "%s"
|
||||||
|
setDefaultValue("auto")
|
||||||
setOnPreferenceChangeListener { _, newValue ->
|
setOnPreferenceChangeListener { _, newValue ->
|
||||||
server = newValue.toString()
|
server = newValue.toString()
|
||||||
true
|
true
|
||||||
|
@ -770,14 +777,27 @@ class LibManga : ConfigurableSource, HttpSource() {
|
||||||
)
|
)
|
||||||
entryValues = arrayOf("ms_mixing", "ms_combining", "ms_largest", "ms_active")
|
entryValues = arrayOf("ms_mixing", "ms_combining", "ms_largest", "ms_active")
|
||||||
summary = "%s"
|
summary = "%s"
|
||||||
|
setDefaultValue("ms_mixing")
|
||||||
setOnPreferenceChangeListener { _, newValue ->
|
setOnPreferenceChangeListener { _, newValue ->
|
||||||
val selected = newValue as String
|
val selected = newValue as String
|
||||||
preferences.edit().putString(SORTING_PREF, selected).commit()
|
preferences.edit().putString(SORTING_PREF, selected).commit()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
val domainPref = ListPreference(screen.context).apply {
|
||||||
|
key = DOMAIN_PREF
|
||||||
|
title = DOMAIN_PREF_Title
|
||||||
|
entries = arrayOf("mangalib.me(Основной)", "mangalib.org(Зеркало)")
|
||||||
|
entryValues = arrayOf(baseOrig, baseMirr)
|
||||||
|
summary = "Для смены домена необходимо перезапустить приложение с полной остановкой"
|
||||||
|
setDefaultValue(baseOrig)
|
||||||
|
setOnPreferenceChangeListener { _, newValue ->
|
||||||
|
val selected = newValue as String
|
||||||
|
preferences.edit().putString(DOMAIN_PREF, selected).commit()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
screen.addPreference(sortingPref)
|
screen.addPreference(domainPref)
|
||||||
screen.addPreference(serverPref)
|
screen.addPreference(serverPref)
|
||||||
|
screen.addPreference(sortingPref)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue