MangaKakalot: load MangaNelo content (fixes #1013) and parse chapter upload dates (fixes #965) (#1033)

This commit is contained in:
Eugene 2019-04-17 22:06:07 -04:00 committed by GitHub
parent 53a6b166f8
commit 51e644cd82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 51 additions and 3 deletions

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: MangaKakalot'
pkgNameSuffix = 'en.mangakakalot'
extClass = '.Mangakakalot'
extVersionCode = 4
extVersionCode = 5
libVersion = '1.2'
}

View File

@ -10,6 +10,10 @@ import okhttp3.OkHttpClient
import okhttp3.Request
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import java.text.ParseException
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
class Mangakakalot : ParsedHttpSource() {
@ -38,7 +42,7 @@ class Mangakakalot : ParsedHttpSource() {
override fun popularMangaFromElement(element: Element): SManga {
val manga = SManga.create()
element.select("h3 a").first().let {
manga.setUrlWithoutDomain(it.attr("href"))
manga.url = it.attr("href")
manga.title = it.text()
}
manga.thumbnail_url = element.select("img").first().attr("src")
@ -64,6 +68,10 @@ class Mangakakalot : ParsedHttpSource() {
override fun searchMangaNextPageSelector() = popularMangaNextPageSelector()
override fun mangaDetailsRequest(manga: SManga): Request {
return GET(manga.url, headers)
}
override fun mangaDetailsParse(document: Document): SManga {
val infoElement = document.select("div.manga-info-top").first()
@ -88,17 +96,57 @@ class Mangakakalot : ParsedHttpSource() {
else -> SManga.UNKNOWN
}
override fun chapterListRequest(manga: SManga): Request {
return GET(manga.url, headers)
}
override fun chapterListSelector() = "div.chapter-list div.row"
override fun chapterFromElement(element: Element): SChapter {
val urlElement = element.select("a").first()
val chapter = SChapter.create()
chapter.setUrlWithoutDomain(urlElement.attr("href"))
chapter.url = urlElement.attr("href")
chapter.name = urlElement.text()
chapter.date_upload = parseChapterDate(element.select("span").last().text())
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> {
val pages = mutableListOf<Page>()