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("Glory Manga", "https://glorymanga.com", "tr"),
|
||||||
SingleLang("Good Girls Scan", "https://goodgirls.moe", "en", isNsfw = true),
|
SingleLang("Good Girls Scan", "https://goodgirls.moe", "en", isNsfw = true),
|
||||||
SingleLang("Goof Fansub", "https://gooffansub.com", "pt-BR", 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("Grabber Zone", "https://grabber.zone", "all"),
|
||||||
SingleLang("Gri Melek", "https://grimelek.net", "tr", isNsfw = true, className = "Siyahmelek", overrideVersionCode = 4),
|
SingleLang("Gri Melek", "https://grimelek.net", "tr", isNsfw = true, className = "Siyahmelek", overrideVersionCode = 4),
|
||||||
SingleLang("GuncelManga", "https://guncelmanga.com", "tr", overrideVersionCode = 1),
|
SingleLang("GuncelManga", "https://guncelmanga.com", "tr", overrideVersionCode = 1),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user