FMReader - fix RawLH & KissLove, remove MangaBone (#3579)
This commit is contained in:
parent
82e8daf2a9
commit
afe8757638
@ -5,7 +5,7 @@ ext {
|
||||
appName = 'Tachiyomi: FMReader (multiple aggregators)'
|
||||
pkgNameSuffix = 'all.fmreader'
|
||||
extClass = '.FMReaderFactory'
|
||||
extVersionCode = 16
|
||||
extVersionCode = 17
|
||||
libVersion = '1.2'
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package eu.kanade.tachiyomi.extension.all.fmreader
|
||||
|
||||
import android.util.Base64
|
||||
import eu.kanade.tachiyomi.network.GET
|
||||
import eu.kanade.tachiyomi.source.model.Filter
|
||||
import eu.kanade.tachiyomi.source.model.FilterList
|
||||
@ -9,6 +10,7 @@ import eu.kanade.tachiyomi.source.model.SChapter
|
||||
import eu.kanade.tachiyomi.source.model.SManga
|
||||
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
||||
import eu.kanade.tachiyomi.util.asJsoup
|
||||
import java.nio.charset.Charset
|
||||
import java.util.Calendar
|
||||
import okhttp3.Headers
|
||||
import okhttp3.HttpUrl
|
||||
@ -33,7 +35,7 @@ abstract class FMReader(
|
||||
override val client: OkHttpClient = network.cloudflareClient
|
||||
|
||||
override fun headersBuilder() = Headers.Builder().apply {
|
||||
add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64) Gecko/20100101 Firefox/75.0")
|
||||
add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64) Gecko/20100101 Firefox/77.0")
|
||||
add("Referer", baseUrl)
|
||||
}
|
||||
|
||||
@ -259,6 +261,21 @@ abstract class FMReader(
|
||||
}
|
||||
}
|
||||
|
||||
protected fun base64PageListParse(document: Document): List<Page> {
|
||||
fun Element.decoded(): String {
|
||||
val attr = if (this.hasAttr("data-original")) "data-original" else "data-src"
|
||||
return if (!this.attr(attr).contains(".")) {
|
||||
Base64.decode(this.attr(attr), Base64.DEFAULT).toString(Charset.defaultCharset())
|
||||
} else {
|
||||
this.attr("abs:$attr")
|
||||
}
|
||||
}
|
||||
|
||||
return document.select(pageListImageSelector).mapIndexed { i, img ->
|
||||
Page(i, document.location(), img.decoded())
|
||||
}
|
||||
}
|
||||
|
||||
override fun imageUrlParse(document: Document): String = throw UnsupportedOperationException("Not used")
|
||||
|
||||
private class TextField(name: String, val key: String) : Filter.Text(name)
|
||||
|
@ -25,7 +25,6 @@ class FMReaderFactory : SourceFactory {
|
||||
override fun createSources(): List<Source> = listOf(
|
||||
LHTranslation(),
|
||||
KissLove(),
|
||||
MangaBone(),
|
||||
ReadComicOnlineOrg(),
|
||||
HanaScan(),
|
||||
RawLH(),
|
||||
@ -47,8 +46,9 @@ class FMReaderFactory : SourceFactory {
|
||||
|
||||
class LHTranslation : FMReader("LHTranslation", "https://lhtranslation.net", "en")
|
||||
|
||||
class KissLove : FMReader("KissLove", "https://kisslove.net", "ja")
|
||||
class MangaBone : FMReader("MangaBone", "https://mangabone.com", "en")
|
||||
class KissLove : FMReader("KissLove", "https://kisslove.net", "ja") {
|
||||
override fun pageListParse(document: Document): List<Page> = base64PageListParse(document)
|
||||
}
|
||||
|
||||
class ReadComicOnlineOrg : FMReader("ReadComicOnline.org", "https://readcomiconline.org", "en") {
|
||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
|
||||
@ -94,6 +94,7 @@ class HanaScan : FMReader("HanaScan (RawQQ)", "https://hanascan.com", "ja") {
|
||||
|
||||
class RawLH : FMReader("RawLH", "https://loveheaven.net", "ja") {
|
||||
override fun popularMangaNextPageSelector() = "div.col-md-8 button"
|
||||
override fun pageListParse(document: Document): List<Page> = base64PageListParse(document)
|
||||
// Referer needs to be chapter URL
|
||||
override fun imageRequest(page: Page): Request = GET(page.imageUrl!!, headersBuilder().set("Referer", page.url).build())
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user