[RU]Remanga more tags in detail and filters (#8347)

This commit is contained in:
Eugene 2021-08-02 19:58:27 +05:00 committed by GitHub
parent 23845aa3ab
commit 604f86f4d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 29 deletions

View File

@ -6,7 +6,7 @@ ext {
extName = 'Remanga' extName = 'Remanga'
pkgNameSuffix = 'ru.remanga' pkgNameSuffix = 'ru.remanga'
extClass = '.Remanga' extClass = '.Remanga'
extVersionCode = 34 extVersionCode = 35
libVersion = '1.2' libVersion = '1.2'
} }

View File

@ -3,12 +3,12 @@ package eu.kanade.tachiyomi.extension.ru.remanga
import BookDto import BookDto
import BranchesDto import BranchesDto
import ChunksPageDto import ChunksPageDto
import GenresDto
import LibraryDto import LibraryDto
import MangaDetDto import MangaDetDto
import PageDto import PageDto
import PageWrapperDto import PageWrapperDto
import SeriesWrapperDto import SeriesWrapperDto
import TagsDto
import UserDto import UserDto
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.annotation.TargetApi import android.annotation.TargetApi
@ -205,9 +205,9 @@ class Remanga : ConfigurableSource, HttpSource() {
} }
} }
private fun parseType(type: GenresDto): GenresDto { private fun parseType(type: TagsDto): TagsDto {
return when (type.name) { return when (type.name) {
"Западный комикс" -> GenresDto(type.id, "Комикс") "Западный комикс" -> TagsDto(type.id, "Комикс")
else -> type else -> type
} }
} }
@ -245,7 +245,7 @@ class Remanga : ConfigurableSource, HttpSource() {
altName = "Альтернативные названия:\n" + another_name + "\n\n" altName = "Альтернативные названия:\n" + another_name + "\n\n"
} }
this.description = rus_name + "\n" + ratingStar + " " + ratingValue + " (голосов: " + count_rating + ")\n" + altName + Jsoup.parse(o.description).text() this.description = rus_name + "\n" + ratingStar + " " + ratingValue + " (голосов: " + count_rating + ")\n" + altName + Jsoup.parse(o.description).text()
genre = (genres + parseType(type)).joinToString { it.name } + ", " + parseAge(age_limit) genre = (genres + categories + parseType(type)).joinToString { it.name } + ", " + parseAge(age_limit)
status = parseStatus(o.status.id) status = parseStatus(o.status.id)
} }
} }
@ -355,16 +355,17 @@ class Remanga : ConfigurableSource, HttpSource() {
@TargetApi(Build.VERSION_CODES.N) @TargetApi(Build.VERSION_CODES.N)
override fun pageListParse(response: Response): List<Page> { override fun pageListParse(response: Response): List<Page> {
val body = response.body?.string()!! val body = response.body?.string()!!
val heightEmptyChunks = 10
return try { return try {
val page = json.decodeFromString<SeriesWrapperDto<PageDto>>(body) val page = json.decodeFromString<SeriesWrapperDto<PageDto>>(body)
page.content.pages.filter { it.height > 10 }.map { page.content.pages.filter { it.height > heightEmptyChunks }.map {
Page(it.page, "", fixLink(it.link)) Page(it.page, "", fixLink(it.link))
} }
} catch (e: SerializationException) { } catch (e: SerializationException) {
val page = json.decodeFromString<SeriesWrapperDto<ChunksPageDto>>(body) val page = json.decodeFromString<SeriesWrapperDto<ChunksPageDto>>(body)
val result = mutableListOf<Page>() val result = mutableListOf<Page>()
page.content.pages.forEach { page.content.pages.forEach {
it.filter { page -> page.height > 10 }.forEach { page -> it.filter { page -> page.height > heightEmptyChunks }.forEach { page ->
result.add(Page(result.size, "", fixLink(page.link))) result.add(Page(result.size, "", fixLink(page.link)))
} }
} }
@ -457,6 +458,11 @@ class Remanga : ConfigurableSource, HttpSource() {
) )
private fun getCategoryList() = listOf( private fun getCategoryList() = listOf(
SearchFilter("веб", "5"),
SearchFilter("в цвете", "6"),
SearchFilter("ёнкома", "8"),
SearchFilter("сборник", "10"),
SearchFilter("сингл", "11"),
SearchFilter("алхимия", "47"), SearchFilter("алхимия", "47"),
SearchFilter("ангелы", "48"), SearchFilter("ангелы", "48"),
SearchFilter("антигерой", "26"), SearchFilter("антигерой", "26"),
@ -465,12 +471,12 @@ class Remanga : ConfigurableSource, HttpSource() {
SearchFilter("аристократия", "117"), SearchFilter("аристократия", "117"),
SearchFilter("армия", "51"), SearchFilter("армия", "51"),
SearchFilter("артефакты", "52"), SearchFilter("артефакты", "52"),
SearchFilter("амнезия / потеря памяти", "123"),
SearchFilter("боги", "45"), SearchFilter("боги", "45"),
SearchFilter("борьба за власть", "52"), SearchFilter("борьба за власть", "52"),
SearchFilter("будущее", "55"), SearchFilter("будущее", "55"),
SearchFilter("в цвете", "6"), SearchFilter("бои на мечах", "122"),
SearchFilter("вампиры", "112"), SearchFilter("вампиры", "112"),
SearchFilter("веб", "5"),
SearchFilter("вестерн", "56"), SearchFilter("вестерн", "56"),
SearchFilter("видеоигры", "35"), SearchFilter("видеоигры", "35"),
SearchFilter("виртуальная реальность", "44"), SearchFilter("виртуальная реальность", "44"),
@ -480,17 +486,22 @@ class Remanga : ConfigurableSource, HttpSource() {
SearchFilter("воспоминания из другого мира", "60"), SearchFilter("воспоминания из другого мира", "60"),
SearchFilter("врачи / доктора", "116"), SearchFilter("врачи / доктора", "116"),
SearchFilter("выживание", "41"), SearchFilter("выживание", "41"),
SearchFilter("горничные", "23"),
SearchFilter("гяру", "28"),
SearchFilter("гг женщина", "63"), SearchFilter("гг женщина", "63"),
SearchFilter("гг мужчина", "64"), SearchFilter("гг мужчина", "64"),
SearchFilter("гг силён с самого начала", "110"), SearchFilter("умный гг", "111"),
SearchFilter("тупой гг", "109"),
SearchFilter("гг имба", "110"),
SearchFilter("гг не человек", "123"),
SearchFilter("грузовик-сан", "125"),
SearchFilter("геймеры", "61"), SearchFilter("геймеры", "61"),
SearchFilter("гильдии", "62"), SearchFilter("гильдии", "62"),
SearchFilter("гяру", "28"), SearchFilter("гоблины", "65"),
SearchFilter("девушки-монстры", "37"), SearchFilter("девушки-монстры", "37"),
SearchFilter("демоны", "15"), SearchFilter("демоны", "15"),
SearchFilter("драконы", "66"), SearchFilter("драконы", "66"),
SearchFilter("дружба", "67"), SearchFilter("дружба", "67"),
SearchFilter("ёнкома", "62"),
SearchFilter("жестокий мир", "69"), SearchFilter("жестокий мир", "69"),
SearchFilter("животные компаньоны", "70"), SearchFilter("животные компаньоны", "70"),
SearchFilter("завоевание мира", "71"), SearchFilter("завоевание мира", "71"),
@ -515,8 +526,9 @@ class Remanga : ConfigurableSource, HttpSource() {
SearchFilter("насилие / жестокость", "82"), SearchFilter("насилие / жестокость", "82"),
SearchFilter("нежить", "83"), SearchFilter("нежить", "83"),
SearchFilter("ниндзя", "30"), SearchFilter("ниндзя", "30"),
SearchFilter("оборотни", "113"), SearchFilter("офисные работники", "40"),
SearchFilter("обратный гарем", "40"), SearchFilter("обратный гарем", "40"),
SearchFilter("оборотни", "113"),
SearchFilter("пародия", "85"), SearchFilter("пародия", "85"),
SearchFilter("подземелья", "86"), SearchFilter("подземелья", "86"),
SearchFilter("политика", "87"), SearchFilter("политика", "87"),
@ -530,21 +542,16 @@ class Remanga : ConfigurableSource, HttpSource() {
SearchFilter("реинкарнация", "13"), SearchFilter("реинкарнация", "13"),
SearchFilter("роботы", "89"), SearchFilter("роботы", "89"),
SearchFilter("рыцари", "90"), SearchFilter("рыцари", "90"),
SearchFilter("средневековье", "25"),
SearchFilter("самураи", "33"), SearchFilter("самураи", "33"),
SearchFilter("сборник", "10"),
SearchFilter("сингл", "11"),
SearchFilter("система", "91"), SearchFilter("система", "91"),
SearchFilter("скрытие личности", "93"), SearchFilter("скрытие личности", "93"),
SearchFilter("спасение мира", "94"), SearchFilter("спасение мира", "94"),
SearchFilter("средневековье", "25"),
SearchFilter("спасение мира", "94"),
SearchFilter("средневековье", "25"),
SearchFilter("стимпанк", "92"), SearchFilter("стимпанк", "92"),
SearchFilter("супергерои", "95"), SearchFilter("супергерои", "95"),
SearchFilter("традиционные игры", "34"), SearchFilter("традиционные игры", "34"),
SearchFilter("тупой гг", "109"), SearchFilter("учитель / ученик", "96"),
SearchFilter("умный гг", "111"), SearchFilter("управление территорией", "114"),
SearchFilter("управление", "114"),
SearchFilter("философия", "97"), SearchFilter("философия", "97"),
SearchFilter("хентай", "12"), SearchFilter("хентай", "12"),
SearchFilter("хикикомори", "21"), SearchFilter("хикикомори", "21"),
@ -553,11 +560,8 @@ class Remanga : ConfigurableSource, HttpSource() {
) )
private fun getGenreList() = listOf( private fun getGenreList() = listOf(
SearchFilter("арт", "1"),
SearchFilter("бдсм", "44"),
SearchFilter("боевик", "2"), SearchFilter("боевик", "2"),
SearchFilter("боевые искусства", "3"), SearchFilter("боевые искусства", "3"),
SearchFilter("вампиры", "4"),
SearchFilter("гарем", "5"), SearchFilter("гарем", "5"),
SearchFilter("гендерная интрига", "6"), SearchFilter("гендерная интрига", "6"),
SearchFilter("героическое фэнтези", "7"), SearchFilter("героическое фэнтези", "7"),
@ -569,7 +573,7 @@ class Remanga : ConfigurableSource, HttpSource() {
SearchFilter("история", "13"), SearchFilter("история", "13"),
SearchFilter("киберпанк", "14"), SearchFilter("киберпанк", "14"),
SearchFilter("кодомо", "15"), SearchFilter("кодомо", "15"),
SearchFilter("комедия", "16"), SearchFilter("комедия", "50"),
SearchFilter("махо-сёдзё", "17"), SearchFilter("махо-сёдзё", "17"),
SearchFilter("меха", "18"), SearchFilter("меха", "18"),
SearchFilter("мистика", "19"), SearchFilter("мистика", "19"),
@ -578,6 +582,7 @@ class Remanga : ConfigurableSource, HttpSource() {
SearchFilter("постапокалиптика", "22"), SearchFilter("постапокалиптика", "22"),
SearchFilter("приключения", "23"), SearchFilter("приключения", "23"),
SearchFilter("психология", "24"), SearchFilter("психология", "24"),
SearchFilter("психодел-упоротость-треш", "124"),
SearchFilter("романтика", "25"), SearchFilter("романтика", "25"),
SearchFilter("сверхъестественное", "27"), SearchFilter("сверхъестественное", "27"),
SearchFilter("сёдзё", "28"), SearchFilter("сёдзё", "28"),
@ -592,7 +597,7 @@ class Remanga : ConfigurableSource, HttpSource() {
SearchFilter("фантастика", "37"), SearchFilter("фантастика", "37"),
SearchFilter("фэнтези", "38"), SearchFilter("фэнтези", "38"),
SearchFilter("школа", "39"), SearchFilter("школа", "39"),
SearchFilter("эротика", "42"), SearchFilter("элементы юмора", "16"),
SearchFilter("этти", "40"), SearchFilter("этти", "40"),
SearchFilter("юри", "41"), SearchFilter("юри", "41"),
SearchFilter("яой", "43") SearchFilter("яой", "43")

View File

@ -1,7 +1,7 @@
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
@Serializable @Serializable
data class GenresDto( data class TagsDto(
val id: Int, val id: Int,
val name: String val name: String
) )
@ -44,8 +44,9 @@ data class MangaDetDto(
val description: String, val description: String,
val issue_year: Int?, val issue_year: Int?,
val img: ImgDto, val img: ImgDto,
val type: GenresDto, val type: TagsDto,
val genres: List<GenresDto>, val genres: List<TagsDto>,
val categories: List<TagsDto>,
val branches: List<BranchesDto>, val branches: List<BranchesDto>,
val status: StatusDto, val status: StatusDto,
val avg_rating: String, val avg_rating: String,