refactor(StarboundScans): migrate to Madara theme after site UI update (#10382)
This commit is contained in:
parent
96f2aa0344
commit
076f114469
@ -1,7 +1,7 @@
|
|||||||
ext {
|
ext {
|
||||||
extName = 'Starbound Scans'
|
extName = 'Starbound Scans'
|
||||||
extClass = '.StarboundScans'
|
extClass = '.StarboundScans'
|
||||||
themePkg = 'keyoapp'
|
themePkg = 'madara'
|
||||||
baseUrl = 'https://starboundscans.com'
|
baseUrl = 'https://starboundscans.com'
|
||||||
overrideVersionCode = 0
|
overrideVersionCode = 0
|
||||||
isNsfw = false
|
isNsfw = false
|
||||||
|
@ -1,7 +1,72 @@
|
|||||||
package eu.kanade.tachiyomi.extension.fr.starboundscans
|
package eu.kanade.tachiyomi.extension.fr.starboundscans
|
||||||
|
|
||||||
import eu.kanade.tachiyomi.multisrc.keyoapp.Keyoapp
|
import eu.kanade.tachiyomi.multisrc.madara.Madara
|
||||||
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
|
import eu.kanade.tachiyomi.source.model.SChapter
|
||||||
|
import eu.kanade.tachiyomi.util.asJsoup
|
||||||
|
import keiyoushi.utils.tryParse
|
||||||
|
import okhttp3.Headers
|
||||||
|
import okhttp3.Response
|
||||||
|
import org.jsoup.nodes.Document
|
||||||
|
import java.text.SimpleDateFormat
|
||||||
|
import java.util.Locale
|
||||||
|
|
||||||
class StarboundScans : Keyoapp("Starbound Scans", "https://starboundscans.com", "fr") {
|
class StarboundScans : Madara(
|
||||||
override val dateSelector = "[class='text-xs text-white/50 w-fit']"
|
"Starbound Scans",
|
||||||
|
"https://starboundscans.com",
|
||||||
|
"fr",
|
||||||
|
dateFormat = SimpleDateFormat("d MMMM yyyy", Locale.FRENCH),
|
||||||
|
) {
|
||||||
|
override val useNewChapterEndpoint = true
|
||||||
|
override val useLoadMoreRequest = LoadMoreStrategy.Never
|
||||||
|
override val versionId = 2
|
||||||
|
|
||||||
|
override val client = network.cloudflareClient
|
||||||
|
|
||||||
|
override fun headersBuilder(): Headers.Builder = super.headersBuilder()
|
||||||
|
.add("Referer", "$baseUrl/")
|
||||||
|
|
||||||
|
override val mangaDetailsSelectorTitle = "h1"
|
||||||
|
override val mangaDetailsSelectorThumbnail = ".project-cover"
|
||||||
|
override val mangaDetailsSelectorDescription = ".card-body .black-orion-article-content p"
|
||||||
|
override val mangaDetailsSelectorStatus = ".info-item:contains(Statut) .info-value"
|
||||||
|
override val mangaDetailsSelectorAuthor = ".info-item:contains(Auteur) a"
|
||||||
|
override val mangaDetailsSelectorArtist = ".info-item:contains(Auteur) a"
|
||||||
|
override val mangaDetailsSelectorGenre = ".info-item:contains(Genres) .genre-tag"
|
||||||
|
|
||||||
|
private val customDateFormat = SimpleDateFormat("d MMMM yyyy", Locale.FRENCH)
|
||||||
|
|
||||||
|
override fun chapterListParse(response: Response): List<SChapter> {
|
||||||
|
val document = response.asJsoup()
|
||||||
|
return document.select(".chapter-item").mapNotNull { element ->
|
||||||
|
val link = element.selectFirst("a.chapter-link")!!
|
||||||
|
val href = link.attr("abs:href")
|
||||||
|
|
||||||
|
if (href == "#" || href.isEmpty() || element.text().contains("VIP") || element.text().contains("Réservé")) {
|
||||||
|
return@mapNotNull null
|
||||||
|
}
|
||||||
|
|
||||||
|
SChapter.create().apply {
|
||||||
|
val urlWithSuffix = if (href.contains("?")) {
|
||||||
|
"$href&style=list"
|
||||||
|
} else {
|
||||||
|
"$href?style=list"
|
||||||
|
}
|
||||||
|
setUrlWithoutDomain(urlWithSuffix)
|
||||||
|
|
||||||
|
val rawName = link.selectFirst("h3")!!.text()
|
||||||
|
name = rawName.replace("NEW", "").trim()
|
||||||
|
|
||||||
|
val dateText = element.selectFirst(".chapter-meta")!!.text()
|
||||||
|
date_upload = customDateFormat.tryParse(dateText)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun pageListParse(document: Document): List<Page> {
|
||||||
|
return document.select("img.wp-manga-chapter-img").mapIndexed { index, element ->
|
||||||
|
val imageUrl = element.attr("abs:src")
|
||||||
|
Page(index, url = document.location(), imageUrl = imageUrl)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user