Add ComicGrowl (#7489)
* comicgrowl: add new source * comicgrowl: add locked status in chapterlist * comicgrowl: fetch latest mangas
This commit is contained in:
parent
9cfd561677
commit
0d94dabe27
|
@ -0,0 +1,9 @@
|
|||
ext {
|
||||
extName = 'Comic Growl'
|
||||
extClass = '.ComicGrowl'
|
||||
themePkg = 'gigaviewer'
|
||||
baseUrl = 'https://comic-growl.com'
|
||||
overrideVersionCode = 0
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
Binary file not shown.
After Width: | Height: | Size: 4.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 6.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
|
@ -0,0 +1,63 @@
|
|||
package eu.kanade.tachiyomi.extension.all.comicgrowl
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.gigaviewer.GigaViewer
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import okhttp3.HttpUrl.Companion.toHttpUrl
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
// TODO: get manga status
|
||||
// TODO: filter by status
|
||||
// TODO: change cdnUrl as a array(upstream)
|
||||
class ComicGrowl : GigaViewer(
|
||||
"コミックグロウル",
|
||||
"https://comic-growl.com",
|
||||
"all",
|
||||
"https://cdn-img.comic-growl.com/public/page",
|
||||
) {
|
||||
|
||||
override val publisher = "BUSHIROAD WORKS"
|
||||
|
||||
override val chapterListMode = CHAPTER_LIST_LOCKED
|
||||
|
||||
override val supportsLatest: Boolean = true
|
||||
|
||||
override val client: OkHttpClient =
|
||||
super.client.newBuilder().addInterceptor(::imageIntercept).build()
|
||||
|
||||
override fun popularMangaRequest(page: Int): Request = GET(baseUrl, headers)
|
||||
|
||||
// Show only ongoing works
|
||||
override fun popularMangaSelector(): String = "ul[class=\"lineup-list ongoing\"] > li > div > a"
|
||||
|
||||
override fun popularMangaFromElement(element: Element) = SManga.create().apply {
|
||||
title = element.select("h5").text()
|
||||
thumbnail_url = element.select("div > img").attr("data-src")
|
||||
setUrlWithoutDomain(element.attr("href"))
|
||||
}
|
||||
|
||||
override fun latestUpdatesSelector() =
|
||||
"div[class=\"update latest\"] > div.card-board > " + "div[class~=card]:not([class~=ad]) > div > a"
|
||||
|
||||
override fun latestUpdatesFromElement(element: Element) = SManga.create().apply {
|
||||
title = element.select("div.data h3").text()
|
||||
thumbnail_url = element.select("div.thumb-container img").attr("data-src")
|
||||
setUrlWithoutDomain(element.attr("href"))
|
||||
}
|
||||
|
||||
override fun getCollections(): List<Collection> = listOf(
|
||||
Collection("連載作品", ""),
|
||||
)
|
||||
|
||||
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
||||
if (query.isNotEmpty()) {
|
||||
val url = "$baseUrl/search".toHttpUrl().newBuilder().addQueryParameter("q", query)
|
||||
|
||||
return GET(url.build(), headers)
|
||||
}
|
||||
return GET(baseUrl, headers) // Currently just get all ongoing works
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue