[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:
Eshlender 2023-03-24 07:36:49 +05:00 committed by GitHub
parent 99e0be2884
commit 1b4ccdf0d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 17 deletions

View File

@ -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 {

View File

@ -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"

View File

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