GocTruyenTranh: Update genre & use parseAs and tryParse (#9877)

Update genre & use parseAs and tryParse
This commit is contained in:
are-are-are 2025-08-01 16:54:36 +07:00 committed by Draff
parent 2f54e79818
commit cb86a4ac6e
Signed by: Draff
GPG Key ID: E8A89F3211677653
2 changed files with 35 additions and 37 deletions

View File

@ -1,7 +1,7 @@
ext {
extName = 'Goc Truyen Tranh'
extClass = '.GocTruyenTranh'
extVersionCode = 4
extVersionCode = 5
isNsfw = true
}

View File

@ -14,8 +14,8 @@ import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.ParsedHttpSource
import keiyoushi.utils.getPreferences
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json
import keiyoushi.utils.parseAs
import keiyoushi.utils.tryParse
import okhttp3.Headers
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.OkHttpClient
@ -23,7 +23,6 @@ import okhttp3.Request
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import uy.kohesive.injekt.injectLazy
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Locale
@ -44,10 +43,8 @@ class GocTruyenTranh : ParsedHttpSource(), ConfigurableSource {
private val dateFormat = SimpleDateFormat("dd-MM-yyyy HH:mm:ss", Locale.US)
private val json: Json by injectLazy()
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
.rateLimit(1)
.rateLimit(3)
.build()
override fun headersBuilder(): Headers.Builder = super.headersBuilder()
@ -92,7 +89,7 @@ class GocTruyenTranh : ParsedHttpSource(), ConfigurableSource {
"phút trước" -> calendar.apply { add(Calendar.MINUTE, -number) }.timeInMillis
"giờ trước" -> calendar.apply { add(Calendar.HOUR, -number) }.timeInMillis
"ngày trước" -> calendar.apply { add(Calendar.DAY_OF_YEAR, -number) }.timeInMillis
else -> dateFormat.parse(date)?.time
else -> dateFormat.tryParse(date)
}
}.getOrNull() ?: 0L
@ -164,7 +161,7 @@ class GocTruyenTranh : ParsedHttpSource(), ConfigurableSource {
}
override fun searchMangaParse(response: Response): MangasPage {
val json = json.decodeFromString<SearchDTO>(response.body.string())
val json = response.parseAs<SearchDTO>()
val manga = json.comics.data.map {
SManga.create().apply {
title = it.name
@ -241,16 +238,16 @@ class GocTruyenTranh : ParsedHttpSource(), ConfigurableSource {
Genre("Adventure", "2"),
Genre("Fantasy", "3"),
Genre("Manhua", "4"),
Genre("Chuyển", "5"),
Genre("Truyện", "6"),
Genre("Xuyên", "7"),
Genre("Chuyển Sinh", "5"),
Genre("Truyện Màu", "6"),
Genre("Xuyên Không", "7"),
Genre("Manhwa", "8"),
Genre("Drama", "9"),
Genre("Historical", "10"),
Genre("Manga", "11"),
Genre("Seinen", "12"),
Genre("Comedy", "13"),
Genre("Martial", "14"),
Genre("Martial Arts", "14"),
Genre("Mystery", "15"),
Genre("Romance", "16"),
Genre("Shounen", "17"),
@ -260,53 +257,54 @@ class GocTruyenTranh : ParsedHttpSource(), ConfigurableSource {
Genre("Webtoon", "21"),
Genre("School", "22"),
Genre("Psychological", "23"),
Genre("Cổ", "24"),
Genre("Cổ Đại", "24"),
Genre("Ecchi", "25"),
Genre("Gender", "26"),
Genre("Gender Bender", "26"),
Genre("Shoujo", "27"),
Genre("Slice", "28"),
Genre("Ngôn", "29"),
Genre("Slice of Life", "28"),
Genre("Ngôn Tình", "29"),
Genre("Horror", "30"),
Genre("Sci", "31"),
Genre("Sci-fi", "31"),
Genre("Tragedy", "32"),
Genre("Mecha", "33"),
Genre("Comic", "34"),
Genre("One", "35"),
Genre("Shoujo", "36"),
Genre("One shot", "35"),
Genre("Shoujo Ai", "36"),
Genre("Anime", "37"),
Genre("Josei", "38"),
Genre("Smut", "39"),
Genre("Shounen", "40"),
Genre("Shounen Ai", "40"),
Genre("Mature", "41"),
Genre("Soft", "42"),
Genre("Soft Yuri", "42"),
Genre("Adult", "43"),
Genre("Doujinshi", "44"),
Genre("Live", "45"),
Genre("Trinh", "46"),
Genre("Việt", "47"),
Genre("Truyện", "48"),
Genre("Live action", "45"),
Genre("Trinh Thám", "46"),
Genre("Việt Nam", "47"),
Genre("Truyện Scan", "48"),
Genre("Cooking", "49"),
Genre("Tạp", "50"),
Genre("16", "51"),
Genre("Thiếu", "52"),
Genre("Soft", "53"),
Genre("Đam", "54"),
Genre("Tạp chí truyện tranh", "50"),
Genre("16+", "51"),
Genre("Thiếu Nhi", "52"),
Genre("Soft Yaoi", "53"),
Genre("Đam Mỹ", "54"),
Genre("BoyLove", "55"),
Genre("Yaoi", "56"),
Genre("18", "57"),
Genre("Người", "58"),
Genre("18+", "57"),
Genre("Người Thú", "58"),
Genre("ABO", "59"),
Genre("Mafia", "60"),
Genre("Isekai", "61"),
Genre("Hệ", "62"),
Genre("Hệ Thống", "62"),
Genre("NTR", "63"),
Genre("Yuri", "64"),
Genre("Girl", "65"),
Genre("Girl Love", "65"),
Genre("Demons", "66"),
Genre("Huyền", "67"),
Genre("Huyền Huyễn", "67"),
Genre("Detective", "68"),
Genre("Trọng", "69"),
Genre("Trọng Sinh", "69"),
Genre("Magic", "70"),
Genre("Military", "71"),
)
private val preferences: SharedPreferences = getPreferences()