[RU] Readmanga & Mintmanga add rate/score and fixes (#7158)
* Readmanga & Mintmanga add rate * Fix/simplification code * add sort year * delete sort name(alphabet) * edit the sensitivity of stars * micro-sensitivity underestimation
This commit is contained in:
parent
4251a849bc
commit
6f3ea81db1
|
@ -5,7 +5,7 @@ ext {
|
|||
extName = 'AllHentai'
|
||||
pkgNameSuffix = 'ru.allhentai'
|
||||
extClass = '.AllHentai'
|
||||
extVersionCode = 5
|
||||
extVersionCode = 6
|
||||
libVersion = '1.2'
|
||||
containsNsfw = true
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@ class AllHentai : ParsedHttpSource() {
|
|||
}
|
||||
is OrderBy -> {
|
||||
if (filter.state > 0) {
|
||||
val ord = arrayOf("not", "year", "name", "rate", "popularity", "votes", "created", "updated")[filter.state]
|
||||
val ord = arrayOf("not", "year", "rate", "popularity", "votes", "created", "updated")[filter.state]
|
||||
val ordUrl = "$baseUrl/list?sortType=$ord".toHttpUrlOrNull()!!.newBuilder()
|
||||
return GET(ordUrl.toString(), headers)
|
||||
}
|
||||
|
@ -277,8 +277,8 @@ class AllHentai : ParsedHttpSource() {
|
|||
}
|
||||
|
||||
private class OrderBy : Filter.Select<String>(
|
||||
"Сортировка (only)",
|
||||
arrayOf("Без сортировки", "По году", "По алфавиту", "По популярности", "Популярно сейчас", "По рейтингу", "Новинки", "По дате обновления")
|
||||
"Сортировка (только)",
|
||||
arrayOf("Без сортировки", "По году", "По популярности", "Популярно сейчас", "По рейтингу", "Новинки", "По дате обновления")
|
||||
)
|
||||
|
||||
private class Genre(name: String, val id: String) : Filter.TriState(name)
|
||||
|
@ -286,16 +286,16 @@ class AllHentai : ParsedHttpSource() {
|
|||
private class GenreList(genres: List<Genre>) : Filter.Group<Genre>("Жанры", genres)
|
||||
private class Category(categories: List<Genre>) : Filter.Group<Genre>("Категории", categories)
|
||||
private class FilList(fils: List<Genre>) : Filter.Group<Genre>("Фильтры", fils)
|
||||
private class Tags(tags: Array<String>) : Filter.Select<String>("Тэг (only)", tags)
|
||||
private class Tags(tags: Array<String>) : Filter.Select<String>("Тэг (только)", tags)
|
||||
|
||||
private data class Tag(val name: String, val url: String)
|
||||
|
||||
override fun getFilterList() = FilterList(
|
||||
OrderBy(),
|
||||
Tags(tagsName),
|
||||
GenreList(getGenreList()),
|
||||
Category(getCategoryList()),
|
||||
FilList(getFilList()),
|
||||
Tags(tagsName)
|
||||
FilList(getFilList())
|
||||
)
|
||||
|
||||
/*
|
||||
|
|
|
@ -5,7 +5,7 @@ ext {
|
|||
extName = 'MangaLib'
|
||||
pkgNameSuffix = 'ru.libmanga'
|
||||
extClass = '.LibManga'
|
||||
extVersionCode = 48
|
||||
extVersionCode = 49
|
||||
libVersion = '1.2'
|
||||
}
|
||||
|
||||
|
|
|
@ -181,15 +181,15 @@ class LibManga : ConfigurableSource, HttpSource() {
|
|||
val ratingVotes = document.select(".media-rating.media-rating_lg div.media-rating__votes").text()
|
||||
val ratingStar = when {
|
||||
ratingValue > 9.5 -> "★★★★★"
|
||||
ratingValue > 9.0 -> "★★★★✬"
|
||||
ratingValue > 8.5 -> "★★★★✬"
|
||||
ratingValue > 7.5 -> "★★★★☆"
|
||||
ratingValue > 7.0 -> "★★★✬☆"
|
||||
ratingValue > 6.5 -> "★★★✬☆"
|
||||
ratingValue > 5.5 -> "★★★☆☆"
|
||||
ratingValue > 5.0 -> "★★✬☆☆"
|
||||
ratingValue > 4.5 -> "★★✬☆☆"
|
||||
ratingValue > 3.5 -> "★★☆☆☆"
|
||||
ratingValue > 3.0 -> "★✬☆☆☆"
|
||||
ratingValue > 2.5 -> "★✬☆☆☆"
|
||||
ratingValue > 1.5 -> "★☆☆☆☆"
|
||||
ratingValue > 1.0 -> "✬☆☆☆☆"
|
||||
ratingValue > 0.5 -> "✬☆☆☆☆"
|
||||
else -> "☆☆☆☆☆"
|
||||
}
|
||||
val genres = document.select(".media-tags > a").map { it.text() }
|
||||
|
|
|
@ -5,7 +5,7 @@ ext {
|
|||
extName = 'Mintmanga'
|
||||
pkgNameSuffix = 'ru.mintmanga'
|
||||
extClass = '.Mintmanga'
|
||||
extVersionCode = 28
|
||||
extVersionCode = 29
|
||||
libVersion = '1.2'
|
||||
}
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ class Mintmanga : ParsedHttpSource() {
|
|||
override fun latestUpdatesNextPageSelector() = "a.nextLink"
|
||||
|
||||
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
||||
var url = "$baseUrl/search/advanced".toHttpUrlOrNull()!!.newBuilder()
|
||||
val url = "$baseUrl/search/advanced".toHttpUrlOrNull()!!.newBuilder()
|
||||
(if (filters.isEmpty()) getFilterList() else filters).forEach { filter ->
|
||||
when (filter) {
|
||||
is GenreList -> filter.state.forEach { genre ->
|
||||
|
@ -98,12 +98,10 @@ class Mintmanga : ParsedHttpSource() {
|
|||
}
|
||||
}
|
||||
is OrderBy -> {
|
||||
if (filter.state == 0) {
|
||||
url = "$baseUrl/search/advanced".toHttpUrlOrNull()!!.newBuilder()
|
||||
} else {
|
||||
val ord = arrayOf("not", "year", "name", "rate", "popularity", "votes", "created", "updated")[filter.state]
|
||||
url = "$baseUrl/list?sortType=$ord".toHttpUrlOrNull()!!.newBuilder()
|
||||
return GET(url.toString(), headers)
|
||||
if (filter.state > 0) {
|
||||
val ord = arrayOf("not", "year", "rate", "popularity", "votes", "created", "updated")[filter.state]
|
||||
val ordUrl = "$baseUrl/list?sortType=$ord".toHttpUrlOrNull()!!.newBuilder()
|
||||
return GET(ordUrl.toString(), headers)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -129,7 +127,22 @@ class Mintmanga : ParsedHttpSource() {
|
|||
} else {
|
||||
"манга"
|
||||
}
|
||||
|
||||
val ratingValue = infoElement.select(".col-sm-7 .rating-block").attr("data-score").toFloat() * 2
|
||||
val ratingValueOver = infoElement.select(".info-icon").attr("data-content").substringAfter("Относительно остальных произведений: <b>").substringBefore("/5</b>").replace(",", ".").toFloat() * 2
|
||||
val ratingVotes = infoElement.select(".col-sm-7 .user-rating meta[itemprop=\"ratingCount\"]").attr("content")
|
||||
val ratingStar = when {
|
||||
ratingValue > 9.5 -> "★★★★★"
|
||||
ratingValue > 8.5 -> "★★★★✬"
|
||||
ratingValue > 7.5 -> "★★★★☆"
|
||||
ratingValue > 6.5 -> "★★★✬☆"
|
||||
ratingValue > 5.5 -> "★★★☆☆"
|
||||
ratingValue > 4.5 -> "★★✬☆☆"
|
||||
ratingValue > 3.5 -> "★★☆☆☆"
|
||||
ratingValue > 2.5 -> "★✬☆☆☆"
|
||||
ratingValue > 1.5 -> "★☆☆☆☆"
|
||||
ratingValue > 0.5 -> "✬☆☆☆☆"
|
||||
else -> "☆☆☆☆☆"
|
||||
}
|
||||
val manga = SManga.create()
|
||||
var authorElement = infoElement.select("span.elem_author").first()?.text()
|
||||
if (authorElement == null) {
|
||||
|
@ -143,7 +156,7 @@ class Mintmanga : ParsedHttpSource() {
|
|||
if (infoElement.select(".another-names").isNotEmpty()) {
|
||||
altName = "Альтернативные названия:\n" + infoElement.select(".another-names").text() + "\n\n"
|
||||
}
|
||||
manga.description = altName + infoElement.select("div.manga-description").text()
|
||||
manga.description = ratingStar + " " + ratingValue + "[ⓘ" + ratingValueOver + "]" + " (голосов: " + ratingVotes + ")\n" + altName + infoElement.select("div.manga-description").text()
|
||||
manga.status = parseStatus(infoElement.html())
|
||||
manga.thumbnail_url = infoElement.select("img").attr("data-full")
|
||||
return manga
|
||||
|
@ -305,8 +318,8 @@ class Mintmanga : ParsedHttpSource() {
|
|||
}
|
||||
|
||||
private class OrderBy : Filter.Select<String>(
|
||||
"Сортировать",
|
||||
arrayOf("Без(фильтры)", "По году", "По алфавиту", "По популярности", "Популярно сейчас", "По рейтингу", "Новинки", "По дате обновления")
|
||||
"Сортировка (только)",
|
||||
arrayOf("Без сортировки", "По году", "По популярности", "Популярно сейчас", "По рейтингу", "Новинки", "По дате обновления")
|
||||
)
|
||||
|
||||
private class Genre(name: String, val id: String) : Filter.TriState(name)
|
||||
|
|
|
@ -5,7 +5,7 @@ ext {
|
|||
extName = 'Readmanga'
|
||||
pkgNameSuffix = 'ru.readmanga'
|
||||
extClass = '.Readmanga'
|
||||
extVersionCode = 27
|
||||
extVersionCode = 28
|
||||
libVersion = '1.2'
|
||||
}
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ class Readmanga : ParsedHttpSource() {
|
|||
override fun latestUpdatesNextPageSelector() = "a.nextLink"
|
||||
|
||||
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
||||
var url = "$baseUrl/search/advanced".toHttpUrlOrNull()!!.newBuilder()
|
||||
val url = "$baseUrl/search/advanced".toHttpUrlOrNull()!!.newBuilder()
|
||||
(if (filters.isEmpty()) getFilterList() else filters).forEach { filter ->
|
||||
when (filter) {
|
||||
is GenreList -> filter.state.forEach { genre ->
|
||||
|
@ -98,12 +98,10 @@ class Readmanga : ParsedHttpSource() {
|
|||
}
|
||||
}
|
||||
is OrderBy -> {
|
||||
if (filter.state == 0) {
|
||||
url = "$baseUrl/search/advanced".toHttpUrlOrNull()!!.newBuilder()
|
||||
} else {
|
||||
val ord = arrayOf("not", "name", "rate", "popularity", "votes", "created", "updated")[filter.state]
|
||||
url = "$baseUrl/list?sortType=$ord".toHttpUrlOrNull()!!.newBuilder()
|
||||
return GET(url.toString(), headers)
|
||||
if (filter.state > 0) {
|
||||
val ord = arrayOf("not", "year", "rate", "popularity", "votes", "created", "updated")[filter.state]
|
||||
val ordUrl = "$baseUrl/list?sortType=$ord".toHttpUrlOrNull()!!.newBuilder()
|
||||
return GET(ordUrl.toString(), headers)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -130,6 +128,23 @@ class Readmanga : ParsedHttpSource() {
|
|||
"манга"
|
||||
}
|
||||
|
||||
val ratingValue = infoElement.select(".col-sm-7 .rating-block").attr("data-score").toFloat() * 2
|
||||
val ratingValueOver = infoElement.select(".info-icon").attr("data-content").substringAfter("Относительно остальных произведений: <b>").substringBefore("/5</b>").replace(",", ".").toFloat() * 2
|
||||
val ratingVotes = infoElement.select(".col-sm-7 .user-rating meta[itemprop=\"ratingCount\"]").attr("content")
|
||||
val ratingStar = when {
|
||||
ratingValue > 9.5 -> "★★★★★"
|
||||
ratingValue > 8.5 -> "★★★★✬"
|
||||
ratingValue > 7.5 -> "★★★★☆"
|
||||
ratingValue > 6.5 -> "★★★✬☆"
|
||||
ratingValue > 5.5 -> "★★★☆☆"
|
||||
ratingValue > 4.5 -> "★★✬☆☆"
|
||||
ratingValue > 3.5 -> "★★☆☆☆"
|
||||
ratingValue > 2.5 -> "★✬☆☆☆"
|
||||
ratingValue > 1.5 -> "★☆☆☆☆"
|
||||
ratingValue > 0.5 -> "✬☆☆☆☆"
|
||||
else -> "☆☆☆☆☆"
|
||||
}
|
||||
|
||||
val manga = SManga.create()
|
||||
var authorElement = infoElement.select("span.elem_author").first()?.text()
|
||||
if (authorElement == null) {
|
||||
|
@ -143,7 +158,7 @@ class Readmanga : ParsedHttpSource() {
|
|||
if (infoElement.select(".another-names").isNotEmpty()) {
|
||||
altName = "Альтернативные названия:\n" + infoElement.select(".another-names").text() + "\n\n"
|
||||
}
|
||||
manga.description = altName + infoElement.select("div.manga-description").text()
|
||||
manga.description = ratingStar + " " + ratingValue + "[ⓘ" + ratingValueOver + "]" + " (голосов: " + ratingVotes + ")\n" + altName + infoElement.select("div.manga-description").text()
|
||||
manga.status = parseStatus(infoElement.html())
|
||||
manga.thumbnail_url = infoElement.select("img").attr("data-full")
|
||||
return manga
|
||||
|
@ -306,8 +321,8 @@ class Readmanga : ParsedHttpSource() {
|
|||
}
|
||||
|
||||
private class OrderBy : Filter.Select<String>(
|
||||
"Сортировать",
|
||||
arrayOf("Без(фильтры)", "По алфавиту", "По популярности", "Популярно сейчас", "По рейтингу", "Новинки", "По дате обновления")
|
||||
"Сортировка (только)",
|
||||
arrayOf("Без сортировки", "По году", "По популярности", "Популярно сейчас", "По рейтингу", "Новинки", "По дате обновления")
|
||||
)
|
||||
|
||||
private class Genre(name: String, val id: String) : Filter.TriState(name)
|
||||
|
|
|
@ -5,7 +5,7 @@ ext {
|
|||
extName = 'Remanga'
|
||||
pkgNameSuffix = 'ru.remanga'
|
||||
extClass = '.Remanga'
|
||||
extVersionCode = 24
|
||||
extVersionCode = 25
|
||||
libVersion = '1.2'
|
||||
}
|
||||
|
||||
|
|
|
@ -211,15 +211,15 @@ class Remanga : ConfigurableSource, HttpSource() {
|
|||
val ratingValue = avg_rating.toFloat()
|
||||
val ratingStar = when {
|
||||
ratingValue > 9.5 -> "★★★★★"
|
||||
ratingValue > 9.0 -> "★★★★✬"
|
||||
ratingValue > 8.5 -> "★★★★✬"
|
||||
ratingValue > 7.5 -> "★★★★☆"
|
||||
ratingValue > 7.0 -> "★★★✬☆"
|
||||
ratingValue > 6.5 -> "★★★✬☆"
|
||||
ratingValue > 5.5 -> "★★★☆☆"
|
||||
ratingValue > 5.0 -> "★★✬☆☆"
|
||||
ratingValue > 4.5 -> "★★✬☆☆"
|
||||
ratingValue > 3.5 -> "★★☆☆☆"
|
||||
ratingValue > 3.0 -> "★✬☆☆☆"
|
||||
ratingValue > 2.5 -> "★✬☆☆☆"
|
||||
ratingValue > 1.5 -> "★☆☆☆☆"
|
||||
ratingValue > 1.0 -> "✬☆☆☆☆"
|
||||
ratingValue > 0.5 -> "✬☆☆☆☆"
|
||||
else -> "☆☆☆☆☆"
|
||||
}
|
||||
val o = this
|
||||
|
|
Loading…
Reference in New Issue