[RU]Remanga don't skip paid chapter (#15795)
* [RU]Remanga don't skip paid chapter * all paid * summary is better * summary is better 2 * update filters
This commit is contained in:
parent
99e0be2884
commit
1b4ccdf0d8
@ -6,7 +6,7 @@ ext {
|
|||||||
extName = 'Remanga'
|
extName = 'Remanga'
|
||||||
pkgNameSuffix = 'ru.remanga'
|
pkgNameSuffix = 'ru.remanga'
|
||||||
extClass = '.Remanga'
|
extClass = '.Remanga'
|
||||||
extVersionCode = 65
|
extVersionCode = 66
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
@ -415,7 +415,7 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
try {
|
try {
|
||||||
json.decodeFromString<SeriesExWrapperDto<List<ExBookDto>>>(client.newCall(GET("$exManga/chapter/history/$mangaID", exHeaders())).execute().body.string()).data
|
json.decodeFromString<SeriesExWrapperDto<List<ExBookDto>>>(client.newCall(GET("$exManga/chapter/history/$mangaID", exHeaders())).execute().body.string()).data
|
||||||
} catch (_: Exception) {
|
} catch (_: Exception) {
|
||||||
throw Exception("Домен $exManga сервиса exmanga недоступен, выберите другой в настройках расширения")
|
throw Exception("Домен $exManga сервиса ExManga недоступен, выберите другой в настройках расширения")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
emptyList()
|
emptyList()
|
||||||
@ -489,7 +489,15 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!preferences.getBoolean(PAID_PREF, false)) {
|
if (!preferences.getBoolean(PAID_PREF, false)) {
|
||||||
chaptersList = chaptersList.filter { !it.name.contains("\uD83D\uDCB2") }
|
chaptersList = chaptersList.filter {
|
||||||
|
!it.name.contains("\uD83D\uDCB2") || (
|
||||||
|
it.name.substringBefore(
|
||||||
|
". Глава",
|
||||||
|
).toIntOrNull()!! <=
|
||||||
|
(exChapters.firstOrNull()?.tome ?: -2) &&
|
||||||
|
it.chapter_number < exChapters.firstOrNull()?.chapter?.toFloatOrNull()!!
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return chaptersList
|
return chaptersList
|
||||||
}
|
}
|
||||||
@ -516,7 +524,7 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
} catch (e: SerializationException) {
|
} catch (e: SerializationException) {
|
||||||
throw IOException("Главы больше нет на exmanga. Попробуйте обновить список глав (свайп сверху).")
|
throw IOException("Главы больше нет на ExManga. Попробуйте обновить список глав (свайп сверху).")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (urlChapter.contains("#is_bought") and (preferences.getBoolean(exPAID_PREF, true))) {
|
if (urlChapter.contains("#is_bought") and (preferences.getBoolean(exPAID_PREF, true))) {
|
||||||
@ -557,8 +565,8 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
} else {
|
} else {
|
||||||
if (chapter.name.contains("\uD83D\uDCB2")) {
|
if (chapter.name.contains("\uD83D\uDCB2")) {
|
||||||
val noEX = if (preferences.getBoolean(exPAID_PREF, true)) {
|
val noEX = if (preferences.getBoolean(exPAID_PREF, true)) {
|
||||||
"Если вы покупаете главу, то вы делитесь с другими пользователями exmanga."
|
"Расширение отправляет данные на удаленный сервер ExManga только при открытии глав покупаемой манги."
|
||||||
} else { "Функции exmanga отключены." }
|
} else { "Функции ExManga отключены." }
|
||||||
throw IOException("Глава платная. $noEX")
|
throw IOException("Глава платная. $noEX")
|
||||||
}
|
}
|
||||||
GET(baseUrl + "/api/titles/chapters/" + chapter.url.substringAfterLast("/ch").substringBefore("#is_bought") + "/", headers)
|
GET(baseUrl + "/api/titles/chapters/" + chapter.url.substringAfterLast("/ch").substringBefore("#is_bought") + "/", headers)
|
||||||
@ -652,10 +660,9 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
SearchFilter("Манхва", "1"),
|
SearchFilter("Манхва", "1"),
|
||||||
SearchFilter("Маньхуа", "2"),
|
SearchFilter("Маньхуа", "2"),
|
||||||
SearchFilter("Западный комикс", "3"),
|
SearchFilter("Западный комикс", "3"),
|
||||||
SearchFilter("Русскомикс", "4"),
|
SearchFilter("Рукомикс", "4"),
|
||||||
SearchFilter("Индонезийский комикс", "5"),
|
SearchFilter("Индонезийский комикс", "5"),
|
||||||
SearchFilter("Новелла", "6"),
|
SearchFilter("Другое", "6"),
|
||||||
SearchFilter("Другое", "7"),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun getStatusList() = listOf(
|
private fun getStatusList() = listOf(
|
||||||
@ -770,7 +777,6 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
)
|
)
|
||||||
|
|
||||||
private fun getGenreList() = listOf(
|
private fun getGenreList() = listOf(
|
||||||
SearchFilter("боевик", "2"),
|
|
||||||
SearchFilter("боевые искусства", "3"),
|
SearchFilter("боевые искусства", "3"),
|
||||||
SearchFilter("гарем", "5"),
|
SearchFilter("гарем", "5"),
|
||||||
SearchFilter("гендерная интрига", "6"),
|
SearchFilter("гендерная интрига", "6"),
|
||||||
@ -779,7 +785,6 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
SearchFilter("дзёсэй", "9"),
|
SearchFilter("дзёсэй", "9"),
|
||||||
SearchFilter("додзинси", "10"),
|
SearchFilter("додзинси", "10"),
|
||||||
SearchFilter("драма", "11"),
|
SearchFilter("драма", "11"),
|
||||||
SearchFilter("игра", "12"),
|
|
||||||
SearchFilter("история", "13"),
|
SearchFilter("история", "13"),
|
||||||
SearchFilter("киберпанк", "14"),
|
SearchFilter("киберпанк", "14"),
|
||||||
SearchFilter("кодомо", "15"),
|
SearchFilter("кодомо", "15"),
|
||||||
@ -787,6 +792,7 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
SearchFilter("махо-сёдзё", "17"),
|
SearchFilter("махо-сёдзё", "17"),
|
||||||
SearchFilter("меха", "18"),
|
SearchFilter("меха", "18"),
|
||||||
SearchFilter("мистика", "19"),
|
SearchFilter("мистика", "19"),
|
||||||
|
SearchFilter("мурим", "51"),
|
||||||
SearchFilter("научная фантастика", "20"),
|
SearchFilter("научная фантастика", "20"),
|
||||||
SearchFilter("повседневность", "21"),
|
SearchFilter("повседневность", "21"),
|
||||||
SearchFilter("постапокалиптика", "22"),
|
SearchFilter("постапокалиптика", "22"),
|
||||||
@ -806,11 +812,12 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
SearchFilter("ужасы", "36"),
|
SearchFilter("ужасы", "36"),
|
||||||
SearchFilter("фантастика", "37"),
|
SearchFilter("фантастика", "37"),
|
||||||
SearchFilter("фэнтези", "38"),
|
SearchFilter("фэнтези", "38"),
|
||||||
SearchFilter("школа", "39"),
|
SearchFilter("школьная жизнь", "39"),
|
||||||
|
SearchFilter("экшен", "2"),
|
||||||
SearchFilter("элементы юмора", "16"),
|
SearchFilter("элементы юмора", "16"),
|
||||||
|
SearchFilter("эротика", "42"),
|
||||||
SearchFilter("этти", "40"),
|
SearchFilter("этти", "40"),
|
||||||
SearchFilter("юри", "41"),
|
SearchFilter("юри", "41"),
|
||||||
SearchFilter("яой", "43"),
|
|
||||||
)
|
)
|
||||||
private class MyList(favorites: Array<String>) : Filter.Select<String>("Закладки (только)", favorites)
|
private class MyList(favorites: Array<String>) : Filter.Select<String>("Закладки (только)", favorites)
|
||||||
private data class MyListUnit(val name: String, val id: String)
|
private data class MyListUnit(val name: String, val id: String)
|
||||||
@ -869,7 +876,7 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
}
|
}
|
||||||
val paidChapterShow = androidx.preference.CheckBoxPreference(screen.context).apply {
|
val paidChapterShow = androidx.preference.CheckBoxPreference(screen.context).apply {
|
||||||
key = PAID_PREF
|
key = PAID_PREF
|
||||||
title = "Показывать платные главы"
|
title = "Показывать все платные главы"
|
||||||
summary = "Показывает не купленные\uD83D\uDCB2 главы(может вызвать ошибки при обновлении/автозагрузке)"
|
summary = "Показывает не купленные\uD83D\uDCB2 главы(может вызвать ошибки при обновлении/автозагрузке)"
|
||||||
setDefaultValue(false)
|
setDefaultValue(false)
|
||||||
|
|
||||||
@ -880,8 +887,10 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
}
|
}
|
||||||
val exChapterShow = androidx.preference.CheckBoxPreference(screen.context).apply {
|
val exChapterShow = androidx.preference.CheckBoxPreference(screen.context).apply {
|
||||||
key = exPAID_PREF
|
key = exPAID_PREF
|
||||||
title = "Показывать главы из exmanga"
|
title = "Показывать главы из ExManga"
|
||||||
summary = "Показывает главы купленные другими людьми и поделившиеся ими через браузерное расширение exmanga. Также отключает отправку ваших глав из Tachiyomi в exmanga."
|
summary = "Показывает главы купленные другими людьми и поделившиеся ими через браузерное расширение ExManga. \n\n" +
|
||||||
|
"ⓘЧастично отображает не купленные\uD83D\uDCB2 главы для соблюдения порядка глав. \n\n" +
|
||||||
|
"ⓘТакже отправляет купленные главы из Tachiyomi в ExManga."
|
||||||
setDefaultValue(true)
|
setDefaultValue(true)
|
||||||
|
|
||||||
setOnPreferenceChangeListener { _, newValue ->
|
setOnPreferenceChangeListener { _, newValue ->
|
||||||
@ -891,7 +900,7 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||||||
}
|
}
|
||||||
val domainExPref = ListPreference(screen.context).apply {
|
val domainExPref = ListPreference(screen.context).apply {
|
||||||
key = exDOMAIN_PREF
|
key = exDOMAIN_PREF
|
||||||
title = "Выбор домена для exmanga"
|
title = "Выбор домена для ExManga"
|
||||||
entries = arrayOf("Россия (exmanga.ru)", "Украина (ex.euromc.com.ua)")
|
entries = arrayOf("Россия (exmanga.ru)", "Украина (ex.euromc.com.ua)")
|
||||||
entryValues = arrayOf(baseRuss, baseUkr)
|
entryValues = arrayOf(baseRuss, baseUkr)
|
||||||
summary = "%s"
|
summary = "%s"
|
||||||
|
@ -104,6 +104,8 @@ data class SeriesExWrapperDto<T>(
|
|||||||
@Serializable
|
@Serializable
|
||||||
data class ExBookDto(
|
data class ExBookDto(
|
||||||
val id: Long,
|
val id: Long,
|
||||||
|
val tome: Int,
|
||||||
|
val chapter: String,
|
||||||
)
|
)
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
|
Loading…
x
Reference in New Issue
Block a user