Update linter (#15317)

This commit is contained in:
arkon 2023-02-11 14:21:03 -05:00 committed by GitHub
parent 1397c5b1b4
commit baaee5cf21
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
701 changed files with 3357 additions and 2780 deletions

View File

@ -8,5 +8,7 @@ indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
ij_kotlin_allow_trailing_comma = true
ij_kotlin_allow_trailing_comma_on_call_site = true
ij_kotlin_name_count_to_use_star_import = 2147483647
ij_kotlin_name_count_to_use_star_import_for_members = 2147483647

View File

@ -80,6 +80,14 @@ android {
jvmTarget = JavaVersion.VERSION_1_8.toString()
freeCompilerArgs += "-Xopt-in=kotlinx.serialization.ExperimentalSerializationApi"
}
kotlinter {
experimentalRules = true
disabledRules = [
"experimental:argument-list-wrapping", // Doesn't play well with Android Studio
"experimental:comment-wrapping",
]
}
}
repositories {

View File

@ -7,7 +7,7 @@ serialization_version = "1.4.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" }
gradle-kotlinter = { module = "org.jmailen.gradle:kotlinter-gradle", version = "3.13.0" }
tachiyomi-lib = { module = "com.github.tachiyomiorg:extensions-lib", version = "1.4.0" }

View File

@ -5,7 +5,7 @@ import eu.kanade.tachiyomi.multisrc.bakamanga.BakaManga
class ManhuaMangaNet : BakaManga(
"ManhuaManga.net",
"https://manhuamanga.net",
"en"
"en",
) {
override fun getGenreList() = arrayOf(
Pair("All", ""),

View File

@ -5,7 +5,7 @@ import eu.kanade.tachiyomi.multisrc.bakamanga.BakaManga
class ManhwaMangaNet : BakaManga(
"ManhwaManga.net",
"https://manhwamanga.net",
"en"
"en",
) {
override fun getGenreList() = arrayOf(
Pair("All", ""),

View File

@ -5,7 +5,7 @@ import eu.kanade.tachiyomi.multisrc.bakamanga.BakaManga
class ManhwaXXL : BakaManga(
"Manhwa XXL",
"https://manhwaxxl.com",
"en"
"en",
) {
override fun getGenreList() = arrayOf(
Pair("All", ""),

View File

@ -5,7 +5,7 @@ import eu.kanade.tachiyomi.multisrc.bakamanga.BakaManga
class MWManhwa : BakaManga(
"MWManhwa",
"https://mwmanhwa.net",
"all"
"all",
) {
override fun getGenreList() = arrayOf(
Pair("All", ""),

View File

@ -46,7 +46,7 @@ class BilibiliComicsFactory : SourceFactory {
abstract class BilibiliComics(lang: String) : Bilibili(
"BILIBILI COMICS",
"https://www.bilibilicomics.com",
lang
lang,
) {
override val client: OkHttpClient = super.client.newBuilder()
@ -245,7 +245,7 @@ abstract class BilibiliComics(lang: String) : Bilibili(
val refreshTokenRequest = refreshTokenRequest(
accessTokenCookie!!.accessToken,
accessTokenCookie!!.refreshToken
accessTokenCookie!!.refreshToken,
)
val refreshTokenResponse = chain.proceed(refreshTokenRequest)
@ -294,7 +294,7 @@ abstract class BilibiliComics(lang: String) : Bilibili(
return BilibiliAccessTokenCookie(
accessToken.accessToken,
accessToken.refreshToken,
accessTokenCookie!!.area
accessTokenCookie!!.area,
)
}
@ -334,7 +334,7 @@ class BilibiliComicsEn : BilibiliComics(BilibiliIntl.ENGLISH) {
BilibiliTag("Romance", 13),
BilibiliTag("Slice of Life", 21),
BilibiliTag("Suspense", 41),
BilibiliTag("Teen", 20)
BilibiliTag("Teen", 20),
)
}
@ -354,7 +354,7 @@ class BilibiliComicsCn : BilibiliComics(BilibiliIntl.SIMPLIFIED_CHINESE) {
BilibiliTag("百合", 16),
BilibiliTag("玄幻", 30),
BilibiliTag("悬疑", 41),
BilibiliTag("科幻", 8)
BilibiliTag("科幻", 8),
)
}
@ -371,7 +371,7 @@ class BilibiliComicsId : BilibiliComics(BilibiliIntl.INDONESIAN) {
BilibiliTag("Komedi", 14),
BilibiliTag("Menegangkan", 41),
BilibiliTag("Remaja", 20),
BilibiliTag("Romantis", 13)
BilibiliTag("Romantis", 13),
)
}
@ -396,7 +396,7 @@ class BilibiliComicsEs : BilibiliComics(BilibiliIntl.SPANISH) {
BilibiliTag("Romance", 13),
BilibiliTag("Suspenso", 41),
BilibiliTag("Urbano", 9),
BilibiliTag("Wuxia", 103)
BilibiliTag("Wuxia", 103),
)
}
@ -411,6 +411,6 @@ class BilibiliComicsFr : BilibiliComics(BilibiliIntl.FRENCH) {
BilibiliTag("GL", 16),
BilibiliTag("Fantasy Orientale", 30),
BilibiliTag("Suspense", 41),
BilibiliTag("Moderne", 111)
BilibiliTag("Moderne", 111),
)
}

View File

@ -11,7 +11,7 @@ import okhttp3.Response
class BilibiliManga : Bilibili(
"哔哩哔哩漫画",
"https://manga.bilibili.com",
BilibiliIntl.SIMPLIFIED_CHINESE
BilibiliIntl.SIMPLIFIED_CHINESE,
) {
override val id: Long = 3561131545129718586
@ -40,7 +40,7 @@ class BilibiliManga : Bilibili(
BilibiliTag(intl.sortPopular, 0),
BilibiliTag(intl.sortUpdated, 1),
BilibiliTag(intl.sortFollowers, 2),
BilibiliTag(intl.sortAdded, 3)
BilibiliTag(intl.sortAdded, 3),
)
override fun getAllPrices(): Array<String> =

View File

@ -153,13 +153,13 @@ class Erofus : EroMuse("Erofus", "https://www.erofus.com") {
Triple("Magnifire Comics", "/comics/magnifire-comics", AUTHOR),
Triple("Reptileye Comics", "/comics/reptileye-comics", AUTHOR),
Triple("ProjectPinkXXX.com Comics", "/comics/projectpinkxxx_com-comics", AUTHOR),
Triple("CallMePlisskin Comics", "/comics/callmeplisskin-comics", AUTHOR)
Triple("CallMePlisskin Comics", "/comics/callmeplisskin-comics", AUTHOR),
)
override fun getSortList() = arrayOf(
Pair("Viewed", "viewed"),
Pair("Liked", "liked"),
Pair("Date", "recent"),
Pair("A-Z", "az")
Pair("A-Z", "az"),
)
}

View File

@ -22,6 +22,7 @@ class MangaTR : FMReader("Manga-TR", "https://manga-tr.com", "tr") {
add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64)")
}
override fun popularMangaNextPageSelector() = "div.btn-group:not(div.btn-block) button.btn-info"
// TODO: genre search possible but a bit of a pain
override fun getFilterList() = FilterList()

View File

@ -77,7 +77,7 @@ class Manhwa18 : FMReader("Manhwa18", "https://manhwa18.com", "en") {
name = element.attr("title")
date_upload =
SimpleDateFormat("dd/MM/yyyy", Locale.US).parse(
element.select(".chapter-time").text().substringAfter(" - ")
element.select(".chapter-time").text().substringAfter(" - "),
)?.time ?: 0L
chapter_number = element.attr("time").substringAfterLast(' ').toFloatOrNull() ?: -1f
}

View File

@ -28,6 +28,7 @@ class WeLoveManga : FMReader("WeLoveManga", "https://weloma.art", "ja") {
Page(i, document.location(), img.decoded())
}
}
// Referer needs to be chapter URL
override fun imageRequest(page: Page): Request = GET(page.imageUrl!!, headersBuilder().set("Referer", page.url).build())
}

View File

@ -10,6 +10,6 @@ class LeCercleDuScan : FoolSlide("Le Cercle du Scan", "https://lel.lecercledusca
"aujourd'hui" -> "today"
"demain" -> "tomorrow"
else -> lcDate
}
},
)
}

