2022-10-04 18:12:30 +00:00
|
|
|
package eu.kanade.tachiyomi.extension.es.yugenmangas
|
|
|
|
|
2023-08-01 12:39:20 +00:00
|
|
|
import android.app.Application
|
|
|
|
import android.content.SharedPreferences
|
|
|
|
import android.widget.Toast
|
|
|
|
import androidx.preference.ListPreference
|
|
|
|
import androidx.preference.PreferenceScreen
|
2022-10-04 18:12:30 +00:00
|
|
|
import eu.kanade.tachiyomi.multisrc.heancms.Genre
|
|
|
|
import eu.kanade.tachiyomi.multisrc.heancms.HeanCms
|
2023-07-09 14:14:09 +00:00
|
|
|
import eu.kanade.tachiyomi.network.interceptor.rateLimit
|
2023-08-01 12:39:20 +00:00
|
|
|
import eu.kanade.tachiyomi.source.ConfigurableSource
|
|
|
|
import uy.kohesive.injekt.Injekt
|
|
|
|
import uy.kohesive.injekt.api.get
|
2023-01-11 17:35:15 +00:00
|
|
|
import java.text.SimpleDateFormat
|
|
|
|
import java.util.TimeZone
|
2023-07-09 14:14:09 +00:00
|
|
|
import java.util.concurrent.TimeUnit
|
2022-10-04 18:12:30 +00:00
|
|
|
|
2023-07-30 21:37:17 +00:00
|
|
|
class YugenMangas :
|
|
|
|
HeanCms(
|
|
|
|
"YugenMangas",
|
|
|
|
"https://yugenmangas.net",
|
|
|
|
"es",
|
|
|
|
"https://api.yugenmangas.net",
|
2023-08-01 12:39:20 +00:00
|
|
|
),
|
|
|
|
ConfigurableSource {
|
|
|
|
|
|
|
|
private val preferences: SharedPreferences by lazy {
|
|
|
|
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
|
|
|
|
}
|
2022-10-04 18:12:30 +00:00
|
|
|
|
|
|
|
// Site changed from Madara to HeanCms.
|
|
|
|
override val versionId = 2
|
|
|
|
|
2023-08-01 12:39:20 +00:00
|
|
|
override val fetchAllTitlesStrategy = when (getfetchAllStrategyPref()) {
|
|
|
|
"all" -> FetchAllStrategy.SEARCH_ALL
|
|
|
|
"each" -> FetchAllStrategy.SEARCH_EACH
|
|
|
|
else -> FetchAllStrategy.NONE
|
|
|
|
}
|
2023-07-30 21:37:17 +00:00
|
|
|
|
2023-07-09 14:14:09 +00:00
|
|
|
override val client = super.client.newBuilder()
|
|
|
|
.connectTimeout(60, TimeUnit.SECONDS)
|
|
|
|
.readTimeout(90, TimeUnit.SECONDS)
|
2023-08-01 12:39:20 +00:00
|
|
|
.rateLimit(2, 3)
|
2023-07-09 14:14:09 +00:00
|
|
|
.build()
|
|
|
|
|
2022-10-22 22:16:00 +00:00
|
|
|
override val coverPath: String = ""
|
|
|
|
|
2023-01-11 17:35:15 +00:00
|
|
|
override val dateFormat: SimpleDateFormat = super.dateFormat.apply {
|
|
|
|
timeZone = TimeZone.getTimeZone("UTC")
|
|
|
|
}
|
|
|
|
|
2022-10-04 18:12:30 +00:00
|
|
|
override fun getGenreList(): List<Genre> = listOf(
|
|
|
|
Genre("+18", 1),
|
|
|
|
Genre("Acción", 36),
|
|
|
|
Genre("Adulto", 38),
|
|
|
|
Genre("Apocalíptico", 3),
|
|
|
|
Genre("Artes marciales (1)", 16),
|
|
|
|
Genre("Artes marciales (2)", 37),
|
|
|
|
Genre("Aventura", 2),
|
|
|
|
Genre("Boys Love", 4),
|
|
|
|
Genre("Ciencia ficción", 39),
|
|
|
|
Genre("Comedia", 5),
|
|
|
|
Genre("Demonios", 6),
|
|
|
|
Genre("Deporte", 26),
|
|
|
|
Genre("Drama", 7),
|
|
|
|
Genre("Ecchi", 8),
|
|
|
|
Genre("Familia", 9),
|
|
|
|
Genre("Fantasía", 10),
|
|
|
|
Genre("Girls Love", 11),
|
|
|
|
Genre("Gore", 12),
|
|
|
|
Genre("Harem", 13),
|
|
|
|
Genre("Harem inverso", 14),
|
|
|
|
Genre("Histórico", 48),
|
|
|
|
Genre("Horror", 41),
|
|
|
|
Genre("Isekai", 40),
|
|
|
|
Genre("Josei", 15),
|
|
|
|
Genre("Maduro", 42),
|
|
|
|
Genre("Magia", 17),
|
|
|
|
Genre("MangoScan", 35),
|
|
|
|
Genre("Mecha", 18),
|
|
|
|
Genre("Militar", 19),
|
|
|
|
Genre("Misterio", 20),
|
|
|
|
Genre("Psicológico", 21),
|
|
|
|
Genre("Realidad virtual", 46),
|
|
|
|
Genre("Recuentos de la vida", 25),
|
|
|
|
Genre("Reencarnación", 22),
|
|
|
|
Genre("Regresion", 23),
|
|
|
|
Genre("Romance", 24),
|
|
|
|
Genre("Seinen", 27),
|
|
|
|
Genre("Shonen", 28),
|
|
|
|
Genre("Shoujo", 29),
|
|
|
|
Genre("Sistema", 45),
|
|
|
|
Genre("Smut", 30),
|
|
|
|
Genre("Supernatural", 31),
|
|
|
|
Genre("Supervivencia", 32),
|
|
|
|
Genre("Tragedia", 33),
|
|
|
|
Genre("Transmigración", 34),
|
|
|
|
Genre("Vida Escolar", 47),
|
|
|
|
Genre("Yaoi", 43),
|
2023-02-11 19:21:03 +00:00
|
|
|
Genre("Yuri", 44),
|
2022-10-04 18:12:30 +00:00
|
|
|
)
|
2023-08-01 12:39:20 +00:00
|
|
|
|
|
|
|
private fun getfetchAllStrategyPref(): String? {
|
|
|
|
return preferences.getString(PREF_FETCH_ALL_STRATEGY_KEY, PREF_FETCH_ALL_STRATEGY_DEFAULT)
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun setupPreferenceScreen(screen: PreferenceScreen) {
|
|
|
|
val fetchAllStrategyPreference = ListPreference(screen.context).apply {
|
|
|
|
key = PREF_FETCH_ALL_STRATEGY_KEY
|
|
|
|
title = PREF_FETCH_ALL_STRATEGY_TITLE
|
|
|
|
summary = PREF_FETCH_ALL_STRATEGY_SUMMARY
|
|
|
|
entries = PREF_FETCH_ALL_STRATEGY_ENTRIES
|
|
|
|
entryValues = PREF_FETCH_ALL_STRATEGY_VALUES
|
|
|
|
setDefaultValue(PREF_FETCH_ALL_STRATEGY_DEFAULT)
|
|
|
|
|
|
|
|
setOnPreferenceChangeListener { _, newValue ->
|
|
|
|
Toast.makeText(screen.context, RESTART_MESSAGE, Toast.LENGTH_LONG).show()
|
|
|
|
true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
screen.addPreference(fetchAllStrategyPreference)
|
|
|
|
}
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
const val PREF_FETCH_ALL_STRATEGY_KEY = "prefFetchAllStrategy"
|
|
|
|
const val PREF_FETCH_ALL_STRATEGY_TITLE = "Método de búsqueda"
|
|
|
|
const val PREF_FETCH_ALL_STRATEGY_SUMMARY = "Global: Busca las URLs de todas las series al iniciar la aplicación, lento pero más estable.\n" +
|
|
|
|
"Individual: Busca la URL de la serie al actualizar, rápido pero puede fallar.\n" +
|
|
|
|
"Ninguno: Usa la URL con la que fue agregado, tendrá que migrar si la URL cambia.\n" +
|
|
|
|
"Valor actual: %s"
|
|
|
|
|
|
|
|
val PREF_FETCH_ALL_STRATEGY_ENTRIES = arrayOf("Ninguno", "Individual", "Global")
|
|
|
|
val PREF_FETCH_ALL_STRATEGY_VALUES = arrayOf("off", "each", "all")
|
|
|
|
|
|
|
|
const val PREF_FETCH_ALL_STRATEGY_DEFAULT = "off"
|
|
|
|
|
|
|
|
const val RESTART_MESSAGE = "Reinicie la aplicación para que los cambios surtan efecto."
|
|
|
|
}
|
2022-10-04 18:12:30 +00:00
|
|
|
}
|