Bump dependencies (#15312)

This commit is contained in:
arkon 2023-02-11 12:56:34 -05:00 committed by GitHub
parent 1128b1fcd8
commit 1397c5b1b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
90 changed files with 118 additions and 51 deletions

View File

@ -1,10 +1,10 @@
[versions]
kotlin_version = "1.6.21"
coroutines_version = "1.6.0"
serialization_version = "1.3.2"
kotlin_version = "1.7.21"
coroutines_version = "1.6.4"
serialization_version = "1.4.0"
[libraries]
gradle-agp = { module = "com.android.tools.build:gradle", version = "7.3.0" }
gradle-agp = { module = "com.android.tools.build:gradle", version = "7.4.1" }
gradle-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin_version" }
gradle-serialization = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "kotlin_version" }
gradle-kotlinter = { module = "org.jmailen.gradle:kotlinter-gradle", version = "3.6.0" }

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@ -57,7 +57,7 @@ class AllHentai : GroupLe("AllHentai", "http://allhen.online", "ru") {
return GET(tagUrl.toString(), headers)
}
}
else -> return@forEach
else -> {}
}
}
return if (url.toString().contains("&"))

View File

@ -49,7 +49,7 @@ class MintManga : GroupLe("MintManga", "https://mintmanga.live", "ru") {
return GET(ordUrl.toString(), headers)
}
}
else -> return@forEach
else -> {}
}
}
return if (url.toString().contains("&"))

View File

@ -49,7 +49,7 @@ class ReadManga : GroupLe("ReadManga", "https://readmanga.live", "ru") {
return GET(ordUrl.toString(), headers)
}
}
else -> return@forEach
else -> {}
}
}
return if (url.toString().contains("&"))

View File

@ -43,6 +43,7 @@ class HentaiLib : LibGroup("HentaiLib", "https://hentailib.me", "ru") {
)
}
}
else -> {}
}
}
return POST(url.toString(), catalogHeaders())

View File

@ -67,6 +67,7 @@ class MangaLib : LibGroup("MangaLib", "https://mangalib.me", "ru") {
)
}
}
else -> {}
}
}
return POST(url.toString(), catalogHeaders())

View File

@ -49,6 +49,7 @@ class YaoiLib : LibGroup("YaoiLib", "https://v1.yaoilib.net", "ru") {
)
}
}
else -> {}
}
}
return POST(url.toString(), catalogHeaders())

View File

@ -49,6 +49,7 @@ class DoujinHentai : Madara(
url.addQueryParameter("page", page.toString())
}
}
else -> {}
}
}
}

View File

@ -66,6 +66,7 @@ class PojokManga : Madara("Pojok Manga", "https://pojokmanga.net", "id", SimpleD
url = "$baseUrl/project/page/$page".toHttpUrlOrNull()!!.newBuilder()
}
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -34,6 +34,7 @@ class YaoiChan : MultiChan("YaoiChan", "https://yaoi-chan.me", "ru") {
}
}
is Status -> status = arrayOf("", "all_done", "end", "ongoing", "new_ch")[filter.state]
else -> {}
}
}
@ -47,6 +48,7 @@ class YaoiChan : MultiChan("YaoiChan", "https://yaoi-chan.me", "ru") {
arrayOf("&n=dateasc", "&n=favdesc", "&n=abcasc", "&n=chdesc")[filter.state!!.index]
}
}
else -> {}
}
}
if (statusParam) {
@ -64,6 +66,7 @@ class YaoiChan : MultiChan("YaoiChan", "https://yaoi-chan.me", "ru") {
arrayOf("manga/new&n=dateasc", "mostfavorites", "catalog", "sortch")[filter.state!!.index]
}
}
else -> {}
}
}
if (statusParam) {

View File

@ -54,6 +54,7 @@ class Komikita : ZManga(
"$baseUrl$projectPageString/page/$page".toHttpUrlOrNull()!!.newBuilder()
}
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -42,6 +42,7 @@ class KomikPlay : ZManga("KomikPlay", "https://komikplay.com", "id", SimpleDateF
url = "$baseUrl$projectPageString/page/$page".toHttpUrlOrNull()!!.newBuilder()
}
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -68,6 +68,7 @@ class SekteKomik : ZManga("Sekte Komik", "https://sektekomik.com", "id") {
url = "$baseUrl$projectPageString/${pagePathSegment(page)}".toHttpUrlOrNull()!!.newBuilder()
}
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -93,6 +93,7 @@ abstract class FMReader(
if (filter.state?.ascending == true)
url.addQueryParameter("sort_type", "ASC")
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -559,6 +559,7 @@ abstract class LibGroup(
url.addQueryParameter(if (favorite.isIncluded()) "bookmarks[include][]" else "bookmarks[exclude][]", favorite.id)
}
}
else -> {}
}
}
return POST(url.toString(), catalogHeaders())

