Initial commit
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 13 KiB |
BIN
multisrc/overrides/gigaviewer/comicdays/res/web_hi_res_512.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
35
multisrc/overrides/gigaviewer/comicdays/src/ComicDays.kt
Normal file
@@ -0,0 +1,35 @@
|
||||
package eu.kanade.tachiyomi.extension.ja.comicdays
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.gigaviewer.GigaViewer
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import okhttp3.OkHttpClient
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class ComicDays : GigaViewer(
|
||||
"Comic Days",
|
||||
"https://comic-days.com",
|
||||
"ja",
|
||||
"https://cdn-img.comic-days.com/public/page",
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(::imageIntercept)
|
||||
.build()
|
||||
|
||||
override val publisher: String = "講談社"
|
||||
|
||||
override fun popularMangaSelector(): String = "ul.daily-series li.daily-series-item:has(a.link)"
|
||||
|
||||
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||
title = element.selectFirst("h4.daily-series-title")!!.text()
|
||||
thumbnail_url = element.selectFirst("div.daily-series-thumb img")!!
|
||||
.attr("data-src")
|
||||
setUrlWithoutDomain(element.selectFirst("a.link")!!.attr("href"))
|
||||
}
|
||||
|
||||
override fun latestUpdatesSelector(): String = "section#$dayOfWeek.daily " + popularMangaSelector()
|
||||
|
||||
override fun getCollections(): List<Collection> = listOf(
|
||||
Collection("連載作品一覧", ""),
|
||||
)
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 9.3 KiB |
BIN
multisrc/overrides/gigaviewer/comicgardo/res/web_hi_res_512.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
34
multisrc/overrides/gigaviewer/comicgardo/src/ComicGardo.kt
Normal file
@@ -0,0 +1,34 @@
|
||||
package eu.kanade.tachiyomi.extension.ja.comicgardo
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.gigaviewer.GigaViewer
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import okhttp3.OkHttpClient
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class ComicGardo : GigaViewer(
|
||||
"Comic Gardo",
|
||||
"https://comic-gardo.com",
|
||||
"ja",
|
||||
"https://cdn-img.comic-gardo.com/public/page",
|
||||
) {
|
||||
|
||||
override val supportsLatest: Boolean = false
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(::imageIntercept)
|
||||
.build()
|
||||
|
||||
override val publisher: String = "オーバーラップ"
|
||||
|
||||
override fun popularMangaSelector(): String = "ul.series-section-list li.series-section-item > a"
|
||||
|
||||
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||
title = element.selectFirst("h5.series-title")!!.text()
|
||||
thumbnail_url = element.selectFirst("div.thumb img")!!.attr("data-src")
|
||||
setUrlWithoutDomain(element.attr("href")!!)
|
||||
}
|
||||
|
||||
override fun getCollections(): List<Collection> = listOf(
|
||||
Collection("連載一覧", ""),
|
||||
)
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 655 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
BIN
multisrc/overrides/gigaviewer/comiplex/res/web_hi_res_512.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
42
multisrc/overrides/gigaviewer/comiplex/src/Comiplex.kt
Normal file
@@ -0,0 +1,42 @@
|
||||
package eu.kanade.tachiyomi.extension.ja.comiplex
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.gigaviewer.GigaViewer
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class Comiplex : GigaViewer(
|
||||
"Comiplex",
|
||||
"https://viewer.heros-web.com",
|
||||
"ja",
|
||||
"https://cdn-img.viewer.heros-web.com/public/page",
|
||||
) {
|
||||
|
||||
override val supportsLatest: Boolean = false
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(::imageIntercept)
|
||||
.build()
|
||||
|
||||
override val publisher: String = "ヒーローズ"
|
||||
|
||||
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/series/heros", headers)
|
||||
|
||||
override fun popularMangaSelector(): String = "ul.series-items li.series-item > a"
|
||||
|
||||
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||
title = element.selectFirst("h4.item-series-title")!!.text()
|
||||
thumbnail_url = element.selectFirst("div.series-item-thumb img")!!
|
||||
.attr("data-src")
|
||||
setUrlWithoutDomain(element.attr("href"))
|
||||
}
|
||||
|
||||
override fun getCollections(): List<Collection> = listOf(
|
||||
Collection("ヒーローズ", "heros"),
|
||||
Collection("ふらっとヒーローズ", "flat"),
|
||||
Collection("わいるどヒーローズ", "wild"),
|
||||
Collection("読切作品", "oneshot"),
|
||||
)
|
||||
}
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 43 KiB |
@@ -0,0 +1,72 @@
|
||||
package eu.kanade.tachiyomi.extension.ja.corocoroonline
|
||||
|
||||
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.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 supportsLatest: Boolean = false
|
||||
|
||||
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 = "a.p-article-wrap"
|
||||
|
||||
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||
title = element.selectFirst("h3.p-article-title")!!.text()
|
||||
.substringAfter(']')
|
||||
thumbnail_url = element.selectFirst("> .p-article-image > img")!!.attr("src")
|
||||
setUrlWithoutDomain(element.attr("href"))
|
||||
}
|
||||
|
||||
// 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 fetchPopularManga(page)
|
||||
.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"
|
||||
|
||||
override val chapterListMode = CHAPTER_LIST_LOCKED
|
||||
|
||||
// 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"
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 913 B |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
BIN
multisrc/overrides/gigaviewer/default/res/web_hi_res_512.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 995 B |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
BIN
multisrc/overrides/gigaviewer/kuragebunch/res/web_hi_res_512.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
44
multisrc/overrides/gigaviewer/kuragebunch/src/KurageBunch.kt
Normal file
@@ -0,0 +1,44 @@
|
||||
package eu.kanade.tachiyomi.extension.ja.kuragebunch
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.gigaviewer.GigaViewer
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class KurageBunch : GigaViewer(
|
||||
"Kurage Bunch",
|
||||
"https://kuragebunch.com",
|
||||
"ja",
|
||||
"https://cdn-img.kuragebunch.com",
|
||||
) {
|
||||
|
||||
override val supportsLatest: Boolean = false
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(::imageIntercept)
|
||||
.build()
|
||||
|
||||
override val publisher: String = "株式会社"
|
||||
|
||||
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/series/kuragebunch", headers)
|
||||
|
||||
override fun popularMangaSelector(): String = "ul.page-series-list li div.item-box"
|
||||
|
||||
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||
title = element.selectFirst("a.series-data-container h4")!!.text()
|
||||
thumbnail_url = element.selectFirst("a.series-thumb img")!!.attr("data-src")
|
||||
setUrlWithoutDomain(element.selectFirst("a")!!.attr("href"))
|
||||
}
|
||||
|
||||
override fun chapterListSelector(): String = "li.episode"
|
||||
|
||||
override fun getCollections(): List<Collection> = listOf(
|
||||
Collection("くらげバンチ", "kuragebunch"),
|
||||
Collection("読切", "oneshot"),
|
||||
Collection("月刊コミックバンチ", "comicbunch"),
|
||||
Collection("Bバンチ", "bbunch"),
|
||||
Collection("ututu", "ututu"),
|
||||
)
|
||||
}
|
||||
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 105 KiB |
@@ -0,0 +1,36 @@
|
||||
package eu.kanade.tachiyomi.extension.ja.magazinepocket
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.gigaviewer.GigaViewer
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import okhttp3.OkHttpClient
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class MagazinePocket : GigaViewer(
|
||||
"Magazine Pocket",
|
||||
"https://pocket.shonenmagazine.com",
|
||||
"ja",
|
||||
"https://cdn-img.pocket.shonenmagazine.com/public/page",
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(::imageIntercept)
|
||||
.build()
|
||||
|
||||
override val publisher: String = "講談社"
|
||||
|
||||
override fun popularMangaSelector(): String = "ul.daily-series li.daily-series-item > a"
|
||||
|
||||
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||
title = element.selectFirst("h4.daily-series-title")!!.text()
|
||||
thumbnail_url = element.selectFirst("div.daily-series-thumb img")!!.attr("data-src")
|
||||
setUrlWithoutDomain(element.attr("href")!!)
|
||||
}
|
||||
|
||||
override fun latestUpdatesSelector(): String = "section.daily.$dayOfWeek " + popularMangaSelector()
|
||||
|
||||
override fun getCollections(): List<Collection> = listOf(
|
||||
Collection("マガポケ連載一覧", ""),
|
||||
Collection("週刊少年マガジン連載一覧", "smaga"),
|
||||
Collection("別冊少年マガジン連載一覧", "bmaga"),
|
||||
)
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
BIN
multisrc/overrides/gigaviewer/magcomi/res/web_hi_res_512.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
34
multisrc/overrides/gigaviewer/magcomi/src/MagComi.kt
Normal file
@@ -0,0 +1,34 @@
|
||||
package eu.kanade.tachiyomi.extension.ja.magcomi
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.gigaviewer.GigaViewer
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import okhttp3.OkHttpClient
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class MagComi : GigaViewer(
|
||||
"MAGCOMI",
|
||||
"https://magcomi.com",
|
||||
"ja",
|
||||
"https://cdn-img.magcomi.com/public/page",
|
||||
) {
|
||||
|
||||
override val supportsLatest: Boolean = false
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(::imageIntercept)
|
||||
.build()
|
||||
|
||||
override val publisher: String = "マッグガーデン"
|
||||
|
||||
override fun popularMangaSelector(): String = "ul.magcomi-series-list li.series-item > a"
|
||||
|
||||
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||
title = element.select("h3.series-title").text()
|
||||
thumbnail_url = element.select("div.series-thumb img").attr("src")
|
||||
setUrlWithoutDomain(element.attr("href"))
|
||||
}
|
||||
|
||||
override fun getCollections(): List<Collection> = listOf(
|
||||
Collection("連載・読切", ""),
|
||||
)
|
||||
}
|
||||
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 34 KiB |
@@ -0,0 +1,24 @@
|
||||
package eu.kanade.tachiyomi.extension.ja.shonenjumpplus
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.gigaviewer.GigaViewer
|
||||
import okhttp3.OkHttpClient
|
||||
|
||||
class ShonenJumpPlus : GigaViewer(
|
||||
"Shonen Jump+",
|
||||
"https://shonenjumpplus.com",
|
||||
"ja",
|
||||
"https://cdn-ak-img.shonenjumpplus.com",
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(::imageIntercept)
|
||||
.build()
|
||||
|
||||
override val publisher: String = "集英社"
|
||||
|
||||
override fun getCollections(): List<Collection> = listOf(
|
||||
Collection("ジャンプ+連載一覧", ""),
|
||||
Collection("ジャンプ+読切シリーズ", "oneshot"),
|
||||
Collection("連載終了作品", "finished"),
|
||||
)
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,38 @@
|
||||
package eu.kanade.tachiyomi.extension.ja.sundaywebevery
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.gigaviewer.GigaViewer
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import okhttp3.OkHttpClient
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class SundayWebEvery : GigaViewer(
|
||||
"Sunday Web Every",
|
||||
"https://www.sunday-webry.com",
|
||||
"ja",
|
||||
"https://cdn-img.www.sunday-webry.com/public/page",
|
||||
) {
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(::imageIntercept)
|
||||
.build()
|
||||
|
||||
override val publisher: String = "小学館"
|
||||
|
||||
override fun popularMangaSelector(): String = "ul.webry-series-list li a.webry-series-item-link"
|
||||
|
||||
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||
title = element.selectFirst("h4.series-title")!!.text()
|
||||
thumbnail_url = element.selectFirst("div.thumb-wrapper img")!!.attr("data-src")
|
||||
setUrlWithoutDomain(element.attr("href"))
|
||||
}
|
||||
|
||||
override fun latestUpdatesSelector(): String = "h3#series-$dayOfWeek + section " + popularMangaSelector()
|
||||
|
||||
override val chapterListMode = CHAPTER_LIST_LOCKED
|
||||
|
||||
override fun getCollections(): List<Collection> = listOf(
|
||||
Collection("連載作品", ""),
|
||||
Collection("読切", "oneshot"),
|
||||
Collection("夜サンデー", "yoru-sunday"),
|
||||
)
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 19 KiB |
@@ -0,0 +1,40 @@
|
||||
package eu.kanade.tachiyomi.extension.ja.tonarinoyoungjump
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.gigaviewer.GigaViewer
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import okhttp3.OkHttpClient
|
||||
import org.jsoup.nodes.Element
|
||||
|
||||
class TonariNoYoungJump : GigaViewer(
|
||||
"Tonari no Young Jump",
|
||||
"https://tonarinoyj.jp",
|
||||
"ja",
|
||||
"https://cdn-img.tonarinoyj.jp/public/page",
|
||||
) {
|
||||
|
||||
override val supportsLatest: Boolean = false
|
||||
|
||||
override val client: OkHttpClient = super.client.newBuilder()
|
||||
.addInterceptor(::imageIntercept)
|
||||
.build()
|
||||
|
||||
override val publisher: String = "集英社"
|
||||
|
||||
override fun popularMangaSelector(): String = "ul.series-table-list li.subpage-table-list-item > a"
|
||||
|
||||
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
|
||||
title = element.selectFirst("h4.title")!!.text()
|
||||
thumbnail_url = element.selectFirst("div.subpage-image-wrapper img")!!.attr("data-src")
|
||||
.replace("{width}", "528")
|
||||
.replace("{height}", "528")
|
||||
setUrlWithoutDomain(element.attr("href"))
|
||||
}
|
||||
|
||||
override val chapterListMode = CHAPTER_LIST_LOCKED
|
||||
|
||||
override fun getCollections(): List<Collection> = listOf(
|
||||
Collection("連載中", ""),
|
||||
Collection("読切", "oneshot"),
|
||||
Collection("出張作品", "trial"),
|
||||
)
|
||||
}
|
||||