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 indent_style = space
insert_final_newline = true insert_final_newline = true
trim_trailing_whitespace = 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 = 2147483647
ij_kotlin_name_count_to_use_star_import_for_members = 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() jvmTarget = JavaVersion.VERSION_1_8.toString()
freeCompilerArgs += "-Xopt-in=kotlinx.serialization.ExperimentalSerializationApi" 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 { 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-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-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-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" } 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( class ManhuaMangaNet : BakaManga(
"ManhuaManga.net", "ManhuaManga.net",
"https://manhuamanga.net", "https://manhuamanga.net",
"en" "en",
) { ) {
override fun getGenreList() = arrayOf( override fun getGenreList() = arrayOf(
Pair("All", ""), Pair("All", ""),

View File

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

View File

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

View File

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

View File

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

View File

@ -11,7 +11,7 @@ import okhttp3.Response
class BilibiliManga : Bilibili( class BilibiliManga : Bilibili(
"哔哩哔哩漫画", "哔哩哔哩漫画",
"https://manga.bilibili.com", "https://manga.bilibili.com",
BilibiliIntl.SIMPLIFIED_CHINESE BilibiliIntl.SIMPLIFIED_CHINESE,
) { ) {
override val id: Long = 3561131545129718586 override val id: Long = 3561131545129718586
@ -40,7 +40,7 @@ class BilibiliManga : Bilibili(
BilibiliTag(intl.sortPopular, 0), BilibiliTag(intl.sortPopular, 0),
BilibiliTag(intl.sortUpdated, 1), BilibiliTag(intl.sortUpdated, 1),
BilibiliTag(intl.sortFollowers, 2), BilibiliTag(intl.sortFollowers, 2),
BilibiliTag(intl.sortAdded, 3) BilibiliTag(intl.sortAdded, 3),
) )
override fun getAllPrices(): Array<String> = 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("Magnifire Comics", "/comics/magnifire-comics", AUTHOR),
Triple("Reptileye Comics", "/comics/reptileye-comics", AUTHOR), Triple("Reptileye Comics", "/comics/reptileye-comics", AUTHOR),
Triple("ProjectPinkXXX.com Comics", "/comics/projectpinkxxx_com-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( override fun getSortList() = arrayOf(
Pair("Viewed", "viewed"), Pair("Viewed", "viewed"),
Pair("Liked", "liked"), Pair("Liked", "liked"),
Pair("Date", "recent"), 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)") add("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64)")
} }
override fun popularMangaNextPageSelector() = "div.btn-group:not(div.btn-block) button.btn-info" override fun popularMangaNextPageSelector() = "div.btn-group:not(div.btn-block) button.btn-info"
// TODO: genre search possible but a bit of a pain // TODO: genre search possible but a bit of a pain
override fun getFilterList() = FilterList() override fun getFilterList() = FilterList()

View File

@ -77,7 +77,7 @@ class Manhwa18 : FMReader("Manhwa18", "https://manhwa18.com", "en") {
name = element.attr("title") name = element.attr("title")
date_upload = date_upload =
SimpleDateFormat("dd/MM/yyyy", Locale.US).parse( SimpleDateFormat("dd/MM/yyyy", Locale.US).parse(
element.select(".chapter-time").text().substringAfter(" - ") element.select(".chapter-time").text().substringAfter(" - "),
)?.time ?: 0L )?.time ?: 0L
chapter_number = element.attr("time").substringAfterLast(' ').toFloatOrNull() ?: -1f 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()) Page(i, document.location(), img.decoded())
} }
} }
// Referer needs to be chapter URL // Referer needs to be chapter URL
override fun imageRequest(page: Page): Request = GET(page.imageUrl!!, headersBuilder().set("Referer", page.url).build()) 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" "aujourd'hui" -> "today"
"demain" -> "tomorrow" "demain" -> "tomorrow"
else -> lcDate else -> lcDate
} },
) )
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -36,18 +36,18 @@ abstract class MagicalTranslatorsCommon(lang: String) :
class MagicalTranslatorsEN : MagicalTranslatorsCommon("en") { class MagicalTranslatorsEN : MagicalTranslatorsCommon("en") {
override fun filterMangasPage(mangasPage: MangasPage): MangasPage = mangasPage.copy( 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") { class MagicalTranslatorsES : MagicalTranslatorsCommon("es") {
override fun filterMangasPage(mangasPage: MangasPage): MangasPage = mangasPage.copy( 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") { class MagicalTranslatorsPL : MagicalTranslatorsCommon("pl") {
override fun filterMangasPage(mangasPage: MangasPage): MangasPage = mangasPage.copy( 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( class ReaperScans : HeanCms(
"Reaper Scans", "Reaper Scans",
"https://reaperscans.net", "https://reaperscans.net",
"pt-BR" "pt-BR",
) { ) {
override val client: OkHttpClient = super.client.newBuilder() override val client: OkHttpClient = super.client.newBuilder()
@ -51,6 +51,6 @@ class ReaperScans : HeanCms(
Genre("Segunda vida", 4), Genre("Segunda vida", 4),
Genre("Seinen", 1), Genre("Seinen", 1),
Genre("Shounen", 13), Genre("Shounen", 13),
Genre("Terror", 6) Genre("Terror", 6),
) )
} }

View File

@ -9,7 +9,7 @@ class YugenMangas : HeanCms(
"YugenMangas", "YugenMangas",
"https://yugenmangas.net", "https://yugenmangas.net",
"es", "es",
"https://api.yugenmangas.com" "https://api.yugenmangas.com",
) { ) {
// Site changed from Madara to HeanCms. // Site changed from Madara to HeanCms.
@ -69,6 +69,6 @@ class YugenMangas : HeanCms(
Genre("Transmigración", 34), Genre("Transmigración", 34),
Genre("Vida Escolar", 47), Genre("Vida Escolar", 47),
Genre("Yaoi", 43), 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) { if (tag.state != Filter.TriState.STATE_IGNORE) {
url.addQueryParameter( url.addQueryParameter(
if (tag.isIncluded()) "tags[include][]" else "tags[exclude][]", 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("Эксгибиционизм", "143"),
SearchFilter("Эльф", "144"), SearchFilter("Эльф", "144"),
SearchFilter("Юные", "145"), SearchFilter("Юные", "145"),
SearchFilter("Яндэрэ", "146") SearchFilter("Яндэрэ", "146"),
) )
companion object { companion object {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -11,7 +11,7 @@ class BorutoExplorer : Madara(
"Boruto Explorer", "Boruto Explorer",
"https://leitor.borutoexplorer.com.br", "https://leitor.borutoexplorer.com.br",
"pt-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() override val client: OkHttpClient = super.client.newBuilder()

View File

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

View File

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

View File

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

View File

@ -13,7 +13,7 @@ class ChunchunmaruTranslations : Madara(
"Chunchunmaru Translations", "Chunchunmaru Translations",
"https://chunchunmarutl.com", "https://chunchunmarutl.com",
"es", "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) 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", "Cronos Scan",
"https://cronosscan.net", "https://cronosscan.net",
"pt-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() override val client: OkHttpClient = super.client.newBuilder()

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -13,7 +13,7 @@ class EstufaDeCristal : Madara(
"Estufa de Cristal", "Estufa de Cristal",
"https://scanestufadecristal.site", "https://scanestufadecristal.site",
"pt-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() override val client: OkHttpClient = super.client.newBuilder()

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -11,7 +11,7 @@ class HelaScan : Madara(
"Hela Scan", "Hela Scan",
"https://helascan.com", "https://helascan.com",
"pt-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() 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( return GET(
"$baseUrl/manga/page/$page/?m_orderby=views", "$baseUrl/manga/page/$page/?m_orderby=views",
formHeaders, formHeaders,
CacheControl.FORCE_NETWORK CacheControl.FORCE_NETWORK,
) )
} }
override fun latestUpdatesRequest(page: Int): Request { override fun latestUpdatesRequest(page: Int): Request {
return GET( return GET(
"$baseUrl/manga/page/$page/?m_orderby=latest", "$baseUrl/manga/page/$page/?m_orderby=latest",
formHeaders, formHeaders,
CacheControl.FORCE_NETWORK CacheControl.FORCE_NETWORK,
) )
} }
} }

View File

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

View File

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

View File

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

View File

@ -8,5 +8,5 @@ class HentaiXComic : Madara(
"HentaiXComic", "HentaiXComic",
"https://hentaixcomic.com", "https://hentaixcomic.com",
"en", "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", "HentaiXYuri",
"https://hentaixyuri.com", "https://hentaixyuri.com",
"en", "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", "HerenScan",
"https://herenscan.com", "https://herenscan.com",
"es", "es",
dateFormat = SimpleDateFormat("d 'de' MMM 'de' yyy", Locale("es")) dateFormat = SimpleDateFormat("d 'de' MMM 'de' yyy", Locale("es")),
) { ) {
override val useNewChapterEndpoint = true override val useNewChapterEndpoint = true

View File

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

View File

@ -8,5 +8,5 @@ class hManhwa : Madara(
"hManhwa", "hManhwa",
"https://hmanhwa.com", "https://hmanhwa.com",
"en", "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", "Ichirin No Hana Yuri",
"https://ichirinnohanayuriscan.com", "https://ichirinnohanayuriscan.com",
"pt-BR", "pt-BR",
SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")) SimpleDateFormat("dd/MM/yyyy", Locale("pt", "BR")),
) { ) {
override val client: OkHttpClient = super.client.newBuilder() override val client: OkHttpClient = super.client.newBuilder()

View File

@ -11,7 +11,7 @@ class IllusionScan : Madara(
"Illusion Scan", "Illusion Scan",
"https://illusionscan.com", "https://illusionscan.com",
"pt-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() 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, -1.0f, 0.0f, 0.0f, 0.0f, 255.0f,
0.0f, -1.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, -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) 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)); 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(), """.trimIndent(),
"?" "?",
) )
} }
} }

View File

@ -11,7 +11,7 @@ class ImperioDaBritannia : Madara(
"Sagrado Império da Britannia", "Sagrado Império da Britannia",
"https://imperiodabritannia.com", "https://imperiodabritannia.com",
"pt-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() override val client: OkHttpClient = super.client.newBuilder()

View File

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

View File

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

View File

@ -8,5 +8,5 @@ class Jaiminisboxnet : Madara(
"JaiminisBox.net", "JaiminisBox.net",
"https://jaiminisbox.net", "https://jaiminisbox.net",
"en", "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", "Kalango Scan",
"https://kalangoscan.online", "https://kalangoscan.online",
"pt-BR", "pt-BR",
SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")) SimpleDateFormat("MMMMM dd, yyyy", Locale("pt", "BR")),
) { ) {
override val client: OkHttpClient = super.client.newBuilder() override val client: OkHttpClient = super.client.newBuilder()

View File

@ -11,7 +11,7 @@ class KamiSamaExplorer : Madara(
"Kami Sama Explorer", "Kami Sama Explorer",
"https://leitor.kamisama.com.br", "https://leitor.kamisama.com.br",
"pt-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() override val client: OkHttpClient = super.client.newBuilder()

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