View File

@ -96,6 +96,7 @@ abstract class MangaBox(
filter.state.forEach { if (it.isIncluded()) genreInclude += "_${it.id}" }
filter.state.forEach { if (it.isExcluded()) genreExclude += "_${it.id}" }
}
else -> {}
}
}
url.addQueryParameter("g_i", genreInclude)
@ -108,6 +109,7 @@ abstract class MangaBox(
is SortFilter -> url.addQueryParameter("type", filter.toUriPart())
is StatusFilter -> url.addQueryParameter("state", filter.toUriPart())
is GenreFilter -> url.addQueryParameter("category", filter.toUriPart())
else -> {}
}
}
}

View File

@ -97,6 +97,7 @@ abstract class MangaWorld(
}
is SortBy -> url.addQueryParameter("sort", filter.toUriPart())
is TextField -> url.addQueryParameter(filter.key, filter.state)
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -72,6 +72,7 @@ abstract class Paprika(
when (filter) {
is GenreFilter -> url.addPathSegment(filter.toUriPart())
is OrderFilter -> url.addQueryParameter("orderby", filter.toUriPart())
else -> {}
}
}
url.addQueryParameter("page", page.toString())

View File

@ -41,6 +41,7 @@ abstract class PaprikaAlt(
when (filter) {
is GenreFilter -> url.addPathSegment(filter.toUriPart())
is OrderFilter -> url.addQueryParameter("orderby", filter.toUriPart())
else -> {}
}
}
url.addQueryParameter("page", page.toString())

View File

@ -84,6 +84,7 @@ abstract class WPComics(
when (filter) {
is GenreFilter -> filter.toUriPart()?.let { url.addPathSegment(it) }
is StatusFilter -> filter.toUriPart()?.let { url.addQueryParameter("status", it) }
else -> {}
}
}

View File

