[RU]GroupLe fix status and search (#12797)

* [RU]GroupLe fix status and search

* moovs filters

* more

* typos
This commit is contained in:
Ejan 2022-07-30 17:38:45 +05:00 committed by GitHub
parent af3278963b
commit 8ca9852e9c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 53 additions and 40 deletions

View File

@ -12,7 +12,7 @@ class AllHentai : GroupLe("AllHentai", "http://23.allhen.online", "ru") {
override val id: Long = 1809051393403180443
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
val url = "$baseUrl/search/advanced".toHttpUrlOrNull()!!.newBuilder()
val url = "$baseUrl/search/advanced?offset=${70 * (page - 1)}".toHttpUrlOrNull()!!.newBuilder()
(if (filters.isEmpty()) getFilterList() else filters).forEach { filter ->
when (filter) {
is GenreList -> filter.state.forEach { genre ->
@ -50,7 +50,7 @@ class AllHentai : GroupLe("AllHentai", "http://23.allhen.online", "ru") {
if (query.isNotEmpty()) {
url.addQueryParameter("q", query)
}
return if (url.toString().contains("?"))
return if (url.toString().contains("&"))
GET(url.toString().replace("=%3D", "="), headers)
else popularMangaRequest(page)
}

View File

@ -12,7 +12,7 @@ class MintManga : GroupLe("MintManga", "https://mintmanga.live", "ru") {
override val id: Long = 6
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
val url = "$baseUrl/search/advanced".toHttpUrlOrNull()!!.newBuilder()
val url = "$baseUrl/search/advanced?offset=${70 * (page - 1)}".toHttpUrlOrNull()!!.newBuilder()
(if (filters.isEmpty()) getFilterList() else filters).forEach { filter ->
when (filter) {
is GenreList -> filter.state.forEach { genre ->
@ -53,7 +53,7 @@ class MintManga : GroupLe("MintManga", "https://mintmanga.live", "ru") {
if (query.isNotEmpty()) {
url.addQueryParameter("q", query)
}
return if (url.toString().contains("?"))
return if (url.toString().contains("&"))
GET(url.toString().replace("=%3D", "="), headers)
else popularMangaRequest(page)
}
@ -85,10 +85,13 @@ class MintManga : GroupLe("MintManga", "https://mintmanga.live", "ru") {
Genre("Для взрослых", "s_mature"),
Genre("Завершенная", "s_completed"),
Genre("Переведено", "s_translated"),
Genre("Заброшен перевод", "s_abandoned_popular"),
Genre("Длинная", "s_many_chapters"),
Genre("Ожидает загрузки", "s_wait_upload"),
Genre("Белые жанры", "s_not_pessimized")
)
private fun getMore() = listOf(
Genre("Анонс", "el_6641"),
Genre("В цвете", "el_4614"),
Genre("Веб", "el_1355"),
Genre("Выпуск приостановлен", "el_5232"),
@ -103,28 +106,27 @@ class MintManga : GroupLe("MintManga", "https://mintmanga.live", "ru") {
)
private fun getCategoryList() = listOf(
Genre("OEL-манга", "el_6637"),
Genre("Додзинси", "el_1332"),
Genre("Арт", "el_2220"),
Genre("Ёнкома", "el_2741"),
Genre("Комикс западный", "el_1903"),
Genre("Комикс русский", "el_2173"),
Genre("Комикс", "el_1903"),
Genre("Манхва", "el_1873"),
Genre("Маньхуа", "el_1875"),
Genre("Ранобэ", "el_5688"),
)
private fun getGenreList() = listOf(
Genre("арт", "el_2220"),
Genre("бара", "el_1353"),
Genre("боевик", "el_1346"),
Genre("боевые искусства", "el_1334"),
Genre("вампиры", "el_1339"),
Genre("гарем", "el_1333"),
Genre("гендерная интрига", "el_1347"),
Genre("героическое фэнтези", "el_1337"),
Genre("детектив", "el_1343"),
Genre("дзёсэй", "el_1349"),
Genre("додзинси", "el_1332"),
Genre("драма", "el_1310"),
Genre("игра", "el_5229"),
Genre("исэкай", "el_6420"),
Genre("история", "el_1311"),
Genre("киберпанк", "el_1351"),
Genre("комедия", "el_1328"),
@ -144,9 +146,11 @@ class MintManga : GroupLe("MintManga", "https://mintmanga.live", "ru") {
Genre("сёнэн-ай", "el_1330"),
Genre("спорт", "el_1321"),
Genre("сэйнэн", "el_1329"),
Genre("сянься", "el_6631"),
Genre("трагедия", "el_1344"),
Genre("триллер", "el_1341"),
Genre("ужасы", "el_1317"),
Genre("уся", "el_6632"),
Genre("фэнтези", "el_1323"),
Genre("школа", "el_1319"),
Genre("эротика", "el_1340"),

View File

@ -12,7 +12,7 @@ class ReadManga : GroupLe("ReadManga", "https://readmanga.live", "ru") {
override val id: Long = 5
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
val url = "$baseUrl/search/advanced".toHttpUrlOrNull()!!.newBuilder()
val url = "$baseUrl/search/advanced?offset=${70 * (page - 1)}".toHttpUrlOrNull()!!.newBuilder()
(if (filters.isEmpty()) getFilterList() else filters).forEach { filter ->
when (filter) {
is GenreList -> filter.state.forEach { genre ->
@ -53,7 +53,7 @@ class ReadManga : GroupLe("ReadManga", "https://readmanga.live", "ru") {
if (query.isNotEmpty()) {
url.addQueryParameter("q", query)
}
return if (url.toString().contains("?"))
return if (url.toString().contains("&"))
GET(url.toString().replace("=%3D", "="), headers)
else popularMangaRequest(page)
}
@ -86,14 +86,16 @@ class ReadManga : GroupLe("ReadManga", "https://readmanga.live", "ru") {
Genre("Для взрослых", "s_mature"),
Genre("Завершенная", "s_completed"),
Genre("Переведено", "s_translated"),
Genre("Заброшен перевод", "s_abandoned_popular"),
Genre("Длинная", "s_many_chapters"),
Genre("Ожидает загрузки", "s_wait_upload"),
Genre("Продается", "s_sale")
Genre("Продается", "s_sale"),
Genre("Белые жанры", "s_not_pessimized")
)
private fun getMore() = listOf(
Genre("Анонс", "el_9578"),
Genre("В цвете", "el_7290"),
Genre("Веб", "el_2160"),
Genre("Выпуск приостановлен", "el_8033"),
Genre("Сборник", "el_2157")
)
@ -104,26 +106,27 @@ class ReadManga : GroupLe("ReadManga", "https://readmanga.live", "ru") {
)
private fun getCategoryList() = listOf(
Genre("OEL-манга", "el_9577"),
Genre("Додзинси", "el_2141"),
Genre("Арт", "el_5685"),
Genre("Ёнкома", "el_2161"),
Genre("Комикс западный", "el_3515"),
Genre("Комикс", "el_3515"),
Genre("Манхва", "el_3001"),
Genre("Маньхуа", "el_3002"),
Genre("Ранобэ", "el_8575"),
)
private fun getGenreList() = listOf(
Genre("арт", "el_5685"),
Genre("боевик", "el_2155"),
Genre("боевые искусства", "el_2143"),
Genre("вампиры", "el_2148"),
Genre("гарем", "el_2142"),
Genre("гендерная интрига", "el_2156"),
Genre("героическое фэнтези", "el_2146"),
Genre("детектив", "el_2152"),
Genre("дзёсэй", "el_2158"),
Genre("додзинси", "el_2141"),
Genre("драма", "el_2118"),
Genre("игра", "el_2154"),
Genre("исэкай", "el_9450"),
Genre("история", "el_2119"),
Genre("киберпанк", "el_8032"),
Genre("кодомо", "el_2137"),
@ -144,12 +147,13 @@ class ReadManga : GroupLe("ReadManga", "https://readmanga.live", "ru") {
Genre("сёнэн-ай", "el_2139"),
Genre("спорт", "el_2129"),
Genre("сэйнэн", "el_2138"),
Genre("сянься", "el_9561"),
Genre("трагедия", "el_2153"),
Genre("триллер", "el_2150"),
Genre("ужасы", "el_2125"),
Genre("уся", "el_9560"),
Genre("фэнтези", "el_2131"),
Genre("школа", "el_2127"),
Genre("этти", "el_2149"),
Genre("юри", "el_2123")
Genre("этти", "el_2149")
)
}

View File

@ -9,11 +9,11 @@ import okhttp3.Request
class RuMIX : GroupLe("RuMIX", "https://rumix.me", "ru") {
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
val url = "$baseUrl/search/advanced".toHttpUrlOrNull()!!.newBuilder()
val url = "$baseUrl/search/advanced?offset=${70 * (page - 1)}".toHttpUrlOrNull()!!.newBuilder()
if (query.isNotEmpty()) {
url.addQueryParameter("q", query)
}
return if (url.toString().contains("?"))
return if (url.toString().contains("&"))
GET(url.toString().replace("=%3D", "="), headers)
else popularMangaRequest(page)
}

View File

@ -12,7 +12,7 @@ class SelfManga : GroupLe("SelfManga", "https://selfmanga.live", "ru") {
override val id: Long = 5227602742162454547
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
val url = "$baseUrl/search/advanced".toHttpUrlOrNull()!!.newBuilder()
val url = "$baseUrl/search/advanced?offset=${70 * (page - 1)}".toHttpUrlOrNull()!!.newBuilder()
(if (filters.isEmpty()) getFilterList() else filters).forEach { filter ->
when (filter) {
is GenreList -> filter.state.forEach { genre ->
@ -31,7 +31,7 @@ class SelfManga : GroupLe("SelfManga", "https://selfmanga.live", "ru") {
if (query.isNotEmpty()) {
url.addQueryParameter("q", query)
}
return if (url.toString().contains("?"))
return if (url.toString().contains("&"))
GET(url.toString().replace("=%3D", "="), headers)
else popularMangaRequest(page)
}
@ -56,7 +56,6 @@ class SelfManga : GroupLe("SelfManga", "https://selfmanga.live", "ru") {
private fun getGenreList() = listOf(
Genre("боевик", "el_2155"),
Genre("боевые искусства", "el_2143"),
Genre("вампиры", "el_2148"),
Genre("гарем", "el_2142"),
Genre("гендерная интрига", "el_2156"),
Genre("героическое фэнтези", "el_2146"),

View File

@ -90,7 +90,6 @@ abstract class GroupLe(
override fun searchMangaFromElement(element: Element): SManga = popularMangaFromElement(element)
// max 200 results (exception OrderBy)
override fun searchMangaNextPageSelector() = popularMangaNextPageSelector()
override fun mangaDetailsParse(document: Document): SManga {
@ -120,9 +119,13 @@ abstract class GroupLe(
}
val rawAgeValue = infoElement.select(".elem_limitation .element-link").first()?.text()
val rawAgeStop = when (rawAgeValue) {
"PG" -> "16+"
"PG-13" -> "12+"
else -> "0+"
"NC-17" -> "18+, "
"R18+" -> "18+, "
"R" -> "16+, "
"G" -> "16+, "
"PG" -> "16+, "
"PG-13" -> "12+, "
else -> ""
}
val manga = SManga.create()
var authorElement = infoElement.select("span.elem_author").first()?.text()
@ -132,25 +135,28 @@ abstract class GroupLe(
manga.title = document.select("h1.names .name").text()
manga.author = authorElement
manga.artist = infoElement.select("span.elem_illustrator").first()?.text()
manga.genre = category + ", " + rawAgeStop + ", " + infoElement.select("span.elem_genre").text().split(",").joinToString { it.trim() }
manga.genre = category + ", " + rawAgeStop + infoElement.select("span.elem_genre").text().split(",").joinToString { it.trim() }
var altName = ""
if (infoElement.select(".another-names").isNotEmpty()) {
altName = "Альтернативные названия:\n" + infoElement.select(".another-names").text() + "\n\n"
}
manga.description = ratingStar + " " + ratingValue + "[ⓘ" + ratingValueOver + "]" + " (голосов: " + ratingVotes + ")\n" + altName + document.select("div#tab-description .manga-description").text()
manga.status = parseStatus(infoElement.html())
manga.status = when {
infoElement.html().contains("Запрещена публикация произведения по копирайту") || infoElement.html().contains("ЗАПРЕЩЕНА К ПУБЛИКАЦИИ НА ТЕРРИТОРИИ РФ!") -> SManga.LICENSED
infoElement.html().contains("<b>Сингл</b>") -> SManga.COMPLETED
else ->
when (infoElement.select("p:contains(Перевод:) span").first()?.text()) {
"продолжается" -> SManga.ONGOING
"начат" -> SManga.ONGOING
"переведено" -> SManga.COMPLETED
"приостановлен" -> SManga.ON_HIATUS
else -> SManga.UNKNOWN
}
}
manga.thumbnail_url = infoElement.select("img").attr("data-full")
return manga
}
private fun parseStatus(element: String): Int = when {
element.contains("Запрещена публикация произведения по копирайту") || element.contains("ЗАПРЕЩЕНА К ПУБЛИКАЦИИ НА ТЕРРИТОРИИ РФ!") -> SManga.LICENSED
element.contains("<b>Перевод:</b> продолжается") -> SManga.ONGOING
element.contains("<b>Сингл</b>") || element.contains("<b>Перевод:</b> завер") || element.contains("<b>Перевод:</b> переведено") -> SManga.COMPLETED
element.contains("<b>Перевод:</b> приостановлен") -> SManga.ON_HIATUS
else -> SManga.UNKNOWN
}
override fun fetchChapterList(manga: SManga): Observable<List<SChapter>> {
return if (manga.status != SManga.LICENSED) {
client.newCall(chapterListRequest(manga))

View File

@ -9,7 +9,7 @@ class GroupLeGenerator : ThemeSourceGenerator {
override val themeClass = "GroupLe"
override val baseVersionCode: Int = 4
override val baseVersionCode: Int = 5
override val sources = listOf(
SingleLang("ReadManga", "https://readmanga.live", "ru", overrideVersionCode = 46),