CVIUS bc259faf3e
add few more sources to madara (#7935)
* 24hmanga icon

* mangabox icon

* mangaforfreecom icon

* mangahz icon

* mangalime icon

* delete ym icon

* replace ym icon

* Create BoysLove.kt

* Update BoysLove.kt

* Update MangaClash.kt

* Update MangaClash.kt

* Update MangaKomi.kt

* Create ManhwahentaiMe.kt

* Update ManyToon.kt

* Create ManyToonMe.kt

* Update MidnightMessScans.kt

* Create 24hManga.kt

* Create MangaForFreeCom.kt

* Create MangaHZ.kt

* Delete MangaHZ.kt

* Create MangaHZ.kt

* Update MangaKitsune.kt

* Delete multisrc/overrides/madara/mangadna directory

* Update MadaraGenerator.kt

* Create MangaBox.kt

* Update MangaClash.kt

* Update 24hManga.kt

* Update MangaHZ.kt

* Delete multisrc/overrides/madara/aloalivn/src directory

* Update 24hManga.kt

* Update 24hManga.kt

* Delete multisrc/overrides/madara/mangaforfreecom directory

* remove mangaforfreecom

* Delete multisrc/overrides/madara/24hmanga directory

* 24hmanga icon

* Create TwenyFourhManga.kt

* Rename TwenyFourhManga.kt to TwentyFourhManga.kt

* Update MadaraGenerator.kt

* Update TwentyFourhManga.kt

* Update ManhwahentaiMe.kt

* Update ManyToon.kt

* Update ManyToonMe.kt
2021-07-02 08:15:36 -04:00

111 lines
4.3 KiB
Kotlin

package eu.kanade.tachiyomi.extension.en.midnightmessscans
import eu.kanade.tachiyomi.multisrc.madara.Madara
import eu.kanade.tachiyomi.annotations.Nsfw
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.POST
import eu.kanade.tachiyomi.network.asObservable
import eu.kanade.tachiyomi.source.model.Filter
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.MangasPage
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.CacheControl
import okhttp3.FormBody
import okhttp3.Headers
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import rx.Observable
import java.text.ParseException
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
import java.util.concurrent.TimeUnit
import kotlin.math.absoluteValue
import kotlin.random.Random
@Nsfw
class MidnightMessScans : Madara("Midnight Mess Scans", "https://midnightmess.org", "en") {
override fun mangaDetailsParse(document: Document): SManga {
val manga = SManga.create()
with(document) {
select("div.post-title h3").first()?.let {
manga.title = it.ownText()
}
select("div.author-content").first()?.let {
if (it.text().notUpdating()) manga.author = it.text()
}
select("div.artist-content").first()?.let {
if (it.text().notUpdating()) manga.artist = it.text()
}
select("div.summary_content div.post-content").let {
manga.description = it.select("div.manga-excerpt").text()
}
select("div.summary_image img").first()?.let {
manga.thumbnail_url = imageFromElement(it)
}
select("div.summary-content").last()?.let {
manga.status = when (it.text()) {
// I don't know what's the corresponding for COMPLETED and LICENSED
// There's no support for "Canceled" or "On Hold"
"Completed", "Completo", "Concluído", "Concluido", "Terminé" -> SManga.COMPLETED
"OnGoing", "Продолжается", "Updating", "Em Lançamento", "Em andamento", "Em Andamento", "En cours", "Ativo", "Lançando" -> SManga.ONGOING
else -> SManga.UNKNOWN
}
}
val genres = select("div.genres-content a")
.map { element -> element.text().toLowerCase(Locale.ROOT) }
.toMutableSet()
// add tag(s) to genre
select("div.tags-content a").forEach { element ->
if (genres.contains(element.text()).not()) {
genres.add(element.text().toLowerCase(Locale.ROOT))
}
}
// add manga/manhwa/manhua thinggy to genre
document.select(seriesTypeSelector).firstOrNull()?.ownText()?.let {
if (it.isEmpty().not() && it.notUpdating() && it != "-" && genres.contains(it).not()) {
genres.add(it.toLowerCase(Locale.ROOT))
}
}
manga.genre = genres.toList().joinToString(", ") { it.capitalize(Locale.ROOT) }
// add alternative name to manga description
document.select(altNameSelector).firstOrNull()?.ownText()?.let {
if (it.isEmpty().not() && it.notUpdating()) {
manga.description += when {
manga.description.isNullOrEmpty() -> altName + it
else -> "\n\n$altName" + it
}
}
}
}
return manga
}
override fun getGenreList() = listOf(
Genre("Bilibili", "bilibili"),
Genre("Complete", "complete"),
Genre("Manga", "manga"),
Genre("Manhwa", "manhwa"),
Genre("Manhua", "manhua"),
Genre("Shounen ai", "shounen-ai"),
Genre("Thiccass", "thiccass"),
Genre("Usahime", "usahime"),
Genre("Yaoi", "yaoi"),
)
}