parent
5c9409b906
commit
209eaa9f1c
@ -5,7 +5,7 @@ ext {
|
|||||||
appName = 'Tachiyomi: MyReadingManga'
|
appName = 'Tachiyomi: MyReadingManga'
|
||||||
pkgNameSuffix = 'all.myreadingmanga'
|
pkgNameSuffix = 'all.myreadingmanga'
|
||||||
extClass = '.MyReadingMangaFactory'
|
extClass = '.MyReadingMangaFactory'
|
||||||
extVersionCode = 25
|
extVersionCode = 26
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
package eu.kanade.tachiyomi.extension.all.myreadingmanga
|
package eu.kanade.tachiyomi.extension.all.myreadingmanga
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import eu.kanade.tachiyomi.network.GET
|
import eu.kanade.tachiyomi.network.GET
|
||||||
|
import eu.kanade.tachiyomi.network.asObservableSuccess
|
||||||
import eu.kanade.tachiyomi.source.model.*
|
import eu.kanade.tachiyomi.source.model.*
|
||||||
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
|
||||||
import eu.kanade.tachiyomi.util.asJsoup
|
import eu.kanade.tachiyomi.util.asJsoup
|
||||||
import okhttp3.*
|
import okhttp3.*
|
||||||
import org.jsoup.nodes.Document
|
import org.jsoup.nodes.Document
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
|
import rx.Observable
|
||||||
import java.net.URLEncoder
|
import java.net.URLEncoder
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
@ -118,7 +120,17 @@ open class MyReadingManga(override val lang: String) : ParsedHttpSource() {
|
|||||||
private fun cleanTitle(title: String) = title.substringBeforeLast("[").substringAfterLast("]").substringBeforeLast("(")
|
private fun cleanTitle(title: String) = title.substringBeforeLast("[").substringAfterLast("]").substringBeforeLast("(")
|
||||||
private fun cleanAuthor(title: String) = title.substringAfter("[").substringBefore("]")
|
private fun cleanAuthor(title: String) = title.substringAfter("[").substringBefore("]")
|
||||||
|
|
||||||
override fun mangaDetailsParse(document: Document): SManga {
|
override fun fetchMangaDetails(manga: SManga): Observable<SManga> {
|
||||||
|
val needCover = manga.thumbnail_url.isNullOrEmpty()
|
||||||
|
|
||||||
|
return client.newCall(mangaDetailsRequest(manga))
|
||||||
|
.asObservableSuccess()
|
||||||
|
.map { response ->
|
||||||
|
mangaDetailsParse(response.asJsoup(), needCover).apply { initialized = true }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun mangaDetailsParse(document: Document, needCover: Boolean): SManga {
|
||||||
val manga = SManga.create()
|
val manga = SManga.create()
|
||||||
manga.author = cleanAuthor(document.select("h1").text())
|
manga.author = cleanAuthor(document.select("h1").text())
|
||||||
manga.artist = cleanAuthor(document.select("h1").text())
|
manga.artist = cleanAuthor(document.select("h1").text())
|
||||||
@ -130,9 +142,17 @@ open class MyReadingManga(override val lang: String) : ParsedHttpSource() {
|
|||||||
"Completed" -> SManga.COMPLETED
|
"Completed" -> SManga.COMPLETED
|
||||||
else -> SManga.UNKNOWN
|
else -> SManga.UNKNOWN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (needCover) {
|
||||||
|
manga.thumbnail_url = getThumbnail(client.newCall(GET("$baseUrl/search/?search=${document.location()}", headers))
|
||||||
|
.execute().asJsoup().select("div.wdm_results div.p_content img").first().attr("abs:src"))
|
||||||
|
}
|
||||||
|
|
||||||
return manga
|
return manga
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun mangaDetailsParse(document: Document) = throw Exception("Not used")
|
||||||
|
|
||||||
override fun chapterListSelector() = ".entry-pagination a"
|
override fun chapterListSelector() = ".entry-pagination a"
|
||||||
|
|
||||||
override fun chapterListParse(response: Response): List<SChapter> {
|
override fun chapterListParse(response: Response): List<SChapter> {
|
||||||
@ -142,15 +162,16 @@ open class MyReadingManga(override val lang: String) : ParsedHttpSource() {
|
|||||||
val date = parseDate(document.select(".entry-time").text())
|
val date = parseDate(document.select(".entry-time").text())
|
||||||
val mangaUrl = document.baseUri()
|
val mangaUrl = document.baseUri()
|
||||||
val chfirstname = document.select(".chapter-class a[href*=$mangaUrl]")?.first()?.text()?.ifEmpty { "Ch. 1" }?.capitalize() ?:"Ch. 1"
|
val chfirstname = document.select(".chapter-class a[href*=$mangaUrl]")?.first()?.text()?.ifEmpty { "Ch. 1" }?.capitalize() ?:"Ch. 1"
|
||||||
|
val scangroup= document.select(".entry-terms a[href*=group]")?.first()?.text()
|
||||||
//create first chapter since its on main manga page
|
//create first chapter since its on main manga page
|
||||||
chapters.add(createChapter("1", document.baseUri(), date, chfirstname))
|
chapters.add(createChapter("1", document.baseUri(), date, chfirstname, scangroup))
|
||||||
//see if there are multiple chapters or not
|
//see if there are multiple chapters or not
|
||||||
document.select(chapterListSelector())?.let { it ->
|
document.select(chapterListSelector())?.let { it ->
|
||||||
it.forEach {
|
it.forEach {
|
||||||
if (!it.text().contains("Next »", true)) {
|
if (!it.text().contains("Next »", true)) {
|
||||||
val pageNumber = it.text()
|
val pageNumber = it.text()
|
||||||
val chname = document.select(".chapter-class a[href$=/$pageNumber/]")?.text()?.ifEmpty { "Ch. $pageNumber" }?.capitalize() ?:"Ch. $pageNumber"
|
val chname = document.select(".chapter-class a[href$=/$pageNumber/]")?.text()?.ifEmpty { "Ch. $pageNumber" }?.capitalize() ?:"Ch. $pageNumber"
|
||||||
chapters.add(createChapter(it.text(), document.baseUri(), date, chname))
|
chapters.add(createChapter(it.text(), document.baseUri(), date, chname, scangroup))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -163,11 +184,12 @@ open class MyReadingManga(override val lang: String) : ParsedHttpSource() {
|
|||||||
return SimpleDateFormat("MMM dd, yyyy", Locale.US ).parse(date).time
|
return SimpleDateFormat("MMM dd, yyyy", Locale.US ).parse(date).time
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createChapter(pageNumber: String, mangaUrl: String, date: Long, chname: String): SChapter {
|
private fun createChapter(pageNumber: String, mangaUrl: String, date: Long, chname: String, scangroup: String?): SChapter {
|
||||||
val chapter = SChapter.create()
|
val chapter = SChapter.create()
|
||||||
chapter.setUrlWithoutDomain("$mangaUrl/$pageNumber")
|
chapter.setUrlWithoutDomain("$mangaUrl/$pageNumber")
|
||||||
chapter.name = chname
|
chapter.name = chname
|
||||||
chapter.date_upload = date
|
chapter.date_upload = date
|
||||||
|
chapter.scanlator = scangroup
|
||||||
return chapter
|
return chapter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user