WPMangaThemesia: add Manhwa Freak (#13447)
- add comment about wpmangastream & reader change name to manga themesia - add manhwa freak source closes #11092
This commit is contained in:
parent
bce2ff7924
commit
0d8cf85d40
Binary file not shown.
After Width: | Height: | Size: 6.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 9.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
Binary file not shown.
After Width: | Height: | Size: 200 KiB |
|
@ -0,0 +1,59 @@
|
||||||
|
package eu.kanade.tachiyomi.extension.en.manhwafreak
|
||||||
|
|
||||||
|
import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
|
||||||
|
import eu.kanade.tachiyomi.network.GET
|
||||||
|
import eu.kanade.tachiyomi.source.model.FilterList
|
||||||
|
import eu.kanade.tachiyomi.source.model.SChapter
|
||||||
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
|
import okhttp3.Request
|
||||||
|
import org.jsoup.nodes.Element
|
||||||
|
|
||||||
|
class ManhwaFreak : MangaThemesia("Manhwa Freak", "https://manhwafreak.com", "en") {
|
||||||
|
|
||||||
|
// they called the theme "mangareaderfix"
|
||||||
|
|
||||||
|
// popular
|
||||||
|
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl$mangaUrlDirectory?order=views", headers)
|
||||||
|
|
||||||
|
// latest
|
||||||
|
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl$mangaUrlDirectory", headers)
|
||||||
|
|
||||||
|
// search
|
||||||
|
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request =
|
||||||
|
GET("$baseUrl/page/$page/?s=$query")
|
||||||
|
|
||||||
|
override fun searchMangaSelector() = ".listupd .lastest-serie"
|
||||||
|
|
||||||
|
// manga details
|
||||||
|
override val seriesDetailsSelector = ".wrapper .series"
|
||||||
|
|
||||||
|
override val seriesThumbnailSelector = ".info img"
|
||||||
|
override val seriesTitleSelector = "h1.title"
|
||||||
|
override val seriesArtistSelector = "#info div:contains(Artist) > p:last-child"
|
||||||
|
override val seriesAuthorSelector = "#info div:contains(Author) > p:last-child"
|
||||||
|
override val seriesStatusSelector = "#info div:contains(Status) > p:last-child"
|
||||||
|
override val seriesDescriptionSelector = "#summary"
|
||||||
|
override val seriesGenreSelector = "#info div:contains(Genre) > p:last-child"
|
||||||
|
|
||||||
|
override val seriesAltNameSelector = "#info div:contains(Alternative) > p:last-child"
|
||||||
|
override val seriesTypeSelector = "#info div:contains(Type) > p:last-child"
|
||||||
|
|
||||||
|
override fun String?.parseStatus(): Int = when {
|
||||||
|
this == null -> SManga.UNKNOWN
|
||||||
|
listOf("ongoing", "publishing", "release").any { this.contains(it, ignoreCase = true) } -> SManga.ONGOING
|
||||||
|
this.contains("completed", ignoreCase = true) -> SManga.COMPLETED
|
||||||
|
else -> SManga.UNKNOWN
|
||||||
|
}
|
||||||
|
|
||||||
|
// chapter list
|
||||||
|
override fun chapterListSelector() = ".chapter-li a"
|
||||||
|
|
||||||
|
override fun chapterFromElement(element: Element) = SChapter.create().apply {
|
||||||
|
val urlElements = element.select("a")
|
||||||
|
setUrlWithoutDomain(urlElements.attr("href"))
|
||||||
|
name = element.select(".chapter-info p:nth-child(1)").text().ifBlank { urlElements.first().text() }
|
||||||
|
date_upload = element.selectFirst(".chapter-info p:nth-child(2)")?.text().parseChapterDate()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getFilterList() = FilterList()
|
||||||
|
}
|
|
@ -30,6 +30,7 @@ import java.text.SimpleDateFormat
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
|
// Formerly WPMangaStream & WPMangaReader -> MangaThemesia
|
||||||
abstract class MangaThemesia(
|
abstract class MangaThemesia(
|
||||||
override val name: String,
|
override val name: String,
|
||||||
override val baseUrl: String,
|
override val baseUrl: String,
|
||||||
|
|
|
@ -4,6 +4,7 @@ import generator.ThemeSourceData.MultiLang
|
||||||
import generator.ThemeSourceData.SingleLang
|
import generator.ThemeSourceData.SingleLang
|
||||||
import generator.ThemeSourceGenerator
|
import generator.ThemeSourceGenerator
|
||||||
|
|
||||||
|
// Formerly WPMangaStream & WPMangaReader -> MangaThemesia
|
||||||
class MangaThemesiaGenerator : ThemeSourceGenerator {
|
class MangaThemesiaGenerator : ThemeSourceGenerator {
|
||||||
|
|
||||||
override val themePkg = "mangathemesia"
|
override val themePkg = "mangathemesia"
|
||||||
|
@ -59,6 +60,7 @@ class MangaThemesiaGenerator : ThemeSourceGenerator {
|
||||||
SingleLang("MangKomik", "https://mangkomik.com", "id"),
|
SingleLang("MangKomik", "https://mangkomik.com", "id"),
|
||||||
SingleLang("Mangás Chan", "https://mangaschan.com", "pt-BR", className = "MangasChan"),
|
SingleLang("Mangás Chan", "https://mangaschan.com", "pt-BR", className = "MangasChan"),
|
||||||
SingleLang("Manhua Raw", "https://manhuaraw.com", "en"),
|
SingleLang("Manhua Raw", "https://manhuaraw.com", "en"),
|
||||||
|
SingleLang("Manhwa Freak", "https://manhwafreak.com", "en"),
|
||||||
SingleLang("ManhwaDesu", "https://manhwadesu.me", "id", isNsfw = true, overrideVersionCode = 1),
|
SingleLang("ManhwaDesu", "https://manhwadesu.me", "id", isNsfw = true, overrideVersionCode = 1),
|
||||||
SingleLang("ManhwaIndo", "https://manhwaindo.id", "id", isNsfw = true, overrideVersionCode = 2),
|
SingleLang("ManhwaIndo", "https://manhwaindo.id", "id", isNsfw = true, overrideVersionCode = 2),
|
||||||
SingleLang("ManhwaLand.mom", "https://manhwaland.mom", "id", isNsfw = true, className = "ManhwaLandMom", overrideVersionCode = 1),
|
SingleLang("ManhwaLand.mom", "https://manhwaland.mom", "id", isNsfw = true, className = "ManhwaLandMom", overrideVersionCode = 1),
|
||||||
|
|
Loading…
Reference in New Issue