[RU]GroupLe fix status and search (#12797)
* [RU]GroupLe fix status and search * moovs filters * more * typos
This commit is contained in:
parent
af3278963b
commit
8ca9852e9c
@ -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)
|
||||
}
|
||||
|
@ -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"),
|
||||
|
@ -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")
|
||||
)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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"),
|
||||
|
@ -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))
|
||||
|
@ -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),
|
||||
|
Loading…
x
Reference in New Issue
Block a user