TruyenQQ: update for website changes (#11135)

This commit is contained in:
Vetle Ledaal 2022-03-16 13:55:23 +00:00 committed by GitHub
parent 4a1559c44e
commit ba1915348e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 14 deletions

View File

@ -5,7 +5,7 @@ ext {
extName = 'TruyenQQ' extName = 'TruyenQQ'
pkgNameSuffix = 'vi.truyenqq' pkgNameSuffix = 'vi.truyenqq'
extClass = '.TruyenQQ' extClass = '.TruyenQQ'
extVersionCode = 5 extVersionCode = 6
} }
apply from: "$rootDir/common.gradle" apply from: "$rootDir/common.gradle"

View File

@ -22,7 +22,7 @@ class TruyenQQ : ParsedHttpSource() {
override val lang: String = "vi" override val lang: String = "vi"
override val baseUrl: String = "https://truyenqqtop.com" override val baseUrl: String = "http://truyenqqpro.com"
override val supportsLatest: Boolean = true override val supportsLatest: Boolean = true
@ -37,16 +37,20 @@ class TruyenQQ : ParsedHttpSource() {
return super.headersBuilder().add("Referer", baseUrl) return super.headersBuilder().add("Referer", baseUrl)
} }
private val dateFormat = SimpleDateFormat("dd/MM/yyyy", Locale.US)
private val floatPattern = Regex("""\d+(?:\.\d+)?""")
// Popular // Popular
override fun popularMangaRequest(page: Int): Request { override fun popularMangaRequest(page: Int): Request {
return GET("$baseUrl/top-thang/trang-$page.html", headers) return GET("$baseUrl/top-thang/trang-$page.html", headers)
} }
override fun popularMangaNextPageSelector(): String = "a.pagination-link:contains()" override fun popularMangaNextPageSelector(): String = ".page_redirect > a:last-child > p:not(.active)"
override fun popularMangaSelector(): String = "div.story-item" override fun popularMangaSelector(): String = "ul.grid > li"
override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply { override fun popularMangaFromElement(element: Element): SManga = SManga.create().apply {
setUrlWithoutDomain(element.select("a").first().attr("abs:href")) setUrlWithoutDomain(element.select("a").first().attr("abs:href"))
thumbnail_url = element.select("img.story-cover").attr("abs:src") thumbnail_url = element.select("img.lazy-image").attr("abs:data-src")
title = element.select(".title-book a").text() title = element.select("h3 a").text()
} }
// Latest // Latest
@ -72,16 +76,17 @@ class TruyenQQ : ParsedHttpSource() {
// Details // Details
override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply { override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply {
val info = document.selectFirst(".list-info")
title = document.select("h1").text() title = document.select("h1").text()
author = document.select(".info-item:eq(1)").text().substringAfter(":").trim() author = info.select(".org").joinToString { it.text() }
artist = author artist = author
val glist = document.select(".list01 li").map { it.text() } val glist = document.select(".list01 li").map { it.text() }
genre = glist.joinToString(", ") genre = glist.joinToString()
description = document.select(".story-detail-info").text() description = document.select(".story-detail-info").text()
thumbnail_url = document.select("div.left img").attr("src") thumbnail_url = document.select("img[itemprop=image]").attr("abs:src")
status = when (document.select(".info-item:eq(2)").text().substringAfter(":").trim()) { status = when (info.select(".status > p:last-child").text()) {
"Đang Cập Nhật" -> SManga.ONGOING "Đang Cập Nhật" -> SManga.ONGOING
// "" -> SManga.COMPLETED "Hoàn Thành" -> SManga.COMPLETED
else -> SManga.UNKNOWN else -> SManga.UNKNOWN
} }
} }
@ -92,11 +97,11 @@ class TruyenQQ : ParsedHttpSource() {
override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply { override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply {
setUrlWithoutDomain(element.select("a").attr("abs:href")) setUrlWithoutDomain(element.select("a").attr("abs:href"))
name = element.select("a").text().trim() name = element.select("a").text().trim()
date_upload = parseDate(element.select("div.text-right").text()) date_upload = parseDate(element.select(".time-chap").text())
chapter_number = name.substringAfter("Chương").trim().toFloat() chapter_number = floatPattern.find(name)?.value?.toFloatOrNull() ?: -1f
} }
private fun parseDate(date: String): Long { private fun parseDate(date: String): Long {
return SimpleDateFormat("dd/MM/yyyy", Locale.US).parse(date)?.time ?: 0L return dateFormat.parse(date)?.time ?: 0L
} }
// Pages // Pages