Add Gourmet scans to madara (#374)
* Add source to madara * Commit changes * fix capacity
This commit is contained in:
parent
23f8d95b1d
commit
64d59377c6
Binary file not shown.
After Width: | Height: | Size: 6.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
112
multisrc/overrides/madara/gourmetscans/src/GourmetScans.kt
Normal file
112
multisrc/overrides/madara/gourmetscans/src/GourmetScans.kt
Normal file
@ -0,0 +1,112 @@
|
||||
package eu.kanade.tachiyomi.extension.en.gourmetscans
|
||||
|
||||
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 okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.Request
|
||||
import org.jsoup.nodes.Document
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class GourmetScans : Madara(
|
||||
"Gourmet Scans",
|
||||
"https://gourmetsupremacy.com",
|
||||
"en",
|
||||
) {
|
||||
override val mangaSubString = "project"
|
||||
|
||||
override val useNewChapterEndpoint = false
|
||||
|
||||
// Search
|
||||
|
||||
override fun searchPage(page: Int): String = if (page == 1) "" else "page/$page/"
|
||||
|
||||
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
||||
val url = baseUrl.toHttpUrl().newBuilder()
|
||||
|
||||
val filterList = if (filters.isEmpty()) getFilterList() else filters
|
||||
val yearFilter = filterList.find { it is YearFilter } as YearFilter
|
||||
val orderByFilter = filterList.find { it is OrderByFilter } as OrderByFilter
|
||||
val genreFilter = filterList.find { it is GenreFilter } as? GenreFilter
|
||||
|
||||
when {
|
||||
yearFilter.state.isNotBlank() -> {
|
||||
url.addPathSegment("release-year")
|
||||
url.addPathSegment(yearFilter.state)
|
||||
}
|
||||
genreFilter?.state?.equals(0)?.not() ?: false -> {
|
||||
url.addPathSegment("genre")
|
||||
url.addPathSegment(genreFilter!!.toUriPart())
|
||||
}
|
||||
else -> {
|
||||
url.addPathSegment(mangaSubString)
|
||||
}
|
||||
}
|
||||
|
||||
if (orderByFilter.toUriPart().isNotBlank()) {
|
||||
url.addQueryParameter("m_orderby", orderByFilter.toUriPart())
|
||||
}
|
||||
|
||||
url.addPathSegments(searchPage(page))
|
||||
|
||||
return GET(url.build(), headers)
|
||||
}
|
||||
|
||||
override fun searchMangaSelector(): String = ".page-listing-item .page-item-detail"
|
||||
|
||||
override fun searchMangaNextPageSelector(): String = ".navigation-ajax > #navigation-ajax"
|
||||
|
||||
// Filters
|
||||
|
||||
override fun genresRequest(): Request = GET("$baseUrl/$mangaSubString", headers)
|
||||
|
||||
override fun parseGenres(document: Document): List<Genre> {
|
||||
genresList = document.select("div.row.genres ul li a")
|
||||
.orEmpty()
|
||||
.map { li ->
|
||||
Pair(
|
||||
li.text(),
|
||||
li.attr("href").split("/").last { it.isNotBlank() },
|
||||
)
|
||||
}
|
||||
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
private var genresList: List<Pair<String, String>> = emptyList()
|
||||
|
||||
class GenreFilter(val vals: List<Pair<String, String>>) :
|
||||
UriPartFilter("Genre", vals.toTypedArray())
|
||||
|
||||
override fun getFilterList(): FilterList {
|
||||
val filters = buildList(4) {
|
||||
add(YearFilter(yearFilterTitle))
|
||||
add(
|
||||
OrderByFilter(
|
||||
title = orderByFilterTitle,
|
||||
options = orderByFilterOptions.zip(orderByFilterOptionsValues),
|
||||
state = 0,
|
||||
),
|
||||
)
|
||||
add(Filter.Separator())
|
||||
|
||||
if (genresList.isEmpty()) {
|
||||
add(Filter.Header(genresMissingWarning))
|
||||
} else {
|
||||
add(GenreFilter(listOf(Pair("<select>", "")) + genresList))
|
||||
}
|
||||
}
|
||||
|
||||
return FilterList(filters)
|
||||
}
|
||||
|
||||
// Chapters
|
||||
|
||||
override fun chapterFromElement(element: Element): SChapter {
|
||||
return super.chapterFromElement(element).apply {
|
||||
url = this.url.substringBefore("?style=list")
|
||||
}
|
||||
}
|
||||
}
|
@ -119,6 +119,7 @@ class MadaraGenerator : ThemeSourceGenerator {
|
||||
SingleLang("Glory Manga", "https://glorymanga.com", "tr"),
|
||||
SingleLang("Good Girls Scan", "https://goodgirls.moe", "en", isNsfw = true),
|
||||
SingleLang("Goof Fansub", "https://gooffansub.com", "pt-BR", isNsfw = true),
|
||||
SingleLang("Gourmet Scans", "https://gourmetsupremacy.com", "en", isNsfw = true),
|
||||
SingleLang("Grabber Zone", "https://grabber.zone", "all"),
|
||||
SingleLang("Gri Melek", "https://grimelek.net", "tr", isNsfw = true, className = "Siyahmelek", overrideVersionCode = 4),
|
||||
SingleLang("GuncelManga", "https://guncelmanga.com", "tr", overrideVersionCode = 1),
|
||||
|
Loading…
x
Reference in New Issue
Block a user