@ -93,6 +93,7 @@ abstract class ZManga(
url = "$baseUrl$projectPageString/page/$page".toHttpUrlOrNull()!!.newBuilder()
}
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -166,11 +166,11 @@ abstract class EHentai(
.joinToString(",")
.let { if (it.isNotEmpty()) ",$it" else it }
uri.appendQueryParameter("f_search", modifiedQuery)
//when attempting to search with no genres selected, will auto select all genres
// when attempting to search with no genres selected, will auto select all genres
filters.filterIsInstance<GenreGroup>().firstOrNull()?.state?.let {
//variable to to check is any genres are selected
val check = it.any { option -> option.state } // or it.any(GenreOption::state)
//if no genres are selected by the user set all genres to on
// variable to to check is any genres are selected
val check = it.any { option -> option.state } // or it.any(GenreOption::state)
// if no genres are selected by the user set all genres to on
if (!check) {
for (i in it) {
(i as GenreOption).state = true

View File

@ -123,13 +123,15 @@ class EveriaClub() : ParsedHttpSource() {
)
open class UriPartFilter(
displayName: String, private val valuePair: Array<Pair<String, String>>
displayName: String,
private val valuePair: Array<Pair<String, String>>
) : Filter.Select<String>(displayName, valuePair.map { it.first }.toTypedArray()) {
fun toUriPart() = valuePair[state].second
}
class CategoryFilter : UriPartFilter(
"Category", arrayOf(
"Category",
arrayOf(
Pair("Any", ""),
Pair("Gravure", "/gravure"),
Pair("Aidol", "/aidol"),

View File

@ -944,6 +944,7 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou
entryValues = KavitaConstants.filterPrefEntriesValue
setDefaultValue(KavitaConstants.defaultFilterPrefEntries)
setOnPreferenceChangeListener { _, newValue ->
@Suppress("UNCHECKED_CAST")
val checkValue = newValue as Set<String>
preferences.edit()
.putStringSet(KavitaConstants.toggledFiltersPref, checkValue)

View File

@ -170,6 +170,7 @@ open class Komga(private val suffix: String = "") : ConfigurableSource, Unmetere
url.addQueryParameter("sort", sortCriteria)
}
}
else -> {}
}
}

View File

@ -183,7 +183,7 @@ open class LANraragi(private val suffix: String = "") : ConfigurableSource, Unme
is DescendingOrder -> if (filter.state) uri.appendQueryParameter("order", "desc")
is SortByNamespace -> if (filter.state.isNotEmpty()) uri.appendQueryParameter("sortby", filter.state.trim())
is CategorySelect -> if (filter.state > 0) uri.appendQueryParameter("category", filter.toUriPart())
else -> Unit
else -> {}
}
}

View File

@ -73,6 +73,7 @@ class MangaParkFilters {
includedGenre += filter.state.filter { it.isIncluded() }.map { it.value }
excludedGenre += filter.state.filter { it.isExcluded() }.map { it.value }
}
else -> {}
}
}

View File

@ -101,7 +101,7 @@ open class MangaReader(
is GenresFilter -> {
addQueryParameter(filter.param, filter.selection)
}
else -> Unit
else -> {}
}
}
}

View File

@ -145,6 +145,7 @@ open class NineManga(
url.addQueryParameter("out_category_id", genreExclude)
}
is CompletedFilter -> url.addQueryParameter("completed_series", filter.toUriPart())
else -> {}
}
}

View File

@ -109,7 +109,7 @@ open class SimplyHentai(override val lang: String) : ConfigurableSource, HttpSou
is CharactersFilter -> filter.value?.forEachIndexed { idx, tag ->
appendQueryParameter("filter[characters][$idx]", tag.trim())
}
else -> Unit
else -> {}
}
}
GET(build().toString(), headers)

View File

@ -55,7 +55,7 @@ class YaoiMangaOnline : ParsedHttpSource() {
is TagFilter -> if (it.state != 0) {
addEncodedPathSegments("tag/$it")
}
else -> Unit
else -> {}
}
}
addEncodedPathSegments("page/$page")

View File

@ -79,6 +79,7 @@ class AsgardTeam : ParsedHttpSource() {
filters.forEach { filter ->
when (filter) {
is TypeFilter -> url.addQueryParameter("type", filter.toUriPart())
else -> {}
}
}
GET(url.build().toString(), headers)

View File

@ -85,6 +85,7 @@ class MangaAe : ParsedHttpSource() {
url += "|order:${filter.toUriPart()}"
}
}
else -> {}
}
}
url += "|arrange:minus"

View File

@ -46,6 +46,7 @@ class ComicExtra : ParsedHttpSource() {
filters.forEach { filter ->
when (filter) {
is GenreFilter -> url += "/${filter.toUriPart()}"
else -> {}
}
}
GET(url + if (page > 1) "/$page" else "", headers)

View File

@ -112,6 +112,7 @@ class Hentai2Read : ParsedHttpSource() {
}
}
is SortOrder -> sortOrder = filter.toUriPart()
else -> {}
}
}
}

