[RU]Mangalib Selector Domain (#6995)

* [RU]Mangalib Selector Domain

* timeouts

* setDefaultValue

* changing order of settings
This commit is contained in:
Eugene 2021-05-13 15:39:16 +05:00 committed by GitHub
parent 9ddcfddf68
commit ea8c9de614
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 10 deletions

View File

@ -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'
} }

View File

@ -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)
} }
} }