parent
9389831dc1
commit
6ca2749e2c
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
Binary file not shown.
After Width: | Height: | Size: 5.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
Binary file not shown.
After Width: | Height: | Size: 58 KiB |
|
@ -0,0 +1,74 @@
|
|||
package eu.kanade.tachiyomi.extension.ja.corocoroonline
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.gigaviewer.GigaViewer
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.network.asObservableSuccess
|
||||
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 okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import org.jsoup.nodes.Element
|
||||
import rx.Observable
|
||||
|
||||
class CorocoroOnline : GigaViewer(
|
||||
"Corocoro Online",
|
||||
"https://corocoro.jp",
|
||||
"ja",
|
||||
"https://cdn-img.www.corocoro.jp/public/page"
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(::imageIntercept)
|
||||
.build()
|
||||
|
||||
override val publisher = "小学館"
|
||||
|
||||
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/manga", headers)
|
||||
|
||||
override fun popularMangaSelector(): String = "ul.p-list-manga li.p-wp-list-item > a"
|
||||
|
||||
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||
title = element.selectFirst("h3.p-article-title")!!.text()
|
||||
.substringBefore("第")
|
||||
.trim()
|
||||
thumbnail_url = element.selectFirst("img")!!.attr("src")
|
||||
setUrlWithoutDomain(element.attr("href"))
|
||||
}
|
||||
|
||||
override fun latestUpdatesSelector(): String = "div.p-manga-today a.p-article-wrap"
|
||||
|
||||
// Site doesn't have a manga search and only returns news in search results.
|
||||
override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable<MangasPage> {
|
||||
return client.newCall(popularMangaRequest(page))
|
||||
.asObservableSuccess()
|
||||
.map(::popularMangaParse)
|
||||
.map { allManga ->
|
||||
val filteredManga = allManga.mangas.filter { manga ->
|
||||
manga.title.contains(query, true)
|
||||
}
|
||||
|
||||
MangasPage(filteredManga, hasNextPage = false)
|
||||
}
|
||||
}
|
||||
|
||||
// The chapters only load using the URL with 'www'.
|
||||
override fun mangaDetailsRequest(manga: SManga): Request =
|
||||
GET(BASE_URL_WWW + manga.url, headers)
|
||||
|
||||
override fun chapterListRequest(manga: SManga): Request = mangaDetailsRequest(manga)
|
||||
|
||||
override fun pageListRequest(chapter: SChapter): Request =
|
||||
GET(BASE_URL_WWW + chapter.url, headers)
|
||||
|
||||
// All chapters seems to be free.
|
||||
override fun chapterListSelector(): String = "li.episode"
|
||||
|
||||
// The source have no collections, so no need to have filters.
|
||||
override fun getFilterList(): FilterList = FilterList()
|
||||
|
||||
companion object {
|
||||
private const val BASE_URL_WWW = "https://www.corocoro.jp"
|
||||
}
|
||||
}
|
|
@ -15,6 +15,7 @@ class GigaViewerGenerator : ThemeSourceGenerator {
|
|||
SingleLang("Comic Days", "https://comic-days.com", "ja"),
|
||||
SingleLang("Comic Gardo", "https://comic-gardo.com", "ja"),
|
||||
SingleLang("Comiplex", "https://viewer.heros-web.com", "ja"),
|
||||
SingleLang("Corocoro Online", "https://corocoro.jp", "ja"),
|
||||
SingleLang("Kurage Bunch", "https://kuragebunch.com", "ja"),
|
||||
SingleLang("MAGCOMI", "https://magcomi.com", "ja", className = "MagComi"),
|
||||
SingleLang("Magazine Pocket", "https://pocket.shonenmagazine.com", "ja"),
|
||||
|
|
Loading…
Reference in New Issue