View File

@ -77,6 +77,7 @@ class HentaiFox : ParsedHttpSource() {
is GenreFilter -> {
url += "${filter.toUriPart()}/pag/$page/"
}
else -> {}
}
}
GET(url, headers)

View File

@ -93,6 +93,7 @@ class Mangafreak : ParsedHttpSource() {
}
is StatusFilter -> url.addPathSegments("Status/${filter.toUriPart()}")
is TypeFilter -> url.addPathSegments("Type/${filter.toUriPart()}")
else -> {}
}
}

View File

@ -125,6 +125,7 @@ class Mangahere : ParsedHttpSource() {
url.addEncodedQueryParameter("released_method", "eq")
url.addEncodedQueryParameter("released", filter.state)
}
else -> {}
}
}

View File

@ -79,6 +79,7 @@ class MangaJar : ParsedHttpSource() {
is SortBy -> {
url.addQueryParameter("sortAscending", filter.toUriPart())
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -122,6 +122,7 @@ class MangaKatana : ConfigurableSource, ParsedHttpSource() {
else -> url.addQueryParameter("chapters", filter.state.trim())
}
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -103,7 +103,6 @@ class MangaPill : ParsedHttpSource() {
filters.forEach { filter ->
when (filter) {
is GenreList -> {
val genreInclude = mutableListOf<String>()
filter.state.forEach {
if (it.state == 1) {
@ -118,6 +117,7 @@ class MangaPill : ParsedHttpSource() {
}
is Status -> url.addQueryParameter("status", filter.toUriPart())
is Type -> url.addQueryParameter("type", filter.toUriPart())
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -166,6 +166,7 @@ class MangaRawClub : ParsedHttpSource() {
requestBody.add("options[]", it.name)
}
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -66,6 +66,7 @@ class MyHentaiComics : ParsedHttpSource() {
for (filter in if (filters.isEmpty()) getFilterList() else filters) {
when (filter) {
is GenreFilter -> url += filter.toUriPart() + "?page=$page"
else -> {}
}
}
GET(url, headers)

View File

@ -89,6 +89,7 @@ class MyHentaiGallery : ParsedHttpSource() {
is GenreFilter -> {
url.addPathSegment(filter.toUriPart())
}
else -> {}
}
}
url.addPathSegment("$page")

View File

@ -78,6 +78,7 @@ class NineAnime : ParsedHttpSource() {
for (filter in if (filters.isEmpty()) getFilterList() else filters) {
when (filter) {
is GenreFilter -> url += filter.toUriPart() + "_$page.html"
else -> {}
}
}
GET(url, headers)

View File

@ -65,6 +65,7 @@ open class RainOfSnow() : ParsedHttpSource() {
url.addQueryParameter("n_orderby", filter.toUriPart())
}
}
else -> {}
}
}
return GET(url.build().toString(), headers)

View File

@ -92,6 +92,7 @@ class Readmangatoday : ParsedHttpSource() {
Filter.TriState.STATE_EXCLUDE -> builder.add("exclude[]", genre.id.toString())
}
}
else -> {}
}
}
return POST("$baseUrl/advanced-search", headers, builder.build())

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.extension.en.tapastic
import android.app.Application
import android.content.SharedPreferences
import android.net.Uri
import android.webkit.CookieManager
import androidx.preference.PreferenceScreen
import androidx.preference.SwitchPreferenceCompat

View File

@ -88,6 +88,7 @@ class Webcomics : ParsedHttpSource() {
val genre = getGenreList()[filter.state]
url?.addQueryParameter("category", genre)
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -81,6 +81,7 @@ class HeavenManga : ParsedHttpSource() {
return GET("$baseUrl/$name$pageParameter", headers)
}
}
else -> {}
}
}
}

View File

