diff --git a/multisrc/overrides/madara/manga18fx/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/manga18fx/res/mipmap-hdpi/ic_launcher.png index 2c98175a4..a096d5ace 100644 Binary files a/multisrc/overrides/madara/manga18fx/res/mipmap-hdpi/ic_launcher.png and b/multisrc/overrides/madara/manga18fx/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madara/manga18fx/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/manga18fx/res/mipmap-mdpi/ic_launcher.png index 1c4502adb..69beaeee8 100644 Binary files a/multisrc/overrides/madara/manga18fx/res/mipmap-mdpi/ic_launcher.png and b/multisrc/overrides/madara/manga18fx/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madara/manga18fx/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/manga18fx/res/mipmap-xhdpi/ic_launcher.png index 58b4ca03b..3d098d25f 100644 Binary files a/multisrc/overrides/madara/manga18fx/res/mipmap-xhdpi/ic_launcher.png and b/multisrc/overrides/madara/manga18fx/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madara/manga18fx/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/manga18fx/res/mipmap-xxhdpi/ic_launcher.png index 17f799c71..0e4d24224 100644 Binary files a/multisrc/overrides/madara/manga18fx/res/mipmap-xxhdpi/ic_launcher.png and b/multisrc/overrides/madara/manga18fx/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madara/manga18fx/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/manga18fx/res/mipmap-xxxhdpi/ic_launcher.png index a2f257cb1..4a749cd6f 100644 Binary files a/multisrc/overrides/madara/manga18fx/res/mipmap-xxxhdpi/ic_launcher.png and b/multisrc/overrides/madara/manga18fx/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madara/manga18fx/res/web_hi_res_512.png b/multisrc/overrides/madara/manga18fx/res/web_hi_res_512.png index d1504c5fb..d00490515 100644 Binary files a/multisrc/overrides/madara/manga18fx/res/web_hi_res_512.png and b/multisrc/overrides/madara/manga18fx/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madara/manga18fx/src/Manga18fx.kt b/multisrc/overrides/madara/manga18fx/src/Manga18fx.kt new file mode 100644 index 000000000..df607c758 --- /dev/null +++ b/multisrc/overrides/madara/manga18fx/src/Manga18fx.kt @@ -0,0 +1,72 @@ +package eu.kanade.tachiyomi.extension.en.manga18fx + +import eu.kanade.tachiyomi.multisrc.madara.Madara +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.MangasPage +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.Response +import org.jsoup.nodes.Element +import org.jsoup.select.Evaluator +import java.text.SimpleDateFormat +import java.util.Locale + +class Manga18fx : Madara( + "Manga18fx", + "https://manga18fx.com", + "en", + SimpleDateFormat("dd MMM yy", Locale.ENGLISH) +) { + override val id = 3157287889751723714 + + override val client = network.client + + override val fetchGenres = false + override val sendViewCount = false + + override fun popularMangaRequest(page: Int) = GET(baseUrl, headers) + + override fun popularMangaParse(response: Response): MangasPage { + val document = response.asJsoup() + val block = document.selectFirst(Evaluator.Class("trending-block")) + val mangas = block.select(Evaluator.Tag("a")).map(::mangaFromElement) + return MangasPage(mangas, false) + } + + private fun mangaFromElement(element: Element) = SManga.create().apply { + url = element.attr("href") + title = element.attr("title") + thumbnail_url = element.selectFirst(Evaluator.Tag("img")).attr("data-src") + } + + override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/page/$page", headers) + + override fun latestUpdatesParse(response: Response): MangasPage { + val document = response.asJsoup() + val mangas = document.select(Evaluator.Class("bsx-item")).map { + mangaFromElement(it.selectFirst(Evaluator.Tag("a"))) + } + val nextButton = document.selectFirst(Evaluator.Class("next")) + val hasNextPage = nextButton != null && nextButton.hasClass("disabled").not() + return MangasPage(mangas, hasNextPage) + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList) = + GET("$baseUrl/search?q=$query&page=$page", headers) + + override fun searchMangaParse(response: Response) = latestUpdatesParse(response) + + override val mangaDetailsSelectorDescription = ".dsct" + + override fun chapterListParse(response: Response): List { + val document = response.asJsoup() + val container = document.selectFirst(Evaluator.Class("row-content-chapter")) + return container.children().map(::chapterFromElement) + } + + override fun chapterDateSelector() = "span.chapter-time" + + override fun getFilterList() = FilterList(emptyList()) +} diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt index dc96e7b05..3d2652c9d 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt @@ -222,7 +222,7 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Manga-Online.co", "https://www.manga-online.co", "th", className = "MangaOnlineCo"), SingleLang("Manga-Scantrad", "https://manga-scantrad.net", "fr", className = "MangaScantrad", overrideVersionCode = 2), SingleLang("Manga-TX", "https://manga-tx.com", "en", className = "Mangatxunoriginal"), - SingleLang("Manga18 Fx", "https://manga18fx.com", "en", overrideVersionCode = 1), + SingleLang("Manga18fx", "https://manga18fx.com", "en", isNsfw = true, overrideVersionCode = 2), SingleLang("Manga1st", "https://manga1st.com", "en", overrideVersionCode = 2), SingleLang("Manga1st.online", "https://manga1st.online", "en", className = "MangaFirstOnline", overrideVersionCode = 1), SingleLang("Manga347", "https://manga347.com", "en", overrideVersionCode = 3),