parent
a648c7f2c9
commit
566c4c1832
|
@ -5,7 +5,7 @@ ext {
|
||||||
appName = 'Tachiyomi: Japscan'
|
appName = 'Tachiyomi: Japscan'
|
||||||
pkgNameSuffix = 'fr.japscan'
|
pkgNameSuffix = 'fr.japscan'
|
||||||
extClass = '.Japscan'
|
extClass = '.Japscan'
|
||||||
extVersionCode = 7
|
extVersionCode = 8
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,9 +39,13 @@ class Japscan : ParsedHttpSource() {
|
||||||
override val supportsLatest = true
|
override val supportsLatest = true
|
||||||
|
|
||||||
override val client: OkHttpClient = network.cloudflareClient.newBuilder().addInterceptor { chain ->
|
override val client: OkHttpClient = network.cloudflareClient.newBuilder().addInterceptor { chain ->
|
||||||
|
val indicator = "&decodeImage"
|
||||||
|
|
||||||
val request = chain.request()
|
val request = chain.request()
|
||||||
val response = chain.proceed(request)
|
val url = request.url().toString()
|
||||||
if (!request.url().pathSegments().contains("clel")) return@addInterceptor response
|
val response = chain.proceed(GET(url.substringBefore(indicator)))
|
||||||
|
|
||||||
|
if (!url.endsWith(indicator)) return@addInterceptor response
|
||||||
|
|
||||||
val res = response.body()!!.byteStream().use {
|
val res = response.body()!!.byteStream().use {
|
||||||
decodeImage(it)
|
decodeImage(it)
|
||||||
|
@ -60,13 +64,13 @@ class Japscan : ParsedHttpSource() {
|
||||||
override fun popularMangaSelector() = "#top_mangas_week li > span"
|
override fun popularMangaSelector() = "#top_mangas_week li > span"
|
||||||
|
|
||||||
override fun popularMangaRequest(page: Int): Request {
|
override fun popularMangaRequest(page: Int): Request {
|
||||||
return GET("$baseUrl", headers)
|
return GET(baseUrl, headers)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun latestUpdatesSelector() = "#chapters > div:eq(0) > h3.text-truncate"
|
override fun latestUpdatesSelector() = "#chapters > div:eq(0) > h3.text-truncate"
|
||||||
|
|
||||||
override fun latestUpdatesRequest(page: Int): Request {
|
override fun latestUpdatesRequest(page: Int): Request {
|
||||||
return GET("$baseUrl", headers)
|
return GET(baseUrl, headers)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun popularMangaFromElement(element: Element): SManga {
|
override fun popularMangaFromElement(element: Element): SManga {
|
||||||
|
@ -172,9 +176,10 @@ class Japscan : ParsedHttpSource() {
|
||||||
override fun pageListParse(document: Document): List<Page> {
|
override fun pageListParse(document: Document): List<Page> {
|
||||||
val pages = mutableListOf<Page>()
|
val pages = mutableListOf<Page>()
|
||||||
val imagePath = "(.*\\/).*".toRegex().find(document.select("#image").attr("data-src"))
|
val imagePath = "(.*\\/).*".toRegex().find(document.select("#image").attr("data-src"))
|
||||||
|
val imageScrambled = if (!document.select("script[src^='/js/iYFbYi_']").isNullOrEmpty()) "&decodeImage" else ""
|
||||||
|
|
||||||
document.select("select#pages").first()?.select("option")?.forEach {
|
document.select("select#pages").first()?.select("option")?.forEach {
|
||||||
pages.add(Page(pages.size, "", "${imagePath?.groupValues?.get(1)}${it.attr("data-img")}"))
|
pages.add(Page(pages.size, "", "${imagePath?.groupValues?.get(1)}${it.attr("data-img")}$imageScrambled"))
|
||||||
}
|
}
|
||||||
|
|
||||||
return pages
|
return pages
|
||||||
|
@ -197,7 +202,7 @@ class Japscan : ParsedHttpSource() {
|
||||||
|
|
||||||
for (x in 0..input.width step 200) {
|
for (x in 0..input.width step 200) {
|
||||||
val col1 = Rect(x, 0, x + 100, input.height)
|
val col1 = Rect(x, 0, x + 100, input.height)
|
||||||
if ((x + 200) <= input.width) {
|
if ((x + 200) < input.width) {
|
||||||
val col2 = Rect(x + 100, 0, x + 200, input.height)
|
val col2 = Rect(x + 100, 0, x + 200, input.height)
|
||||||
xCanvas.drawBitmap(input, col1, col2, null)
|
xCanvas.drawBitmap(input, col1, col2, null)
|
||||||
xCanvas.drawBitmap(input, col2, col1, null)
|
xCanvas.drawBitmap(input, col2, col1, null)
|
||||||
|
@ -211,7 +216,7 @@ class Japscan : ParsedHttpSource() {
|
||||||
for (y in 0..input.height step 200) {
|
for (y in 0..input.height step 200) {
|
||||||
val row1 = Rect(0, y, input.width, y + 100)
|
val row1 = Rect(0, y, input.width, y + 100)
|
||||||
|
|
||||||
if ((y + 200) <= input.height) {
|
if ((y + 200) < input.height) {
|
||||||
val row2 = Rect(0, y + 100, input.width, y + 200)
|
val row2 = Rect(0, y + 100, input.width, y + 200)
|
||||||
canvas.drawBitmap(xResult, row1, row2, null)
|
canvas.drawBitmap(xResult, row1, row2, null)
|
||||||
canvas.drawBitmap(xResult, row2, row1, null)
|
canvas.drawBitmap(xResult, row2, row1, null)
|
||||||
|
|
|
@ -5,7 +5,7 @@ ext {
|
||||||
appName = 'Tachiyomi: JMana'
|
appName = 'Tachiyomi: JMana'
|
||||||
pkgNameSuffix = 'ko.jmana'
|
pkgNameSuffix = 'ko.jmana'
|
||||||
extClass = '.JMana'
|
extClass = '.JMana'
|
||||||
extVersionCode = 4
|
extVersionCode = 5
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ import java.text.SimpleDateFormat
|
||||||
**/
|
**/
|
||||||
class JMana : ParsedHttpSource() {
|
class JMana : ParsedHttpSource() {
|
||||||
override val name = "JMana"
|
override val name = "JMana"
|
||||||
override val baseUrl = "https://mangahide.com"
|
override val baseUrl = "https://jmana5.com"
|
||||||
override val lang: String = "ko"
|
override val lang: String = "ko"
|
||||||
|
|
||||||
// Latest updates currently returns duplicate manga as it separates manga into chapters
|
// Latest updates currently returns duplicate manga as it separates manga into chapters
|
||||||
|
|
|
@ -5,12 +5,8 @@ ext {
|
||||||
appName = 'Tachiyomi: MangaShow.Me'
|
appName = 'Tachiyomi: MangaShow.Me'
|
||||||
pkgNameSuffix = 'ko.mangashowme'
|
pkgNameSuffix = 'ko.mangashowme'
|
||||||
extClass = '.MangaShowMe'
|
extClass = '.MangaShowMe'
|
||||||
extVersionCode = 6
|
extVersionCode = 7
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compileOnly project(':duktape-stub')
|
|
||||||
}
|
|
||||||
|
|
||||||
apply from: "$rootDir/common.gradle"
|
apply from: "$rootDir/common.gradle"
|
||||||
|
|
|
@ -24,7 +24,7 @@ import java.util.concurrent.TimeUnit
|
||||||
**/
|
**/
|
||||||
class MangaShowMe : ParsedHttpSource() {
|
class MangaShowMe : ParsedHttpSource() {
|
||||||
override val name = "MangaShow.Me"
|
override val name = "MangaShow.Me"
|
||||||
override val baseUrl = "https://mangashow3.me"
|
override val baseUrl = "https://mangashow5.me"
|
||||||
override val lang: String = "ko"
|
override val lang: String = "ko"
|
||||||
|
|
||||||
// Latest updates currently returns duplicate manga as it separates manga into chapters
|
// Latest updates currently returns duplicate manga as it separates manga into chapters
|
||||||
|
@ -212,8 +212,11 @@ class MangaShowMe : ParsedHttpSource() {
|
||||||
(0 until imageUrls.length())
|
(0 until imageUrls.length())
|
||||||
.map { imageUrls.getString(it) }
|
.map { imageUrls.getString(it) }
|
||||||
.map {
|
.map {
|
||||||
it.replace(".mangashow.me", ".mangashow3.me")
|
val curr = ".mangashow5.me"
|
||||||
.replace(".mangashow2.me", ".mangashow3.me")
|
it
|
||||||
|
.replace(".mangashow.me", curr)
|
||||||
|
.replace(".mangashow2.me", curr)
|
||||||
|
.replace(".mangashow3.me", curr)
|
||||||
}
|
}
|
||||||
.forEach { pages.add(Page(pages.size, "", decoder.request(it))) }
|
.forEach { pages.add(Page(pages.size, "", decoder.request(it))) }
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
|
|
@ -5,7 +5,7 @@ ext {
|
||||||
appName = 'Tachiyomi: NewToki'
|
appName = 'Tachiyomi: NewToki'
|
||||||
pkgNameSuffix = 'ko.newtoki'
|
pkgNameSuffix = 'ko.newtoki'
|
||||||
extClass = '.NewToki'
|
extClass = '.NewToki'
|
||||||
extVersionCode = 4
|
extVersionCode = 5
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ import java.util.*
|
||||||
**/
|
**/
|
||||||
class NewToki : ParsedHttpSource() {
|
class NewToki : ParsedHttpSource() {
|
||||||
override val name = "NewToki"
|
override val name = "NewToki"
|
||||||
override val baseUrl = "https://newtoki2.net"
|
override val baseUrl = "https://newtoki3.net"
|
||||||
override val lang: String = "ko"
|
override val lang: String = "ko"
|
||||||
|
|
||||||
// Latest updates currently returns duplicate manga as it separates manga into chapters
|
// Latest updates currently returns duplicate manga as it separates manga into chapters
|
||||||
|
|
Loading…
Reference in New Issue