@ -99,6 +99,7 @@ class Ikuhentai : ParsedHttpSource() {
url.addQueryParameter("m_orderby", orderBy)
}
is TextField -> url.addQueryParameter(filter.key, filter.state)
else -> {}
}
}

View File

@ -210,6 +210,7 @@ class Kumanga : HttpSource() {
.filter { genre -> genre.state }
.forEach { genre -> url.addQueryParameter("category_filter[]", genre.id) }
}
else -> {}
}
}

View File

@ -166,6 +166,7 @@ class LectorManga : ConfigurableSource, ParsedHttpSource() {
.filter { genre -> genre.state }
.forEach { genre -> url.addQueryParameter("genders[]", genre.id) }
}
else -> {}
}
}

View File

@ -126,6 +126,7 @@ open class MangaOni : ConfigurableSource, ParsedHttpSource() {
"genero",
genresArray[filter.state].second
)
else -> {}
}
}
uri.appendQueryParameter("p", page.toString())

View File

@ -148,6 +148,7 @@ class TMOHentai : ConfigurableSource, ParsedHttpSource() {
)
}
}
else -> {}
}
}

View File

@ -148,6 +148,7 @@ class TuMangaOnline : ConfigurableSource, ParsedHttpSource() {
}
}
}
else -> {}
}
}
return GET(url.build().toString(), headers)

View File

@ -80,25 +80,22 @@ open class VCPVMP(override val name: String, override val baseUrl: String) : Par
filters.forEach { filter ->
when (filter) {
is Genre -> {
when (filter.toUriPart().isNotEmpty()) {
true -> {
url = baseUrl.toHttpUrlOrNull()!!.newBuilder()
if (filter.toUriPart().isNotEmpty()) {
url = baseUrl.toHttpUrlOrNull()!!.newBuilder()
url.addPathSegments(if (isOnVCP) "tags" else "genero")
url.addPathSegments(filter.toUriPart())
url.addPathSegments(if (isOnVCP) "tags" else "genero")
url.addPathSegments(filter.toUriPart())
url.addPathSegments("page")
url.addPathSegments(page.toString())
}
url.addPathSegments("page")
url.addPathSegments(page.toString())
}
}
is Category -> {
when (filter.toUriPart().isNotEmpty()) {
true -> {
url.addQueryParameter("cat", filter.toUriPart())
}
if (filter.toUriPart().isNotEmpty()) {
url.addQueryParameter("cat", filter.toUriPart())
}
}
else -> {}
}
}

View File

@ -91,6 +91,7 @@ class BacaKomik : ParsedHttpSource() {
.filter { it.state != Filter.TriState.STATE_IGNORE }
.forEach { url.addQueryParameter("genre[]", it.id) }
}
else -> {}
}
}
return GET(url.build().toString(), headers)

View File

@ -325,6 +325,7 @@ class DoujinDesu : ParsedHttpSource() {
val status = filter.values[filter.state]
url.addQueryParameter("statusx", status.key)
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -117,6 +117,7 @@ class KomikIndoID : ParsedHttpSource() {
}
}
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -110,6 +110,7 @@ class Komiku : ParsedHttpSource() {
url = ("$baseUrl/pustaka" + if (page > 1) "/page/$page/" else "" + "?tipe=projek").toHttpUrlOrNull()!!.newBuilder()
}
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -61,6 +61,7 @@ class AnimeGDRClub : ParsedHttpSource() {
}
}
}
else -> {}
}
}

View File

@ -70,6 +70,7 @@ class DemoneCeleste : ParsedHttpSource() {
}
}
}
else -> {}
}
}
return GET("$url#$status", headers)

View File

@ -80,6 +80,7 @@ class HentaiFantasy : ParsedHttpSource() {
it.id.toString()
}
.forEach { tags.add(it) }
else -> {}
}
}

View File

