Add ManhwaFreak.fr and Sushiscan.fr (#17864)
* Add ManhwaFreak.fr and Sushiscan.fr * Add FilterList and Request for search * Update multisrc/overrides/mangathemesia/manhwafreakfr/src/ManhwaFreakFR.kt Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com> * Update multisrc/overrides/mangathemesia/sushiscanfr/src/SushiScanFR.kt Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com> * Update source names --------- Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 63 KiB |
@ -0,0 +1,32 @@
|
||||
package eu.kanade.tachiyomi.extension.fr.manhwafreakfr
|
||||
|
||||
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 okhttp3.Request
|
||||
import org.jsoup.nodes.Element
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
|
||||
class ManhwaFreakFR : MangaThemesia("ManhwaFreak", "https://manhwafreak.fr", "fr", dateFormat = SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH)) {
|
||||
override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/manga/?type=comic", headers)
|
||||
|
||||
override fun popularMangaRequest(page: Int) = GET("$baseUrl/manga/?order=views&type=comic", headers)
|
||||
|
||||
override fun searchMangaSelector() = ".listupd .lastest-serie"
|
||||
|
||||
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request =
|
||||
GET("$baseUrl/page/$page/?s=$query")
|
||||
|
||||
override fun chapterListSelector() = ".chapter-li a:not(:has(svg))"
|
||||
|
||||
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()
|
||||
}
|
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 42 KiB |
@ -0,0 +1,24 @@
|
||||
package eu.kanade.tachiyomi.extension.fr.sushiscanfr
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import org.jsoup.nodes.Document
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Locale
|
||||
|
||||
class SushiScanFR : MangaThemesia("Sushiscan.fr", "https://sushiscan.fr", "fr", dateFormat = SimpleDateFormat("MMMM d, yyyy", Locale.FRENCH)) {
|
||||
override val altNamePrefix = "Nom alternatif : "
|
||||
override val seriesAuthorSelector = ".imptdt:contains(Auteur) i, .fmed b:contains(Auteur)+span"
|
||||
override val seriesStatusSelector = ".imptdt:contains(Statut) i"
|
||||
override fun String?.parseStatus(): Int = when {
|
||||
this == null -> SManga.UNKNOWN
|
||||
this.contains("En Cours", ignoreCase = true) -> SManga.ONGOING
|
||||
this.contains("Terminé", ignoreCase = true) -> SManga.COMPLETED
|
||||
else -> SManga.UNKNOWN
|
||||
}
|
||||
|
||||
override fun mangaDetailsParse(document: Document): SManga =
|
||||
super.mangaDetailsParse(document).apply {
|
||||
status = document.select(seriesStatusSelector).text().parseStatus()
|
||||
}
|
||||
}
|
@ -79,6 +79,7 @@ class MangaThemesiaGenerator : ThemeSourceGenerator {
|
||||
SingleLang("MangKomik", "https://mangkomik.net", "id", overrideVersionCode = 1),
|
||||
SingleLang("Mangás Chan", "https://mangaschan.net", "pt-BR", className = "MangasChan", overrideVersionCode = 1),
|
||||
SingleLang("Manhwa Freak", "https://manhwa-freak.com", "en", overrideVersionCode = 2),
|
||||
SingleLang("ManhwaFreak", "https://manhwafreak.fr", "fr", className = "ManhwaFreakFR"),
|
||||
SingleLang("ManhwaDesu", "https://manhwadesu.org", "id", isNsfw = true, overrideVersionCode = 3),
|
||||
SingleLang("ManhwaIndo", "https://manhwaindo.id", "id", isNsfw = true, overrideVersionCode = 2),
|
||||
SingleLang("ManhwaLand.mom", "https://manhwaland.us", "id", isNsfw = true, className = "ManhwaLandMom", overrideVersionCode = 4),
|
||||
@ -124,6 +125,7 @@ class MangaThemesiaGenerator : ThemeSourceGenerator {
|
||||
SingleLang("SummerToon", "https://summertoon.com", "tr"),
|
||||
SingleLang("Surya Scans", "https://suryascans.com", "en"),
|
||||
SingleLang("Sushi-Scan", "https://sushiscan.net", "fr", className = "SushiScan", overrideVersionCode = 6),
|
||||
SingleLang("Sushiscan.fr", "https://sushiscan.fr", "fr", className = "SushiScanFR"),
|
||||
SingleLang("Tarot Scans", "https://www.tarotscans.com", "tr"),
|
||||
SingleLang("TenkaiScan", "https://tenkaiscan.net", "es", isNsfw = true),
|
||||
SingleLang("Tenshi.id", "https://tenshi.id", "id", className = "TenshiId", pkgName = "masterkomik", overrideVersionCode = 3),
|
||||
|