Remove some dead sources (#9626)
* Remove Mangajikan, closes #9426 * Remove Gufeng Manhua, closes #9437 * Remove Damao Manhua (image pages all broken)
@ -1,10 +0,0 @@
|
||||
ext {
|
||||
extName = 'Mangajikan'
|
||||
extClass = '.Mangajikan'
|
||||
themePkg = 'mccms'
|
||||
baseUrl = 'https://www.mangajikan.com'
|
||||
overrideVersionCode = 1
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 10 KiB |
@ -1,11 +0,0 @@
|
||||
package eu.kanade.tachiyomi.extension.ja.mangajikan
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mccms.MCCMS
|
||||
import eu.kanade.tachiyomi.multisrc.mccms.MCCMSConfig
|
||||
|
||||
class Mangajikan : MCCMS(
|
||||
name = "漫画時間",
|
||||
baseUrl = "https://www.mangajikan.com",
|
||||
lang = "ja",
|
||||
config = MCCMSConfig(lazyLoadImageAttr = "src"),
|
||||
)
|
@ -1,10 +0,0 @@
|
||||
ext {
|
||||
extName = 'Damao Manhua'
|
||||
extClass = '.DamaoManhua'
|
||||
themePkg = 'mccms'
|
||||
baseUrl = 'https://www.hanman.cyou/index.php'
|
||||
overrideVersionCode = 0
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
@ -1,17 +0,0 @@
|
||||
package eu.kanade.tachiyomi.extension.zh.damaomanhua
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.mccms.MCCMS
|
||||
import eu.kanade.tachiyomi.multisrc.mccms.MCCMSConfig
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
|
||||
class DamaoManhua : MCCMS(
|
||||
"大猫漫画",
|
||||
"https://www.hanman.cyou/index.php",
|
||||
"zh",
|
||||
MCCMSConfig(useMobilePageList = true),
|
||||
) {
|
||||
// Details and chapter pages are broken
|
||||
override fun getMangaUrl(manga: SManga) = baseUrl
|
||||
override fun getChapterUrl(chapter: SChapter) = baseUrl
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
ext {
|
||||
extName = 'Gufeng Manhua'
|
||||
extClass = '.Gufengmh'
|
||||
themePkg = 'sinmh'
|
||||
baseUrl = 'https://www.gufengmh9.com'
|
||||
overrideVersionCode = 7
|
||||
isNsfw = true
|
||||
}
|
||||
|
||||
apply from: "$rootDir/common.gradle"
|
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 7.3 KiB |
@ -1,50 +0,0 @@
|
||||
package eu.kanade.tachiyomi.extension.zh.gufengmh
|
||||
|
||||
import eu.kanade.tachiyomi.multisrc.sinmh.ProgressiveParser
|
||||
import eu.kanade.tachiyomi.multisrc.sinmh.SinMH
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import org.jsoup.nodes.Document
|
||||
import rx.Observable
|
||||
import rx.Single
|
||||
|
||||
class Gufengmh : SinMH("古风漫画网", "https://www.gufengmh9.com") {
|
||||
|
||||
override fun mangaDetailsParse(document: Document): SManga =
|
||||
super.mangaDetailsParse(document).apply {
|
||||
if (status == SManga.COMPLETED) return@apply
|
||||
val firstChapter = document.selectFirst(".chapter-body li > a") ?: return@apply
|
||||
if (firstChapter.attr("href").startsWith("javascript")) {
|
||||
status = SManga.LICENSED
|
||||
}
|
||||
}
|
||||
|
||||
override fun fetchChapterList(manga: SManga): Observable<List<SChapter>> =
|
||||
Single.create<List<SChapter>> { subscriber ->
|
||||
val pcResponse = client.newCall(GET(baseUrl + manga.url, headers)).execute()
|
||||
val pcResult = chapterListParse(pcResponse, ".chapter-body li > a", "span.sj")
|
||||
if (pcResult.none { it.url.isEmpty() }) return@create subscriber.onSuccess(pcResult)
|
||||
// Example: https://www.gufengmh9.com/manhua/niaoling/
|
||||
val mobileResponse = client.newCall(GET(mobileUrl + manga.url, headers)).execute()
|
||||
val mobileResult = chapterListParse(mobileResponse, ".list li > a", ".pic_zi:nth-of-type(4) > dd")
|
||||
val pcAscending = pcResult.asReversed()
|
||||
val mobileAscending = mobileResult.asReversed()
|
||||
for ((pcChapter, mobileChapter) in pcAscending zip mobileAscending) {
|
||||
if (pcChapter.name != mobileChapter.name) return@create subscriber.onSuccess(mobileResult)
|
||||
pcChapter.url = mobileChapter.url
|
||||
}
|
||||
pcAscending.forEachIndexed { i, chapter ->
|
||||
if (chapter.url.isNotEmpty()) return@forEachIndexed
|
||||
if (i == 0) return@create subscriber.onSuccess(mobileResult)
|
||||
val prevUrl = pcAscending[i - 1].url
|
||||
val response = client.newCall(GET(baseUrl + prevUrl, headers)).execute()
|
||||
chapter.url = buildString {
|
||||
append(prevUrl, 0, prevUrl.lastIndexOf('/') + 1)
|
||||
append(ProgressiveParser(response.body.string()).substringBetween("""nextChapterData = {"id":""", ","))
|
||||
append(".html")
|
||||
}
|
||||
}
|
||||
subscriber.onSuccess(pcResult)
|
||||
}.toObservable()
|
||||
}
|