@ -41,6 +41,7 @@ class ShingekiNoShoujo : ParsedHttpSource() {
}.map { it.id }[0]}/page/$page"
)
}
else -> {}
}
}
return GET(baseUrl, headers)

View File

@ -143,6 +143,7 @@ class Rawdevart : ParsedHttpSource() {
)
}
}
else -> {}
}
}

View File

@ -77,6 +77,7 @@ class SenManga : ParsedHttpSource() {
url.addQueryParameter("nogenre", genreExclude)
}
is SortFilter -> url.addQueryParameter("sort", filter.toUriPart())
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -29,7 +29,6 @@ import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response
import rx.Observable
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import uy.kohesive.injekt.injectLazy

View File

@ -21,7 +21,6 @@ import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response
import rx.Observable
import uy.kohesive.injekt.injectLazy
import java.text.Normalizer
import java.util.Locale

View File

@ -83,6 +83,7 @@ class AComics : ParsedHttpSource() {
}
}
}
else -> {}
}
}
"$baseUrl/comics?categories=${categories.joinToString(",")}&${rating.joinToString { "ratings[]=$it" }}&type=0&updatable=$status&subscribe=0&issue_count=2&sort=subscr_count&skip=${10 * (page - 1)}"

View File

@ -203,6 +203,7 @@ class ComX : ParsedHttpSource() {
sectionPub += publisher.id
}
}
else -> {}
}
}
val pageParameter = if (page > 1) "page/$page/" else ""

View File

@ -146,6 +146,7 @@ class Desu : HttpSource() {
is OrderBy -> url += "&order=" + arrayOf("popular", "updated", "name")[filter.state]
is TypeList -> filter.state.forEach { type -> if (type.state) types.add(type) }
is GenreList -> filter.state.forEach { genre -> if (genre.state) genres.add(genre) }
else -> {}
}
}

View File

@ -80,6 +80,7 @@ class MangaBook : ParsedHttpSource() {
url.addQueryParameter("ftype[]", forma.id)
}
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -80,6 +80,7 @@ class MangaClub : ParsedHttpSource() {
val orderID = arrayOf("date", "editdate", "title", "comm_num", "news_read", "rating")[filter.state!!.index]
url += "/sort=$orderID/order=$orderState"
}
else -> {}
}
}
url += "/page/$page"

View File

@ -63,6 +63,7 @@ class MangaPoisk : ParsedHttpSource() {
url.addQueryParameter("genres[]", genre.id)
}
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -203,6 +203,7 @@ class Newbie : ConfigurableSource, HttpSource() {
requireChapters = false
}
}
else -> {}
}
}

View File

@ -239,6 +239,7 @@ class Remanga : ConfigurableSource, HttpSource() {
return GET(UserProfileUrl.toString(), headers)
}
}
else -> {}
}
}
return GET(url.toString(), headers)

View File

@ -65,7 +65,7 @@ class UniComics : ParsedHttpSource() {
return GET(publisherUrl.toString(), headers)
}
}
else -> return@forEach
else -> {}
}
}
if (query.isNotEmpty()) {

View File

@ -126,6 +126,7 @@ class WebOfComics : ParsedHttpSource() {
publisherCat = getPublishersComics()[filter.state].id
}
}
else -> {}
}
}
}
@ -148,10 +149,12 @@ class WebOfComics : ParsedHttpSource() {
publisherCat = getPublishersManga()[filter.state].id
}
}
else -> {}
}
}
}
}
else -> {}
}
}

View File

@ -71,6 +71,7 @@ class YagamiProject : ParsedHttpSource() {
return GET(formaUrl.toString(), headers)
}
}
else -> {}
}
}
return popularMangaRequest(page)

View File

