[Manhwas Men] Migrate to Madara (#15566)
Move Manhwas.Men to Madara They are only using madara css and not the backend as there is no `admin-ajax.php`
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 71 KiB |
|
@ -0,0 +1,236 @@
|
|||
package eu.kanade.tachiyomi.extension.en.manhwasmen
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.source.model.Filter
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.Request
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class ManhwasMen : Madara("Manhwas Men", "https://manhwas.men", "en") {
|
||||
override val versionId = 2
|
||||
|
||||
override val fetchGenres = false
|
||||
override val sendViewCount = false
|
||||
override val useLoadMoreSearch = false
|
||||
|
||||
// popular
|
||||
override fun popularMangaSelector() = "div.col-6"
|
||||
override val popularMangaUrlSelector = ".series-box a"
|
||||
override fun popularMangaNextPageSelector() = "a[rel=next]"
|
||||
|
||||
override fun popularMangaRequest(page: Int): Request {
|
||||
return GET("$baseUrl/manga-list?page=$page", headers)
|
||||
}
|
||||
|
||||
override fun popularMangaFromElement(element: Element): SManga {
|
||||
return super.popularMangaFromElement(element).apply {
|
||||
title = element.select(popularMangaUrlSelector).text()
|
||||
}
|
||||
}
|
||||
|
||||
// latest
|
||||
override fun latestUpdatesSelector() = "div.d-flex:nth-child(6) div.col-6"
|
||||
|
||||
override fun latestUpdatesRequest(page: Int): Request {
|
||||
return GET(baseUrl, headers)
|
||||
}
|
||||
|
||||
// search
|
||||
override fun searchMangaSelector() = popularMangaSelector()
|
||||
override fun searchMangaNextPageSelector() = popularMangaNextPageSelector()
|
||||
override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element)
|
||||
|
||||
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
||||
val url = "$baseUrl/manga-list".toHttpUrl().newBuilder().apply {
|
||||
if (query.isEmpty()) {
|
||||
filters.forEach { filter ->
|
||||
when (filter) {
|
||||
is GenreFilter -> {
|
||||
addQueryParameter("genero", filter.values[filter.state])
|
||||
}
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
addQueryParameter("search", query)
|
||||
}
|
||||
addQueryParameter("page", "$page")
|
||||
}.build()
|
||||
|
||||
return GET(url, headers)
|
||||
}
|
||||
|
||||
// manga details
|
||||
override fun mangaDetailsParse(document: Document): SManga {
|
||||
return super.mangaDetailsParse(document).apply {
|
||||
document.select(mangaDetailsSelectorStatus).last()?.let {
|
||||
status = when (it.text()) {
|
||||
in "complete" -> SManga.COMPLETED
|
||||
in "ongoing" -> SManga.ONGOING
|
||||
else -> SManga.UNKNOWN
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// chapter list
|
||||
override val chapterUrlSuffix = ""
|
||||
|
||||
override fun chapterFromElement(element: Element): SChapter {
|
||||
return super.chapterFromElement(element).apply {
|
||||
name = element.select("p").text()
|
||||
}
|
||||
}
|
||||
|
||||
// page list
|
||||
override val pageListParseSelector = "#chapter_imgs img"
|
||||
|
||||
// genre
|
||||
private val getGenreList: Array<String> = arrayOf(
|
||||
"sub-english",
|
||||
"adult-drama-manhwa-mature",
|
||||
"drama",
|
||||
"rape",
|
||||
"revenge",
|
||||
"secret-relationship",
|
||||
"mature",
|
||||
"office",
|
||||
"harem",
|
||||
"romance",
|
||||
"ecchi",
|
||||
"noona",
|
||||
"hypnosis",
|
||||
"assistant",
|
||||
"special-ability",
|
||||
"awakening",
|
||||
"raws",
|
||||
"toomics",
|
||||
"1",
|
||||
"adult",
|
||||
"toptoon",
|
||||
"ntr",
|
||||
"bullying",
|
||||
"university",
|
||||
"comedy-romance-school-life-harem",
|
||||
"seinen",
|
||||
"sports",
|
||||
"virgin",
|
||||
"pingon-jaja",
|
||||
"lezhin",
|
||||
"school-life",
|
||||
"campus",
|
||||
"action-drama-fantasy-themes",
|
||||
"chef",
|
||||
"drama-fantasy-omniverse-romance",
|
||||
"vanilla",
|
||||
"comedy",
|
||||
"seniorjunior",
|
||||
"first-love",
|
||||
"saimin",
|
||||
"fantasy-harem",
|
||||
"raw",
|
||||
"romance-drama-harem",
|
||||
"fantasy",
|
||||
"18-adult-smut-manhwa-mature",
|
||||
"magic",
|
||||
"murin",
|
||||
"comedy-romance-school-life-drama-harem",
|
||||
"romance-drama-mature",
|
||||
"supernatural",
|
||||
"laezhin",
|
||||
"m",
|
||||
"romance-drama-harem-mature",
|
||||
"anytoon",
|
||||
"psychological",
|
||||
"militar",
|
||||
"chantaje",
|
||||
"four-sisters",
|
||||
"in-laws",
|
||||
"cheatinginfidelity-hypnosis-married-woman-netorare",
|
||||
"smut",
|
||||
"full-color",
|
||||
"comedia",
|
||||
"tragedia",
|
||||
"adult-romance-mature",
|
||||
"drama-harem-mature",
|
||||
"adult-drama-seinen-fantasy-harem",
|
||||
"adult-romance-drama-seinen-harem-mature",
|
||||
"action",
|
||||
"mystery",
|
||||
"thriller",
|
||||
"girlfriend",
|
||||
"collegestudent",
|
||||
"alumni",
|
||||
"lovetriangle",
|
||||
"parttimejob",
|
||||
"female-friend",
|
||||
"neighbour",
|
||||
"adult-romance-manhwa-mature",
|
||||
"married-woman",
|
||||
"beauty",
|
||||
"tomics",
|
||||
"adaptation-drama-romance",
|
||||
"succubus",
|
||||
"cosplay",
|
||||
"adult-romance-drama-harem",
|
||||
"humiliation",
|
||||
"two-girl",
|
||||
"craving",
|
||||
"aunt",
|
||||
"housekeeper",
|
||||
"manhwa",
|
||||
"sci-fi",
|
||||
"4-koma",
|
||||
"adult-manhwa-mature",
|
||||
"adult-romance-seinen",
|
||||
"netorare",
|
||||
"cohabitation-drama-ntr-office",
|
||||
"vida-universitaria",
|
||||
"vainilla",
|
||||
"comedy-romance-mature",
|
||||
"comedy-romance-drama-harem",
|
||||
"bodybuilding",
|
||||
"josei",
|
||||
"topstar",
|
||||
"naive-men",
|
||||
"mistery",
|
||||
"friend",
|
||||
"young-woman",
|
||||
"first-experience",
|
||||
"romance-drama-fantasy-slice-of-life-raw",
|
||||
"sisters",
|
||||
"slice-of-life",
|
||||
"dance",
|
||||
"romance-school-life-drama-mature",
|
||||
"drama-family",
|
||||
"universidad",
|
||||
"club",
|
||||
"bondage",
|
||||
"work-life",
|
||||
"romance-school-life-drama-harem",
|
||||
"big-pennis",
|
||||
"milf",
|
||||
"netori",
|
||||
"yuri",
|
||||
"adventure",
|
||||
"adult-romance-drama-smut-manhwa-mature",
|
||||
"wife",
|
||||
"temptation",
|
||||
"sexual-fantasy",
|
||||
)
|
||||
|
||||
private class GenreFilter(title: String, genreList: Array<String>) :
|
||||
Filter.Select<String>(title, genreList)
|
||||
|
||||
override fun getFilterList(): FilterList {
|
||||
return FilterList(
|
||||
Filter.Header("Note: Ignored if using text search"),
|
||||
GenreFilter("Genre", getGenreList),
|
||||
)
|
||||
}
|
||||
}
|
|
@ -289,6 +289,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
|||
SingleLang("ManhwaClan", "https://manhwaclan.com", "en"),
|
||||
SingleLang("Manhwafull", "https://manhwafull.com", "en", overrideVersionCode = 1),
|
||||
SingleLang("Manhwahentai.me", "https://manhwahentai.me", "en", className = "ManhwahentaiMe", isNsfw = true, overrideVersionCode = 2),
|
||||
SingleLang("Manhwas Men", "https://manhwas.men", "en", className = "ManhwasMen", isNsfw = true),
|
||||
SingleLang("ManhwaTime", "https://manhwatime.com", "ar"),
|
||||
SingleLang("Manhwatop", "https://manhwatop.com", "en", overrideVersionCode = 2),
|
||||
SingleLang("ManhwaWorld", "https://manhwaworld.com", "en"),
|
||||
|
|
|
@ -41,7 +41,6 @@ class MMRCMSSources {
|
|||
SourceData.Single("Read Comics Online", "https://readcomicsonline.ru", "en"),
|
||||
SourceData.Single("Fallen Angels", "https://manga.fascans.com", "en", overrideVersionCode = 2),
|
||||
SourceData.Single("Zahard", "https://zahard.xyz", "en", overrideVersionCode = 2),
|
||||
SourceData.Single("Manhwas Men", "https://manhwas.men", "en", isNsfw = true, overrideVersionCode = 1),
|
||||
SourceData.Single("Scan FR", "https://www.scan-fr.org", "fr", overrideVersionCode = 2),
|
||||
SourceData.Single("Scan VF", "https://www.scan-vf.net", "fr", overrideVersionCode = 1),
|
||||
SourceData.Single("Scan OP", "https://scan-op.cc", "fr"),
|
||||
|
|
|
@ -9,7 +9,6 @@ object SourceData {
|
|||
"https://readcomicsonline.ru" -> """{"name":"Read Comics Online","base_url":"https://readcomicsonline.ru","supports_latest":true,"item_url":"https://readcomicsonline.ru/comic/","categories":[{"id":"1","name":"One Shots \u0026 TPBs"},{"id":"2","name":"DC Comics"},{"id":"3","name":"Marvel Comics"},{"id":"4","name":"Boom Studios"},{"id":"5","name":"Dynamite"},{"id":"6","name":"Rebellion"},{"id":"7","name":"Dark Horse"},{"id":"8","name":"IDW"},{"id":"9","name":"Archie"},{"id":"10","name":"Graphic India"},{"id":"11","name":"Darby Pop"},{"id":"12","name":"Oni Press"},{"id":"13","name":"Icon Comics"},{"id":"14","name":"United Plankton"},{"id":"15","name":"Udon"},{"id":"16","name":"Image Comics"},{"id":"17","name":"Valiant"},{"id":"18","name":"Vertigo"},{"id":"19","name":"Devils Due"},{"id":"20","name":"Aftershock Comics"},{"id":"21","name":"Antartic Press"},{"id":"22","name":"Action Lab"},{"id":"23","name":"American Mythology"},{"id":"24","name":"Zenescope"},{"id":"25","name":"Top Cow"},{"id":"26","name":"Hermes Press"},{"id":"27","name":"451"},{"id":"28","name":"Black Mask"},{"id":"29","name":"Chapterhouse Comics"},{"id":"30","name":"Red 5"},{"id":"31","name":"Heavy Metal"},{"id":"32","name":"Bongo"},{"id":"33","name":"Top Shelf"},{"id":"34","name":"Bubble"},{"id":"35","name":"Boundless"},{"id":"36","name":"Avatar Press"},{"id":"37","name":"Space Goat Productions"},{"id":"38","name":"BroadSword Comics"},{"id":"39","name":"AAM-Markosia"},{"id":"40","name":"Fantagraphics"},{"id":"41","name":"Aspen"},{"id":"42","name":"American Gothic Press"},{"id":"43","name":"Vault"},{"id":"44","name":"215 Ink"},{"id":"45","name":"Abstract Studio"},{"id":"46","name":"Albatross"},{"id":"47","name":"ARH Comix"},{"id":"48","name":"Legendary Comics"},{"id":"49","name":"Monkeybrain"},{"id":"50","name":"Joe Books"},{"id":"51","name":"MAD"},{"id":"52","name":"Comics Experience"},{"id":"53","name":"Alterna Comics"},{"id":"54","name":"Lion Forge"},{"id":"55","name":"Benitez"},{"id":"56","name":"Storm King"},{"id":"57","name":"Sucker"},{"id":"58","name":"Amryl Entertainment"},{"id":"59","name":"Ahoy Comics"},{"id":"60","name":"Mad Cave"},{"id":"61","name":"Coffin Comics"},{"id":"62","name":"Magnetic Press"},{"id":"63","name":"Ablaze"},{"id":"64","name":"Europe Comics"},{"id":"65","name":"Humanoids"},{"id":"66","name":"TKO"},{"id":"67","name":"Soleil"},{"id":"68","name":"SAF Comics"},{"id":"69","name":"Scholastic"},{"id":"70","name":"Upshot"},{"id":"71","name":"Stranger Comics"},{"id":"72","name":"Inverse"},{"id":"73","name":"Virus"}]}"""
|
||||
"https://manga.fascans.com" -> """{"name":"Fallen Angels","base_url":"https://manga.fascans.com","supports_latest":true,"item_url":"https://manga.fascans.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"4-Koma"},{"id":"34","name":"Cooking"}]}"""
|
||||
"https://zahard.xyz" -> """{"name":"Zahard","base_url":"https://zahard.xyz","supports_latest":true,"item_url":"https://zahard.xyz/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}]}"""
|
||||
"https://manhwas.men" -> """{"name":"Manhwas Men","base_url":"https://manhwas.men","supports_latest":true,"item_url":"https://manhwas.men/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":[{"id":"tag","name":"前女友变女佣"},{"id":"four-sisters","name":"Four sisters"},{"id":"in-laws","name":"in-laws"},{"id":"raws","name":"raws"},{"id":"adult","name":"Adult"},{"id":"raw","name":"RAW"},{"id":"drama","name":"Drama"},{"id":"romance","name":"Romance"},{"id":"manhwa","name":"Manhwa"},{"id":"mature","name":"Mature"},{"id":"sub-english","name":"Sub English"},{"id":"seinen","name":"Seinen"},{"id":"smut","name":"Smut"},{"id":"harem","name":"Harem"},{"id":"toptoon","name":"toptoon"},{"id":"ntr","name":"NTR"}]}"""
|
||||
"https://www.scan-fr.org" -> """{"name":"Scan FR","base_url":"https://www.scan-fr.org","supports_latest":true,"item_url":"https://www.scan-fr.org/manga/","categories":[{"id":"1","name":"Comedy"},{"id":"2","name":"Doujinshi"},{"id":"3","name":"Drama"},{"id":"4","name":"Ecchi"},{"id":"5","name":"Fantasy"},{"id":"6","name":"Gender Bender"},{"id":"7","name":"Josei"},{"id":"8","name":"Mature"},{"id":"9","name":"Mecha"},{"id":"10","name":"Mystery"},{"id":"11","name":"One Shot"},{"id":"12","name":"Psychological"},{"id":"13","name":"Romance"},{"id":"14","name":"School Life"},{"id":"15","name":"Sci-fi"},{"id":"16","name":"Seinen"},{"id":"17","name":"Shoujo"},{"id":"18","name":"Shoujo Ai"},{"id":"19","name":"Shounen"},{"id":"20","name":"Shounen Ai"},{"id":"21","name":"Slice of Life"},{"id":"22","name":"Sports"},{"id":"23","name":"Supernatural"},{"id":"24","name":"Tragedy"},{"id":"25","name":"Yaoi"},{"id":"26","name":"Yuri"},{"id":"27","name":"Comics"},{"id":"28","name":"Autre"},{"id":"29","name":"BD Occidentale"},{"id":"30","name":"Manhwa"},{"id":"31","name":"Action"},{"id":"32","name":"Aventure"}]}"""
|
||||
"https://www.scan-vf.net" -> """{"name":"Scan VF","base_url":"https://www.scan-vf.net","supports_latest":true,"item_url":"https://www.scan-vf.net/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}]}"""
|
||||
"https://scan-op.cc" -> """{"name":"Scan OP","base_url":"https://scan-op.cc","supports_latest":true,"item_url":"https://scan-op.cc/manga/","categories":[{"id":"1","name":"Comedy"},{"id":"2","name":"Doujinshi"},{"id":"3","name":"Drama"},{"id":"4","name":"Ecchi"},{"id":"5","name":"Fantasy"},{"id":"6","name":"Gender Bender"},{"id":"7","name":"Josei"},{"id":"8","name":"Mature"},{"id":"9","name":"Mecha"},{"id":"10","name":"Mystery"},{"id":"11","name":"One Shot"},{"id":"12","name":"Psychological"},{"id":"13","name":"Romance"},{"id":"14","name":"School Life"},{"id":"15","name":"Sci-fi"},{"id":"16","name":"Seinen"},{"id":"17","name":"Shoujo"},{"id":"18","name":"Shoujo Ai"},{"id":"19","name":"Shounen"},{"id":"20","name":"Shounen Ai"},{"id":"21","name":"Slice of Life"},{"id":"22","name":"Sports"},{"id":"23","name":"Supernatural"},{"id":"24","name":"Tragedy"},{"id":"25","name":"Yaoi"},{"id":"26","name":"Yuri"},{"id":"27","name":"Comics"},{"id":"28","name":"Autre"}],"tags":[{"id":"nouveau","name":"nouveau"}]}"""
|
||||
|
|