MangaKakalot: load MangaNelo content (fixes #1013) and parse chapter upload dates (fixes #965) (#1033)
This commit is contained in:
parent
53a6b166f8
commit
51e644cd82
@ -5,7 +5,7 @@ ext {
|
|||||||
appName = 'Tachiyomi: MangaKakalot'
|
appName = 'Tachiyomi: MangaKakalot'
|
||||||
pkgNameSuffix = 'en.mangakakalot'
|
pkgNameSuffix = 'en.mangakakalot'
|
||||||
extClass = '.Mangakakalot'
|
extClass = '.Mangakakalot'
|
||||||
extVersionCode = 4
|
extVersionCode = 5
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,10 @@ import okhttp3.OkHttpClient
|
|||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import org.jsoup.nodes.Document
|
import org.jsoup.nodes.Document
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
|
import java.text.ParseException
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
import java.util.Calendar
|
||||||
|
import java.util.Locale
|
||||||
|
|
||||||
class Mangakakalot : ParsedHttpSource() {
|
class Mangakakalot : ParsedHttpSource() {
|
||||||
|
|
||||||
@ -38,7 +42,7 @@ class Mangakakalot : ParsedHttpSource() {
|
|||||||
override fun popularMangaFromElement(element: Element): SManga {
|
override fun popularMangaFromElement(element: Element): SManga {
|
||||||
val manga = SManga.create()
|
val manga = SManga.create()
|
||||||
element.select("h3 a").first().let {
|
element.select("h3 a").first().let {
|
||||||
manga.setUrlWithoutDomain(it.attr("href"))
|
manga.url = it.attr("href")
|
||||||
manga.title = it.text()
|
manga.title = it.text()
|
||||||
}
|
}
|
||||||
manga.thumbnail_url = element.select("img").first().attr("src")
|
manga.thumbnail_url = element.select("img").first().attr("src")
|
||||||
@ -64,6 +68,10 @@ class Mangakakalot : ParsedHttpSource() {
|
|||||||
|
|
||||||
override fun searchMangaNextPageSelector() = popularMangaNextPageSelector()
|
override fun searchMangaNextPageSelector() = popularMangaNextPageSelector()
|
||||||
|
|
||||||
|
override fun mangaDetailsRequest(manga: SManga): Request {
|
||||||
|
return GET(manga.url, headers)
|
||||||
|
}
|
||||||
|
|
||||||
override fun mangaDetailsParse(document: Document): SManga {
|
override fun mangaDetailsParse(document: Document): SManga {
|
||||||
val infoElement = document.select("div.manga-info-top").first()
|
val infoElement = document.select("div.manga-info-top").first()
|
||||||
|
|
||||||
@ -88,17 +96,57 @@ class Mangakakalot : ParsedHttpSource() {
|
|||||||
else -> SManga.UNKNOWN
|
else -> SManga.UNKNOWN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun chapterListRequest(manga: SManga): Request {
|
||||||
|
return GET(manga.url, headers)
|
||||||
|
}
|
||||||
|
|
||||||
override fun chapterListSelector() = "div.chapter-list div.row"
|
override fun chapterListSelector() = "div.chapter-list div.row"
|
||||||
|
|
||||||
override fun chapterFromElement(element: Element): SChapter {
|
override fun chapterFromElement(element: Element): SChapter {
|
||||||
val urlElement = element.select("a").first()
|
val urlElement = element.select("a").first()
|
||||||
|
|
||||||
val chapter = SChapter.create()
|
val chapter = SChapter.create()
|
||||||
chapter.setUrlWithoutDomain(urlElement.attr("href"))
|
chapter.url = urlElement.attr("href")
|
||||||
chapter.name = urlElement.text()
|
chapter.name = urlElement.text()
|
||||||
|
chapter.date_upload = parseChapterDate(element.select("span").last().text())
|
||||||
return chapter
|
return chapter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun parseChapterDate(date: String): Long {
|
||||||
|
if ("ago" in date) {
|
||||||
|
val value = date.split(' ')[0].toInt()
|
||||||
|
|
||||||
|
if ("min" in date) {
|
||||||
|
return Calendar.getInstance().apply {
|
||||||
|
add(Calendar.MINUTE, value * -1)
|
||||||
|
}.timeInMillis
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("hour" in date) {
|
||||||
|
return Calendar.getInstance().apply {
|
||||||
|
add(Calendar.HOUR_OF_DAY, value * -1)
|
||||||
|
}.timeInMillis
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("day" in date) {
|
||||||
|
return Calendar.getInstance().apply {
|
||||||
|
add(Calendar.DATE, value * -1)
|
||||||
|
}.timeInMillis
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
return SimpleDateFormat("MMM-dd-yy", Locale.ENGLISH).parse(date).time
|
||||||
|
} catch (e: ParseException) {
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0L
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun pageListRequest(chapter: SChapter): Request {
|
||||||
|
return GET(chapter.url, headers)
|
||||||
|
}
|
||||||
|
|
||||||
override fun pageListParse(document: Document): List<Page> {
|
override fun pageListParse(document: Document): List<Page> {
|
||||||
val pages = mutableListOf<Page>()
|
val pages = mutableListOf<Page>()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user