@ -64,7 +64,7 @@ class Mangainua : ParsedHttpSource() {
// Search
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
if (query.length > 2 ) {
if (query.length > 2) {
return POST(
"$baseUrl/index.php?do=search",
body = FormBody.Builder()

View File

@ -57,7 +57,7 @@ class HentaiVN : ParsedHttpSource() {
private val dateFormat = SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH)
//latestUpdates
// latestUpdates
override fun latestUpdatesRequest(page: Int): Request {
return GET("$baseUrl/chap-moi.html?page=$page", headers)
}
@ -74,7 +74,7 @@ class HentaiVN : ParsedHttpSource() {
return manga
}
//Popular
// Popular
override fun popularMangaRequest(page: Int): Request {
return GET("$baseUrl/danh-sach.html?page=$page", headers)
}
@ -83,7 +83,7 @@ class HentaiVN : ParsedHttpSource() {
override fun popularMangaNextPageSelector() = latestUpdatesNextPageSelector()
override fun popularMangaSelector() = latestUpdatesSelector()
//Chapter
// Chapter
override fun chapterListSelector() = "table.listing > tbody > tr"
override fun chapterFromElement(element: Element): SChapter {
if (element.select("a").isEmpty()) throw Exception(element.select("h2").html())
@ -111,7 +111,7 @@ class HentaiVN : ParsedHttpSource() {
override fun imageUrlParse(document: Document) = ""
//Detail
// Detail
override fun mangaDetailsParse(document: Document): SManga {
val infoElement = document.select(".main > .page-left > .left-info > .page-info")
val manga = SManga.create()
@ -133,18 +133,18 @@ class HentaiVN : ParsedHttpSource() {
else -> SManga.UNKNOWN
}
//Pages
// Pages
override fun pageListParse(document: Document): List<Page> {
return document.select("#image > img").mapIndexed { i, e ->
Page(i, imageUrl = e.attr("abs:src"))
}
}
//Search
// Search
override fun searchMangaParse(response: Response): MangasPage {
val document = response.asJsoup()
if (document.select("p").toString()
.contains("Bạn chỉ có thể sử dụng chức năng này khi đã đăng ký thành viên")
.contains("Bạn chỉ có thể sử dụng chức năng này khi đã đăng ký thành viên")
)
throw Exception("Đăng nhập qua WebView để kích hoạt tìm kiếm")
@ -247,7 +247,7 @@ class HentaiVN : ParsedHttpSource() {
val group = getGroupList()[filter.state]
url.addQueryParameter("group", group.id)
}
else -> return@forEach
else -> {}
}
}

View File

@ -160,7 +160,7 @@ class YuriNeko : HttpSource() {
else -> continue
}
}
else -> continue
else -> {}
}
}
return popularMangaRequest(page)

View File

@ -112,6 +112,7 @@ class Kuaikanmanhua : HttpSource() {
is StatusFilter -> {
status = filter.toUriPart()
}
else -> {}
}
}
GET("$apiUrl/v1/search/by_tag?since=${(page - 1) * 10}&tag=$genre&sort=1&query_category=%7B%22update_status%22:$status%7D")

View File

@ -172,6 +172,7 @@ class Manhuaren : HttpSource() {
url = url.setQueryParameter("subCategoryId", filter.getId())
.setQueryParameter("subCategoryType", filter.getType())
}
else -> {}
}
}
url = url.addPathSegments("/v2/manga/getCategoryMangas")

View File

@ -217,6 +217,7 @@ class TencentComics : ParsedHttpSource() {
is VipFilter -> {
vip = filter.toUriPart()
}
else -> {}
}
}
GET("$desktopUrl/Comic/all/$genre${status}search/$popularity${vip}page/$page")

View File

@ -27,7 +27,6 @@ class Zerobyw : ParsedHttpSource(), ConfigurableSource {
private val preferences: SharedPreferences =
Injekt.get<Application>().getSharedPreferences("source_$id", 0x0000)
// Url can be found at https://cdn.jsdelivr.net/gh/zerozzz123456/1/url.json
// or just search for "zerobyw" in google
private val defaultBaseUrl = "http://www.zerobywblac.com"