View File

@ -8,7 +8,7 @@ import java.util.concurrent.TimeUnit
class HentaiSeason : Gattsu(
"Hentai Season",
"https://hentaiseason.com",
"pt-BR"
"pt-BR",
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -8,7 +8,7 @@ import java.util.concurrent.TimeUnit
class HentaiTokyo : Gattsu(
"Hentai Tokyo",
"https://hentaitokyo.net",
"pt-BR"
"pt-BR",
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -14,7 +14,7 @@ import java.util.concurrent.TimeUnit
class UniversoHentai : Gattsu(
"Universo Hentai",
"https://universohentai.com",
"pt-BR"
"pt-BR",
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -9,7 +9,7 @@ class ComicDays : GigaViewer(
"Comic Days",
"https://comic-days.com",
"ja",
"https://cdn-img.comic-days.com/public/page"
"https://cdn-img.comic-days.com/public/page",
) {
override val client: OkHttpClient = super.client.newBuilder()
@ -30,6 +30,6 @@ class ComicDays : GigaViewer(
override fun latestUpdatesSelector(): String = "section#$dayOfWeek.daily " + popularMangaSelector()
override fun getCollections(): List<Collection> = listOf(
Collection("連載作品一覧", "")
Collection("連載作品一覧", ""),
)
}

View File

@ -9,7 +9,7 @@ class ComicGardo : GigaViewer(
"Comic Gardo",
"https://comic-gardo.com",
"ja",
"https://cdn-img.comic-gardo.com/public/page"
"https://cdn-img.comic-gardo.com/public/page",
) {
override val supportsLatest: Boolean = false
@ -29,6 +29,6 @@ class ComicGardo : GigaViewer(
}
override fun getCollections(): List<Collection> = listOf(
Collection("連載一覧", "")
Collection("連載一覧", ""),
)
}

View File

@ -11,7 +11,7 @@ class Comiplex : GigaViewer(
"Comiplex",
"https://viewer.heros-web.com",
"ja",
"https://cdn-img.viewer.heros-web.com/public/page"
"https://cdn-img.viewer.heros-web.com/public/page",
) {
override val supportsLatest: Boolean = false
@ -37,6 +37,6 @@ class Comiplex : GigaViewer(
Collection("ヒーローズ", "heros"),
Collection("ふらっとヒーローズ", "flat"),
Collection("わいるどヒーローズ", "wild"),
Collection("読切作品", "oneshot")
Collection("読切作品", "oneshot"),
)
}

View File

@ -15,7 +15,7 @@ class CorocoroOnline : GigaViewer(
"Corocoro Online",
"https://corocoro.jp",
"ja",
"https://cdn-img.www.corocoro.jp/public/page"
"https://cdn-img.www.corocoro.jp/public/page",
) {
override val supportsLatest: Boolean = false

View File

@ -11,7 +11,7 @@ class KurageBunch : GigaViewer(
"Kurage Bunch",
"https://kuragebunch.com",
"ja",
"https://cdn-img.kuragebunch.com"
"https://cdn-img.kuragebunch.com",
) {
override val supportsLatest: Boolean = false
@ -39,6 +39,6 @@ class KurageBunch : GigaViewer(
Collection("読切", "oneshot"),
Collection("月刊コミックバンチ", "comicbunch"),
Collection("Bバンチ", "bbunch"),
Collection("ututu", "ututu")
Collection("ututu", "ututu"),
)
}

View File

@ -9,7 +9,7 @@ class MagazinePocket : GigaViewer(
"Magazine Pocket",
"https://pocket.shonenmagazine.com",
"ja",
"https://cdn-img.pocket.shonenmagazine.com/public/page"
"https://cdn-img.pocket.shonenmagazine.com/public/page",
) {
override val client: OkHttpClient = super.client.newBuilder()
@ -31,6 +31,6 @@ class MagazinePocket : GigaViewer(
override fun getCollections(): List<Collection> = listOf(
Collection("マガポケ連載一覧", ""),
Collection("週刊少年マガジン連載一覧", "smaga"),
Collection("別冊少年マガジン連載一覧", "bmaga")
Collection("別冊少年マガジン連載一覧", "bmaga"),
)
}

View File

@ -9,7 +9,7 @@ class MagComi : GigaViewer(
"MAGCOMI",
"https://magcomi.com",
"ja",
"https://cdn-img.magcomi.com/public/page"
"https://cdn-img.magcomi.com/public/page",
) {
override val supportsLatest: Boolean = false
@ -29,6 +29,6 @@ class MagComi : GigaViewer(
}
override fun getCollections(): List<Collection> = listOf(
Collection("連載・読切", "")
Collection("連載・読切", ""),
)
}

View File

@ -7,7 +7,7 @@ class ShonenJumpPlus : GigaViewer(
"Shonen Jump+",
"https://shonenjumpplus.com",
"ja",
"https://cdn-ak-img.shonenjumpplus.com"
"https://cdn-ak-img.shonenjumpplus.com",
) {
override val client: OkHttpClient = super.client.newBuilder()
@ -19,6 +19,6 @@ class ShonenJumpPlus : GigaViewer(
override fun getCollections(): List<Collection> = listOf(
Collection("ジャンプ+連載一覧", ""),
Collection("ジャンプ+読切シリーズ", "oneshot"),
Collection("連載終了作品", "finished")
Collection("連載終了作品", "finished"),
)
}

View File

@ -9,7 +9,7 @@ class SundayWebEvery : GigaViewer(
"Sunday Web Every",
"https://www.sunday-webry.com",
"ja",
"https://cdn-img.www.sunday-webry.com/public/page"
"https://cdn-img.www.sunday-webry.com/public/page",
) {
override val client: OkHttpClient = super.client.newBuilder()
@ -33,6 +33,6 @@ class SundayWebEvery : GigaViewer(
override fun getCollections(): List<Collection> = listOf(
Collection("連載作品", ""),
Collection("読切", "oneshot"),
Collection("夜サンデー", "yoru-sunday")
Collection("夜サンデー", "yoru-sunday"),
)
}

View File

@ -9,7 +9,7 @@ class TonariNoYoungJump : GigaViewer(
"Tonari no Young Jump",
"https://tonarinoyj.jp",
"ja",
"https://cdn-img.tonarinoyj.jp/public/page"
"https://cdn-img.tonarinoyj.jp/public/page",
) {
override val supportsLatest: Boolean = false
@ -35,6 +35,6 @@ class TonariNoYoungJump : GigaViewer(
override fun getCollections(): List<Collection> = listOf(
Collection("連載中", ""),
Collection("読切", "oneshot"),
Collection("出張作品", "trial")
Collection("出張作品", "trial"),
)
}

View File

@ -60,14 +60,16 @@ class AllHentai : GroupLe("AllHentai", "http://allhen.online", "ru") {
else -> {}
}
}
return if (url.toString().contains("&"))
return if (url.toString().contains("&")) {
GET(url.toString().replace("=%3D", "="), headers)
else popularMangaRequest(page)
} else {
popularMangaRequest(page)
}
}
private class OrderBy : Filter.Select<String>(
"Сортировка (только)",
arrayOf("Без сортировки", "По году", "По популярности", "Популярно сейчас", "По рейтингу", "Новинки", "По дате обновления")
arrayOf("Без сортировки", "По году", "По популярности", "Популярно сейчас", "По рейтингу", "Новинки", "По дате обновления"),
)
private class Genre(name: String, val id: String) : Filter.TriState(name)
@ -84,7 +86,7 @@ class AllHentai : GroupLe("AllHentai", "http://allhen.online", "ru") {
Tags(tagsName),
GenreList(getGenreList()),
Category(getCategoryList()),
FilList(getFilList())
FilList(getFilList()),
)
private fun getGenreList() = listOf(
@ -121,7 +123,7 @@ class AllHentai : GroupLe("AllHentai", "http://allhen.online", "ru") {
Genre("чикан", "el_1059"),
Genre("этти", "el_798"),
Genre("юри", "el_84"),
Genre("яой", "el_83")
Genre("яой", "el_83"),
)
private fun getCategoryList() = listOf(
@ -129,7 +131,7 @@ class AllHentai : GroupLe("AllHentai", "http://allhen.online", "ru") {
Genre("Анимация", "el_5777"),
Genre("Без текста", "el_3157"),
Genre("Порно комикс", "el_1003"),
Genre("Порно манхва", "el_1104")
Genre("Порно манхва", "el_1104"),
)
private fun getFilList() = listOf(
@ -140,7 +142,7 @@ class AllHentai : GroupLe("AllHentai", "http://allhen.online", "ru") {
Genre("Переведено", "s_translated"),
Genre("Длинная", "s_many_chapters"),
Genre("Ожидает загрузки", "s_wait_upload"),
Genre("Продается", "s_sale")
Genre("Продается", "s_sale"),
)
private fun getTagsList() = listOf(
@ -260,7 +262,7 @@ class AllHentai : GroupLe("AllHentai", "http://allhen.online", "ru") {
Tag("шантаж", "blackmail"),
Tag("эксгибиционизм", "exhibitionism"),
Tag("эльфы", "elves"),
Tag("яндере", "yandere")
Tag("яндере", "yandere"),
)
private val tagsName = getTagsList().map {

View File

@ -52,14 +52,16 @@ class MintManga : GroupLe("MintManga", "https://mintmanga.live", "ru") {
else -> {}
}
}
return if (url.toString().contains("&"))
return if (url.toString().contains("&")) {
GET(url.toString().replace("=%3D", "="), headers)
else popularMangaRequest(page)
} else {
popularMangaRequest(page)
}
}
private class OrderBy : Filter.Select<String>(
"Сортировка",
arrayOf("По популярности", "Популярно сейчас", "По году", "По имени", "Новинки", "По дате обновления", "По рейтингу")
arrayOf("По популярности", "Популярно сейчас", "По году", "По имени", "Новинки", "По дате обновления", "По рейтингу"),
)
private class Genre(name: String, val id: String) : Filter.TriState(name)
@ -76,7 +78,7 @@ class MintManga : GroupLe("MintManga", "https://mintmanga.live", "ru") {
GenreList(getGenreList()),
AgeList(getAgeList()),
More(getMore()),
FilList(getFilList())
FilList(getFilList()),
)
private fun getFilList() = listOf(
Genre("Высокий рейтинг", "s_high_rate"),
@ -87,7 +89,7 @@ class MintManga : GroupLe("MintManga", "https://mintmanga.live", "ru") {
Genre("Заброшен перевод", "s_abandoned_popular"),
Genre("Длинная", "s_many_chapters"),
Genre("Ожидает загрузки", "s_wait_upload"),
Genre("Белые жанры", "s_not_pessimized")
Genre("Белые жанры", "s_not_pessimized"),
)
private fun getMore() = listOf(
Genre("Анонс", "el_6641"),
@ -95,13 +97,13 @@ class MintManga : GroupLe("MintManga", "https://mintmanga.live", "ru") {
Genre("Веб", "el_1355"),
Genre("Выпуск приостановлен", "el_5232"),
Genre("Не Яой", "el_1874"),
Genre("Сборник", "el_1348")
Genre("Сборник", "el_1348"),
)
private fun getAgeList() = listOf(
Genre("R(16+)", "el_3968"),
Genre("NC-17(18+)", "el_3969"),
Genre("R18+(18+)", "el_3990")
Genre("R18+(18+)", "el_3990"),
)
private fun getCategoryList() = listOf(
@ -113,7 +115,7 @@ class MintManga : GroupLe("MintManga", "https://mintmanga.live", "ru") {
Genre("Манга", "el_6421"),
Genre("Манхва", "el_1873"),
Genre("Маньхуа", "el_1875"),
Genre("Ранобэ", "el_5688")
Genre("Ранобэ", "el_5688"),
)
private fun getGenreList() = listOf(
@ -156,6 +158,6 @@ class MintManga : GroupLe("MintManga", "https://mintmanga.live", "ru") {
Genre("эротика", "el_1340"),
Genre("этти", "el_1354"),
Genre("юри", "el_1315"),
Genre("яой", "el_1336")
Genre("яой", "el_1336"),
)
}

View File

@ -52,14 +52,16 @@ class ReadManga : GroupLe("ReadManga", "https://readmanga.live", "ru") {
else -> {}
}
}
return if (url.toString().contains("&"))
return if (url.toString().contains("&")) {
GET(url.toString().replace("=%3D", "="), headers)
else popularMangaRequest(page)
} else {
popularMangaRequest(page)
}
}
private class OrderBy : Filter.Select<String>(
"Сортировка",
arrayOf("По популярности", "Популярно сейчас", "По году", "По имени", "Новинки", "По дате обновления", "По рейтингу")
arrayOf("По популярности", "Популярно сейчас", "По году", "По имени", "Новинки", "По дате обновления", "По рейтингу"),
)
private class Genre(name: String, val id: String) : Filter.TriState(name)
@ -76,7 +78,7 @@ class ReadManga : GroupLe("ReadManga", "https://readmanga.live", "ru") {
GenreList(getGenreList()),
AgeList(getAgeList()),
More(getMore()),
FilList(getFilList())
FilList(getFilList()),
)
private fun getFilList() = listOf(
@ -89,19 +91,19 @@ class ReadManga : GroupLe("ReadManga", "https://readmanga.live", "ru") {
Genre("Длинная", "s_many_chapters"),
Genre("Ожидает загрузки", "s_wait_upload"),
Genre("Продается", "s_sale"),
Genre("Белые жанры", "s_not_pessimized")
Genre("Белые жанры", "s_not_pessimized"),
)
private fun getMore() = listOf(
Genre("Анонс", "el_9578"),
Genre("В цвете", "el_7290"),
Genre("Веб", "el_2160"),
Genre("Сборник", "el_2157")
Genre("Сборник", "el_2157"),
)
private fun getAgeList() = listOf(
Genre("G(0+)", "el_6180"),
Genre("PG-13(12+)", "el_6181"),
Genre("PG(16+)", "el_6179")
Genre("PG(16+)", "el_6179"),
)
private fun getCategoryList() = listOf(
@ -112,7 +114,7 @@ class ReadManga : GroupLe("ReadManga", "https://readmanga.live", "ru") {
Genre("Комикс", "el_3515"),
Genre("Манга", "el_9451"),
Genre("Манхва", "el_3001"),
Genre("Маньхуа", "el_3002")
Genre("Маньхуа", "el_3002"),
)
private fun getGenreList() = listOf(
@ -153,6 +155,6 @@ class ReadManga : GroupLe("ReadManga", "https://readmanga.live", "ru") {
Genre("уся", "el_9560"),
Genre("фэнтези", "el_2131"),
Genre("школа", "el_2127"),
Genre("этти", "el_2149")
Genre("этти", "el_2149"),
)
}

View File

@ -25,16 +25,18 @@ class RuMIX : GroupLe("RuMIX", "https://rumix.me", "ru") {
else -> return@forEach
}
}
return if (url.toString().contains("&"))
return if (url.toString().contains("&")) {
GET(url.toString().replace("=%3D", "="), headers)
else popularMangaRequest(page)
} else {
popularMangaRequest(page)
}
}
private class OrderBy : Filter.Select<String>(
"Сортировка",
arrayOf("По популярности", "Популярно сейчас", "По году", "По имени", "Новинки", "По дате обновления", "По рейтингу")
arrayOf("По популярности", "Популярно сейчас", "По году", "По имени", "Новинки", "По дате обновления", "По рейтингу"),
)
override fun getFilterList() = FilterList(
OrderBy()
OrderBy(),
)
}

View File

@ -37,14 +37,16 @@ class SelfManga : GroupLe("SelfManga", "https://selfmanga.live", "ru") {
else -> return@forEach
}
}
return if (url.toString().contains("&"))
return if (url.toString().contains("&")) {
GET(url.toString().replace("=%3D", "="), headers)
else popularMangaRequest(page)
} else {
popularMangaRequest(page)
}
}
private class OrderBy : Filter.Select<String>(
"Сортировка",
arrayOf("По популярности", "Популярно сейчас", "По году", "По имени", "Новинки", "По дате обновления", "По рейтингу")
arrayOf("По популярности", "Популярно сейчас", "По году", "По имени", "Новинки", "По дате обновления", "По рейтингу"),
)
private class Genre(name: String, val id: String) : Filter.TriState(name)
@ -54,7 +56,7 @@ class SelfManga : GroupLe("SelfManga", "https://selfmanga.live", "ru") {
override fun getFilterList() = FilterList(
OrderBy(),
Category(getCategoryList()),
GenreList(getGenreList())
GenreList(getGenreList()),
)
private fun getCategoryList() = listOf(
@ -62,7 +64,7 @@ class SelfManga : GroupLe("SelfManga", "https://selfmanga.live", "ru") {
Genre("Веб", "el_2160"),
Genre("Журнал", "el_4983"),
Genre("Ранобэ", "el_5215"),
Genre("Сборник", "el_2157")
Genre("Сборник", "el_2157"),
)
private fun getGenreList() = listOf(
@ -99,6 +101,6 @@ class SelfManga : GroupLe("SelfManga", "https://selfmanga.live", "ru") {
Genre("фантастика", "el_2140"),
Genre("фэнтези", "el_2131"),
Genre("школа", "el_2127"),
Genre("этти", "el_4982")
Genre("этти", "el_4982"),
)
}

View File

@ -36,18 +36,18 @@ abstract class MagicalTranslatorsCommon(lang: String) :
class MagicalTranslatorsEN : MagicalTranslatorsCommon("en") {
override fun filterMangasPage(mangasPage: MangasPage): MangasPage = mangasPage.copy(
mangas = mangasPage.mangas.filterNot { it.url.endsWith("-ES") || it.url.endsWith("-PL") }
mangas = mangasPage.mangas.filterNot { it.url.endsWith("-ES") || it.url.endsWith("-PL") },
)
}
class MagicalTranslatorsES : MagicalTranslatorsCommon("es") {
override fun filterMangasPage(mangasPage: MangasPage): MangasPage = mangasPage.copy(
mangas = mangasPage.mangas.filter { it.url.endsWith("-ES") }
mangas = mangasPage.mangas.filter { it.url.endsWith("-ES") },
)
}
class MagicalTranslatorsPL : MagicalTranslatorsCommon("pl") {
override fun filterMangasPage(mangasPage: MangasPage): MangasPage = mangasPage.copy(
mangas = mangasPage.mangas.filter { it.url.endsWith("-PL") }
mangas = mangasPage.mangas.filter { it.url.endsWith("-PL") },
)
}

View File

@ -11,7 +11,7 @@ import java.util.TimeZone
class ReaperScans : HeanCms(
"Reaper Scans",
"https://reaperscans.net",
"pt-BR"
"pt-BR",
) {
override val client: OkHttpClient = super.client.newBuilder()
@ -51,6 +51,6 @@ class ReaperScans : HeanCms(
Genre("Segunda vida", 4),
Genre("Seinen", 1),
Genre("Shounen", 13),
Genre("Terror", 6)
Genre("Terror", 6),
)
}

View File

@ -9,7 +9,7 @@ class YugenMangas : HeanCms(
"YugenMangas",
"https://yugenmangas.net",
"es",
"https://api.yugenmangas.com"
"https://api.yugenmangas.com",
) {
// Site changed from Madara to HeanCms.
@ -69,6 +69,6 @@ class YugenMangas : HeanCms(
Genre("Transmigración", 34),
Genre("Vida Escolar", 47),
Genre("Yaoi", 43),
Genre("Yuri", 44)
Genre("Yuri", 44),
)
}

View File

@ -39,7 +39,7 @@ class HentaiLib : LibGroup("HentaiLib", "https://hentailib.me", "ru") {
if (tag.state != Filter.TriState.STATE_IGNORE) {
url.addQueryParameter(
if (tag.isIncluded()) "tags[include][]" else "tags[exclude][]",
tag.id
tag.id,
)
}
}
@ -226,7 +226,7 @@ class HentaiLib : LibGroup("HentaiLib", "https://hentailib.me", "ru") {
SearchFilter("Эксгибиционизм", "143"),
SearchFilter("Эльф", "144"),
SearchFilter("Юные", "145"),
SearchFilter("Яндэрэ", "146")
SearchFilter("Яндэрэ", "146"),
)
companion object {

View File

@ -55,7 +55,7 @@ class MangaLib : LibGroup("MangaLib", "https://mangalib.me", "ru") {
if (age.state != Filter.TriState.STATE_IGNORE) {
url.addQueryParameter(
if (age.isIncluded()) "caution[include][]" else "caution[exclude][]",
age.id
age.id,
)
}
}
@ -63,7 +63,7 @@ class MangaLib : LibGroup("MangaLib", "https://mangalib.me", "ru") {
if (tag.state != Filter.TriState.STATE_IGNORE) {
url.addQueryParameter(
if (tag.isIncluded()) "tags[include][]" else "tags[exclude][]",
tag.id
tag.id,
)
}
}
@ -183,14 +183,14 @@ class MangaLib : LibGroup("MangaLib", "https://mangalib.me", "ru") {
SearchFilter("Шантаж", "279"),
SearchFilter("Эльфы", "216"),
SearchFilter("Якудза", "164"),
SearchFilter("Япония", "280")
SearchFilter("Япония", "280"),
)
private fun getAgeList() = listOf(
SearchFilter("Отсутствует", "0"),
SearchFilter("16+", "1"),
SearchFilter("18+", "2")
SearchFilter("18+", "2"),
)
companion object {

View File

@ -37,7 +37,7 @@ class YaoiLib : LibGroup("YaoiLib", "https://v1.yaoilib.net", "ru") {
if (age.state != Filter.TriState.STATE_IGNORE) {
url.addQueryParameter(
if (age.isIncluded()) "caution[include][]" else "caution[exclude][]",
age.id
age.id,
)
}
}
@ -45,7 +45,7 @@ class YaoiLib : LibGroup("YaoiLib", "https://v1.yaoilib.net", "ru") {
if (tag.state != Filter.TriState.STATE_IGNORE) {
url.addQueryParameter(
if (tag.isIncluded()) "tags[include][]" else "tags[exclude][]",
tag.id
tag.id,
)
}
}
@ -165,14 +165,14 @@ class YaoiLib : LibGroup("YaoiLib", "https://v1.yaoilib.net", "ru") {
SearchFilter("Шантаж", "279"),
SearchFilter("Эльфы", "216"),
SearchFilter("Якудза", "164"),
SearchFilter("Япония", "280")
SearchFilter("Япония", "280"),
)
private fun getAgeList() = listOf(
SearchFilter("Отсутствует", "0"),
SearchFilter("16+", "1"),
SearchFilter("18+", "2")
SearchFilter("18+", "2"),
)
companion object {

View File

@ -13,7 +13,7 @@ class AdultWebtoon : Madara("Adult Webtoon", "https://adultwebtoon.com", "en") {
return GET(
"$baseUrl/manga/$pageSuffix?m_orderby=trending",
formHeaders,
CacheControl.FORCE_NETWORK
CacheControl.FORCE_NETWORK,
)
}
override fun latestUpdatesRequest(page: Int): Request {
@ -21,7 +21,7 @@ class AdultWebtoon : Madara("Adult Webtoon", "https://adultwebtoon.com", "en") {
return GET(
"$baseUrl/manga/$pageSuffix?m_orderby=latest",
formHeaders,
CacheControl.FORCE_NETWORK
CacheControl.FORCE_NETWORK,
)
}
}

View File

@ -8,7 +8,7 @@ class AiYuManga : Madara(
"AiYuManga",
"https://aiyumangascanlation.com",
"es",
SimpleDateFormat("d 'de' MMM 'de' yyy", Locale("es"))
SimpleDateFormat("d 'de' MMM 'de' yyy", Locale("es")),
) {
override val useNewChapterEndpoint = true
}

View File

@ -11,7 +11,7 @@ class AkumaNoTenshi : Madara(
"Akuma no Tenshi",
"https://akumanotenshi.com",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -11,7 +11,7 @@ class AleatoriaScan : Madara(
"Aleatória Scan",
"https://aleatoriascan.xyz",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -18,7 +18,7 @@ class Amuy : Madara(
"Amuy",
"https://amuyscans.com",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()
@ -38,7 +38,7 @@ class Amuy : Madara(
chapterProtector
.substringAfter("chapter_data='")
.substringBefore("';")
.replace("\\/", "/")
.replace("\\/", "/"),
).jsonObject
val unsaltedCiphertext = Base64.decode(chapterData["ct"]!!.jsonPrimitive.content, Base64.DEFAULT)

View File

@ -8,7 +8,7 @@ class ArabToons : Madara(
"عرب تونز",
"https://arabtoons.net",
"ar",
dateFormat = SimpleDateFormat("MMM d", Locale("ar"))
dateFormat = SimpleDateFormat("MMM d", Locale("ar")),
) {
override val useNewChapterEndpoint = true
}

View File

@ -11,7 +11,7 @@ class ArthurScan : Madara(
"Arthur Scan",
"https://arthurscan.xyz",
"pt-BR",
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR"))
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -11,7 +11,7 @@ class BananaCitrica : Madara(
"Banana Cítrica",
"https://dinastiacilly.com",
"pt-BR",
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR")),
) {
// Website changed their name.

View File

@ -11,7 +11,7 @@ class BichenTraducoes : Madara(
"Bichen Traduções",
"https://bichentraducoes.com",
"pt-BR",
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR"))
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -11,7 +11,7 @@ class BlManhwaClub : Madara(
"BL Manhwa Club",
"https://blmanhwa.club",
"pt-BR",
SimpleDateFormat("dd MMM yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd MMM yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -11,7 +11,7 @@ class BorutoExplorer : Madara(
"Boruto Explorer",
"https://leitor.borutoexplorer.com.br",
"pt-BR",
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -11,7 +11,7 @@ class CafeComYaoi : Madara(
"Café com Yaoi",
"http://cafecomyaoi.com.br",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -7,7 +7,7 @@ import org.jsoup.nodes.Element
class CatTranslator : Madara(
"CAT-translator",
"https://cats-translator.com/manga",
"th"
"th",
) {
private fun parseMangaFromElement(element: Element, isSearch: Boolean): SManga {
val manga = SManga.create()

View File

@ -18,7 +18,7 @@ class CeriseScans : Madara(
"Cerise Scans",
"https://cerisescan.com",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()
@ -38,7 +38,7 @@ class CeriseScans : Madara(
chapterProtector
.substringAfter("chapter_data='")
.substringBefore("';")
.replace("\\/", "/")
.replace("\\/", "/"),
).jsonObject
val unsaltedCiphertext = Base64.decode(chapterData["ct"]!!.jsonPrimitive.content, Base64.DEFAULT)

View File

@ -13,7 +13,7 @@ class ChunchunmaruTranslations : Madara(
"Chunchunmaru Translations",
"https://chunchunmarutl.com",
"es",
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("es"))
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("es")),
) {
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=views", headers)

View File

@ -11,7 +11,7 @@ class CronosScan : Madara(
"Cronos Scan",
"https://cronosscan.net",
"pt-BR",
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -8,7 +8,7 @@ class DapRob : Madara(
"DapRob",
"https://daprob.com",
"es",
dateFormat = SimpleDateFormat("dd/MM/yyy", Locale.ROOT)
dateFormat = SimpleDateFormat("dd/MM/yyy", Locale.ROOT),
) {
override val useNewChapterEndpoint = true
}

View File

@ -15,7 +15,7 @@ class DoujinHentai : Madara(
"DoujinHentai",
"https://doujinhentai.net",
"es",
SimpleDateFormat("d MMM. yyyy", Locale.ENGLISH)
SimpleDateFormat("d MMM. yyyy", Locale.ENGLISH),
) {
override val useLoadMoreSearch = false
@ -71,7 +71,7 @@ class DoujinHentai : Madara(
override fun getFilterList() = FilterList(
Filter.Header("Solo funciona si la consulta está en blanco"),
GenreSelectFilter()
GenreSelectFilter(),
)
class GenreSelectFilter : UriPartFilter(
@ -109,7 +109,7 @@ class DoujinHentai : Madara(
Pair("Sin Censura", "sin-censura"),
Pair("Futanari", "futanari"),
Pair("Doble Penetracion", "doble-penetracion"),
Pair("Cosplay", "cosplay")
)
Pair("Cosplay", "cosplay"),
),
)
}

View File

@ -13,7 +13,7 @@ class DropeScan : Madara(
"Drope Scan",
"https://dropescan.com",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -10,7 +10,7 @@ class EGYManga : Madara(
"EGY Manga",
"https://egymanga.net",
"ar",
SimpleDateFormat("MMMM dd, yyyy", Locale("ar"))
SimpleDateFormat("MMMM dd, yyyy", Locale("ar")),
) {
// The website does not flag the content.

View File

@ -8,7 +8,7 @@ class Eromiau : Madara(
"Eromiau",
"https://www.eromiau.com",
"es",
dateFormat = SimpleDateFormat("MMM d, yyy", Locale("es"))
dateFormat = SimpleDateFormat("MMM d, yyy", Locale("es")),
) {
override val useNewChapterEndpoint = true
}

View File

@ -13,7 +13,7 @@ class EstufaDeCristal : Madara(
"Estufa de Cristal",
"https://scanestufadecristal.site",
"pt-BR",
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -8,7 +8,7 @@ class EvaScans : Madara(
"EvaScans",
"https://evascans.com",
"tr",
dateFormat = SimpleDateFormat("MMM d, yyy", Locale("tr"))
dateFormat = SimpleDateFormat("MMM d, yyy", Locale("tr")),
) {
override val useNewChapterEndpoint = false
}

View File

@ -8,5 +8,5 @@ class FaeStorm : Madara(
"FaeStorm",
"https://faestormmanga.com",
"tr",
SimpleDateFormat("d MMM yyy", Locale("tr"))
SimpleDateFormat("d MMM yyy", Locale("tr")),
)

View File

@ -11,7 +11,7 @@ class FayScans : Madara(
"Fay Scans",
"https://fayscans.com.br",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -11,7 +11,7 @@ class FDMScan : Madara(
"FDM Scan",
"https://fdmscan.com",
"pt-BR",
SimpleDateFormat("MMMM dd, yyyy", Locale("pt", "BR"))
SimpleDateFormat("MMMM dd, yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -11,7 +11,7 @@ class FinalScans : Madara(
"Final Scans",
"https://finalscans.com",
"pt-BR",
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR"))
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -8,7 +8,7 @@ import java.util.concurrent.TimeUnit
class FirstKissManga : Madara(
"1st Kiss",
"https://1stkissmanga.io",
"en"
"en",
) {
override fun headersBuilder(): Headers.Builder = super.headersBuilder().add("Referer", baseUrl)

View File

@ -7,7 +7,7 @@ import java.util.concurrent.TimeUnit
class FirstKissMangaClub : Madara(
"1stKissManga.Club",
"https://1stkissmanga.club",
"en"
"en",
) {
override val client = network.cloudflareClient.newBuilder()

View File

@ -7,7 +7,7 @@ import java.util.concurrent.TimeUnit
class FirstKissMangaLove : Madara(
"1st Kiss Manga.love",
"https://1stkissmanga.love",
"en"
"en",
) {
override val client = network.cloudflareClient.newBuilder()

View File

@ -13,7 +13,7 @@ class FirstKissManhua : Madara(
"1st Kiss Manhua",
"https://1stkissmanhua.com",
"en",
SimpleDateFormat("d MMM yyyy", Locale.US)
SimpleDateFormat("d MMM yyyy", Locale.US),
) {
override val client = network.cloudflareClient.newBuilder()

View File

@ -15,7 +15,7 @@ class FleurBlanche : Madara(
"Fleur Blanche",
"https://fbsquads.com",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -10,7 +10,7 @@ class FlexTapeScans : Madara(
"Flex Tape Scans",
"https://flextapescans.com",
"en",
dateFormat = SimpleDateFormat("MM/dd/yyy", Locale.ROOT)
dateFormat = SimpleDateFormat("MM/dd/yyy", Locale.ROOT),
) {
override val useNewChapterEndpoint = false

View File

@ -11,7 +11,7 @@ class FoxWhite : Madara(
"Fox White",
"https://foxwhite.com.br",
"pt-BR",
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR"))
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -5,6 +5,8 @@ import java.text.SimpleDateFormat
import java.util.Locale
class FukushuunoYuusha : Madara(
"Fukushuu no Yuusha", "https://fny-scantrad.com",
"fr", dateFormat = SimpleDateFormat("dd/MM/yy", Locale.US)
"Fukushuu no Yuusha",
"https://fny-scantrad.com",
"fr",
dateFormat = SimpleDateFormat("dd/MM/yy", Locale.US),
)

View File

@ -11,7 +11,7 @@ class FurioScans : Madara(
"Furio Scans",
"https://furioscans.com",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -8,7 +8,7 @@ class GeassToon : Madara(
"GeassToon",
"https://geasstoon.com",
"tr",
dateFormat = SimpleDateFormat("MMM d, yyy", Locale("tr"))
dateFormat = SimpleDateFormat("MMM d, yyy", Locale("tr")),
) {
override val useNewChapterEndpoint = true
}

View File

@ -10,7 +10,7 @@ class GeceninLordu : Madara(
"Gecenin Lordu",
"https://geceninlordu.com/",
"tr",
SimpleDateFormat("dd MMM yyyy", Locale("tr"))
SimpleDateFormat("dd MMM yyyy", Locale("tr")),
) {
override val useLoadMoreSearch = false

View File

@ -11,7 +11,7 @@ class GloriousScan : Madara(
"Glorious Scan",
"https://gloriousscan.com",
"pt-BR",
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR"))
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -8,7 +8,7 @@ class GloryManga : Madara(
"Glory Manga",
"https://glorymanga.com",
"tr",
dateFormat = SimpleDateFormat("dd/MM/yyy", Locale.ROOT)
dateFormat = SimpleDateFormat("dd/MM/yyy", Locale.ROOT),
) {
override val useNewChapterEndpoint = true
}

View File

@ -8,7 +8,7 @@ class GloryScans : Madara(
"Glory Scans",
"https://gloryscans.com",
"tr",
dateFormat = SimpleDateFormat("d MMM yyy", Locale("tr"))
dateFormat = SimpleDateFormat("d MMM yyy", Locale("tr")),
) {
override val useNewChapterEndpoint = false
}

View File

@ -11,7 +11,7 @@ class GoofFansub : Madara(
"Goof Fansub",
"https://gooffansub.com",
"pt-BR",
SimpleDateFormat("dd/MM/yyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -10,7 +10,7 @@ class HattoriManga : Madara(
"Hattori Manga",
"https://hattorimanga.com",
"tr",
SimpleDateFormat("d MMM yyy", Locale("tr"))
SimpleDateFormat("d MMM yyy", Locale("tr")),
) {
override fun pageListParse(document: Document): List<Page> {
val blocked = document.select(".content-blocked").first()

View File

@ -11,7 +11,7 @@ class HelaScan : Madara(
"Hela Scan",
"https://helascan.com",
"pt-BR",
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -19,14 +19,14 @@ class HentaiCB : Madara("Hentai CB", "https://hentaicb.xyz", "vi", SimpleDateFor
return GET(
"$baseUrl/manga/page/$page/?m_orderby=views",
formHeaders,
CacheControl.FORCE_NETWORK
CacheControl.FORCE_NETWORK,
)
}
override fun latestUpdatesRequest(page: Int): Request {
return GET(
"$baseUrl/manga/page/$page/?m_orderby=latest",
formHeaders,
CacheControl.FORCE_NETWORK
CacheControl.FORCE_NETWORK,
)
}
}

View File

@ -8,7 +8,7 @@ class HentaiManga : Madara(
"Hentai Manga",
"https://hentaimanga.me",
"en",
dateFormat = SimpleDateFormat("MMM d, yyyy", Locale.US)
dateFormat = SimpleDateFormat("MMM d, yyyy", Locale.US),
) {
// The website does not flag the content.

View File

@ -32,7 +32,7 @@ class Hentairead : Madara("HentaiRead", "https://hentairead.com", "en", dateForm
index,
document.location(),
Uri.parse(pageUri).buildUpon().clearQuery().appendQueryParameter("ssl", "1")
.appendQueryParameter("w", "1100").build().toString()
.appendQueryParameter("w", "1100").build().toString(),
)
}
}
@ -42,7 +42,7 @@ class Hentairead : Madara("HentaiRead", "https://hentairead.com", "en", dateForm
SChapter.create().apply {
name = "Chapter"
setUrlWithoutDomain(response.request.url.encodedPath)
}
},
)
}
}

View File

@ -12,7 +12,7 @@ class HentaiTeca : Madara(
"Hentai Teca",
"https://hentaiteca.net",
"pt-BR",
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR"))
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -8,5 +8,5 @@ class HentaiXComic : Madara(
"HentaiXComic",
"https://hentaixcomic.com",
"en",
dateFormat = SimpleDateFormat("MMM d, yyyy", Locale.US)
dateFormat = SimpleDateFormat("MMM d, yyyy", Locale.US),
)

View File

@ -8,5 +8,5 @@ class HentaiXYuri : Madara(
"HentaiXYuri",
"https://hentaixyuri.com",
"en",
dateFormat = SimpleDateFormat("MMM d, yyyy", Locale.US)
dateFormat = SimpleDateFormat("MMM d, yyyy", Locale.US),
)

View File

@ -8,7 +8,7 @@ class HerenScan : Madara(
"HerenScan",
"https://herenscan.com",
"es",
dateFormat = SimpleDateFormat("d 'de' MMM 'de' yyy", Locale("es"))
dateFormat = SimpleDateFormat("d 'de' MMM 'de' yyy", Locale("es")),
) {
override val useNewChapterEndpoint = true

View File

@ -11,7 +11,7 @@ class HM2D : Madara(
"HM2D",
"https://mangadistrict.com/hdoujin/",
"en",
dateFormat = SimpleDateFormat("MMM d, yyyy", Locale.US)
dateFormat = SimpleDateFormat("MMM d, yyyy", Locale.US),
) {
override fun mangaDetailsRequest(manga: SManga): Request {

View File

@ -8,5 +8,5 @@ class hManhwa : Madara(
"hManhwa",
"https://hmanhwa.com",
"en",
dateFormat = SimpleDateFormat("dd MMM", Locale.US)
dateFormat = SimpleDateFormat("dd MMM", Locale.US),
)

View File

@ -13,7 +13,7 @@ class IchirinNoHanaYuri : Madara(
"Ichirin No Hana Yuri",
"https://ichirinnohanayuriscan.com",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -11,7 +11,7 @@ class IllusionScan : Madara(
"Illusion Scan",
"https://illusionscan.com",
"pt-BR",
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -135,9 +135,9 @@ class ImmortalUpdates : Madara("Immortal Updates", "https://immortalupdates.com"
-1.0f, 0.0f, 0.0f, 0.0f, 255.0f,
0.0f, -1.0f, 0.0f, 0.0f, 255.0f,
0.0f, 0.0f, -1.0f, 0.0f, 255.0f,
0.0f, 0.0f, 0.0f, 1.0f, 0.0f
)
)
0.0f, 0.0f, 0.0f, 1.0f, 0.0f,
),
),
)
}
canvas.drawBitmap(result, 0f, 0f, invertingPaint)
@ -193,7 +193,7 @@ class ImmortalUpdates : Madara("Immortal Updates", "https://immortalupdates.com"
"""
var _0x56dfa1=_0x217c;(function(_0x458c1d,_0x5a2370){var _0x4d7856=_0x217c,_0x1fa20f=_0x458c1d();while(!![]){try{var _0x34da05=-parseInt(_0x4d7856(0xac))/0x1+-parseInt(_0x4d7856(0xbc))/0x2*(-parseInt(_0x4d7856(0xb3))/0x3)+-parseInt(_0x4d7856(0xb8))/0x4+-parseInt(_0x4d7856(0xbb))/0x5*(parseInt(_0x4d7856(0xbd))/0x6)+parseInt(_0x4d7856(0xba))/0x7*(-parseInt(_0x4d7856(0xae))/0x8)+-parseInt(_0x4d7856(0xb0))/0x9+-parseInt(_0x4d7856(0xb9))/0xa*(-parseInt(_0x4d7856(0xaf))/0xb);if(_0x34da05===_0x5a2370)break;else _0x1fa20f['push'](_0x1fa20f['shift']());}catch(_0x7dd169){_0x1fa20f['push'](_0x1fa20f['shift']());}}}(_0x3c3e,0x4ade6));class Location{constructor(_0x2d256a){var _0x3e4741=_0x217c;this[_0x3e4741(0xaa)]=_0x2d256a;}[_0x56dfa1(0xb7)](){var _0x6040fb=_0x56dfa1;return this[_0x6040fb(0xaa)];}}function _0x3c3e(){var _0x27ebfd=['mtu0nJCYmLfWu2Hpvq','C3rYAw5NAwz5','z2v0x2LTz19KyxrH','mJfyB3f3sxq','Bg9JyxrPB24','Ahr0Chm6lY8','sLnptG','Dg9tDhjPBMC','nta3mZq0rhbJv1jR','mtyYotaWnZb4rxnwAeO','mtK2nJa5qMHUBMTW','mJqYndaWnwjTsu5nAq','ndGWmtjpAgv4sKu','nKrSy1Pcza','AhjLzG','zxzHBa','mte3mdy1ywTgEuLY','z2v0x2LTzW','mty4vLP5D05q','mtfIBgDhyue'];_0x3c3e=function(){return _0x27ebfd;};return _0x3c3e();}function _0x217c(_0x3aa1f3,_0x1793f5){var _0x3c3edb=_0x3c3e();return _0x217c=function(_0x217ce0,_0x3d5a46){_0x217ce0=_0x217ce0-0xaa;var _0x14b4f0=_0x3c3edb[_0x217ce0];if(_0x217c['DsHVWi']===undefined){var _0x59277=function(_0x2d256a){var _0x54ceb8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x41845c='',_0x15e7f4='';for(var _0x269688=0x0,_0x3cc079,_0x25d416,_0xa002fc=0x0;_0x25d416=_0x2d256a['charAt'](_0xa002fc++);~_0x25d416&&(_0x3cc079=_0x269688%0x4?_0x3cc079*0x40+_0x25d416:_0x25d416,_0x269688++%0x4)?_0x41845c+=String['fromCharCode'](0xff&_0x3cc079>>(-0x2*_0x269688&0x6)):0x0){_0x25d416=_0x54ceb8['indexOf'](_0x25d416);}for(var _0x1d6105=0x0,_0x225416=_0x41845c['length'];_0x1d6105<_0x225416;_0x1d6105++){_0x15e7f4+='%'+('00'+_0x41845c['charCodeAt'](_0x1d6105)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x15e7f4);};_0x217c['fyYiDX']=_0x59277,_0x3aa1f3=arguments,_0x217c['DsHVWi']=!![];}var _0x19df2c=_0x3c3edb[0x0],_0x478efb=_0x217ce0+_0x19df2c,_0x5309ed=_0x3aa1f3[_0x478efb];return!_0x5309ed?(_0x14b4f0=_0x217c['fyYiDX'](_0x14b4f0),_0x3aa1f3[_0x478efb]=_0x14b4f0):_0x14b4f0=_0x5309ed,_0x14b4f0;},_0x217c(_0x3aa1f3,_0x1793f5);}this[_0x56dfa1(0xb4)]=new Location(_0x56dfa1(0xb5)),this[_0x56dfa1(0xad)]=(..._0x54ceb8)=>[..._0x54ceb8],this[_0x56dfa1(0xb2)]=_0x41845c=>this[_0x56dfa1(0xb6)][_0x56dfa1(0xb1)](this[_0x56dfa1(0xab)](_0x41845c));
""".trimIndent(),
"?"
"?",
)
}
}

View File

@ -11,7 +11,7 @@ class ImperioDaBritannia : Madara(
"Sagrado Império da Britannia",
"https://imperiodabritannia.com",
"pt-BR",
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -11,7 +11,7 @@ class ImperioScans : Madara(
"Império Scans",
"https://imperioscans.com.br",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -14,7 +14,7 @@ class Izakaya : Madara(
"Izakaya",
"https://leitorizakaya.net",
"pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -8,5 +8,5 @@ class Jaiminisboxnet : Madara(
"JaiminisBox.net",
"https://jaiminisbox.net",
"en",
dateFormat = SimpleDateFormat("MMM d, yyyy", Locale.US)
dateFormat = SimpleDateFormat("MMM d, yyyy", Locale.US),
)

View File

@ -11,7 +11,7 @@ class KalangoScan : Madara(
"Kalango Scan",
"https://kalangoscan.online",
"pt-BR",
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR"))
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

View File

@ -11,7 +11,7 @@ class KamiSamaExplorer : Madara(
"Kami Sama Explorer",
"https://leitor.kamisama.com.br",
"pt-BR",
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR"))
SimpleDateFormat("dd 'de' MMMMM 'de' yyyy", Locale("pt", "BR")),
) {
override val client: OkHttpClient = super.client.newBuilder()

Some files were not shown because too many files have changed in this diff Show More