diff --git a/src/vi/goctruyentranhvui/build.gradle b/src/vi/goctruyentranhvui/build.gradle new file mode 100644 index 000000000..02b4ed9eb --- /dev/null +++ b/src/vi/goctruyentranhvui/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = 'Goc Truyen Tranh Vui' + extClass = '.GocTruyenTranhVui' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/vi/goctruyentranhvui/res/mipmap-hdpi/ic_launcher.png b/src/vi/goctruyentranhvui/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..fb02ea5dc Binary files /dev/null and b/src/vi/goctruyentranhvui/res/mipmap-hdpi/ic_launcher.png differ diff --git a/src/vi/goctruyentranhvui/res/mipmap-mdpi/ic_launcher.png b/src/vi/goctruyentranhvui/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..1571191fd Binary files /dev/null and b/src/vi/goctruyentranhvui/res/mipmap-mdpi/ic_launcher.png differ diff --git a/src/vi/goctruyentranhvui/res/mipmap-xhdpi/ic_launcher.png b/src/vi/goctruyentranhvui/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..5e62dbab1 Binary files /dev/null and b/src/vi/goctruyentranhvui/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/src/vi/goctruyentranhvui/res/mipmap-xxhdpi/ic_launcher.png b/src/vi/goctruyentranhvui/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..2677482d7 Binary files /dev/null and b/src/vi/goctruyentranhvui/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/src/vi/goctruyentranhvui/res/mipmap-xxxhdpi/ic_launcher.png b/src/vi/goctruyentranhvui/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..54ee68c98 Binary files /dev/null and b/src/vi/goctruyentranhvui/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/src/vi/goctruyentranhvui/src/eu/kanade/tachiyomi/extension/vi/goctruyentranhvui/Dto.kt b/src/vi/goctruyentranhvui/src/eu/kanade/tachiyomi/extension/vi/goctruyentranhvui/Dto.kt new file mode 100644 index 000000000..fb819578f --- /dev/null +++ b/src/vi/goctruyentranhvui/src/eu/kanade/tachiyomi/extension/vi/goctruyentranhvui/Dto.kt @@ -0,0 +1,70 @@ +package eu.kanade.tachiyomi.extension.vi.goctruyentranhvui + +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import kotlinx.serialization.Serializable + +@Serializable +class ResultDto( + val result: T, +) + +@Serializable +class ChapterDto( + private val numberChapter: String, + private val updateTime: Long, +) { + fun toSChapter(slug: String): SChapter = SChapter.create().apply { + name = numberChapter + date_upload = updateTime + url = "/truyen/$slug/chuong-$numberChapter" + } +} + +@Serializable +class ChapterListDto( + val chapters: List, +) + +@Serializable +class ListingDto( + val next: Boolean, + val data: List, +) + +@Serializable +class MangaDto( + private val id: String, + private val name: String, + private val description: String, + private val statusCode: String, + private val photo: String, + private val nameEn: String, + private val author: String, + private val category: List? = null, +) { + fun toSManga(baseUrl: String): SManga = SManga.create().apply { + title = name + thumbnail_url = baseUrl + photo + url = "$id:$nameEn" + author = this@MangaDto.author + description = this@MangaDto.description + genre = category?.joinToString() + status = when (statusCode) { + "PRG" -> SManga.ONGOING + "END" -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + initialized = true + } +} + +@Serializable +class ImageListWrapper( + val body: ResultDto, +) + +@Serializable +class ImageListDto( + val data: List, +) diff --git a/src/vi/goctruyentranhvui/src/eu/kanade/tachiyomi/extension/vi/goctruyentranhvui/Filters.kt b/src/vi/goctruyentranhvui/src/eu/kanade/tachiyomi/extension/vi/goctruyentranhvui/Filters.kt new file mode 100644 index 000000000..d6cda67a1 --- /dev/null +++ b/src/vi/goctruyentranhvui/src/eu/kanade/tachiyomi/extension/vi/goctruyentranhvui/Filters.kt @@ -0,0 +1,74 @@ +package eu.kanade.tachiyomi.extension.vi.goctruyentranhvui + +import eu.kanade.tachiyomi.source.model.Filter + +class Option(name: String, val id: String) : Filter.CheckBox(name) +open class FilterGroup(name: String, val query: String, state: List