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'
 | 
			
		||||
    pkgNameSuffix = 'en.mangakakalot'
 | 
			
		||||
    extClass = '.Mangakakalot'
 | 
			
		||||
    extVersionCode = 4
 | 
			
		||||
    extVersionCode = 5
 | 
			
		||||
    libVersion = '1.2'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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>()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user