From 198c7f053f9dca9936bab3852a59080dc9462b93 Mon Sep 17 00:00:00 2001 From: beerpsi <92439990+beerpiss@users.noreply.github.com> Date: Sun, 21 Jan 2024 13:39:15 +0700 Subject: [PATCH] ManhuaRock: FMReader to individual ext (#433) * ManhuaRock: FMReader to individual ext * Add trailing newline * fix: replace hardcoded base URL --- .../multisrc/fmreader/FMReaderGenerator.kt | 1 - src/vi/manhuarock/AndroidManifest.xml | 2 + src/vi/manhuarock/build.gradle | 7 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3703 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2026 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5212 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 9685 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 14171 bytes .../extension/vi/manhuarock/ManhuaRock.kt | 249 ++++++++++++++++++ 9 files changed, 258 insertions(+), 1 deletion(-) create mode 100644 src/vi/manhuarock/AndroidManifest.xml create mode 100644 src/vi/manhuarock/build.gradle create mode 100644 src/vi/manhuarock/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/vi/manhuarock/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/vi/manhuarock/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/vi/manhuarock/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/vi/manhuarock/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/vi/manhuarock/src/eu/kanade/tachiyomi/extension/vi/manhuarock/ManhuaRock.kt diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/fmreader/FMReaderGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/fmreader/FMReaderGenerator.kt index a15d45cdc..347f86227 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/fmreader/FMReaderGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/fmreader/FMReaderGenerator.kt @@ -15,7 +15,6 @@ class FMReaderGenerator : ThemeSourceGenerator { SingleLang("Epik Manga", "https://www.epikmanga.com", "tr"), SingleLang("KissLove", "https://klz9.com", "ja", isNsfw = true, overrideVersionCode = 4), SingleLang("Manga-TR", "https://manga-tr.com", "tr", className = "MangaTR", overrideVersionCode = 3), - SingleLang("ManhuaRock", "https://manhuarock.net", "vi", overrideVersionCode = 1), SingleLang("Say Truyen", "https://saytruyenvip.com", "vi", overrideVersionCode = 3), SingleLang("WeLoveManga", "https://weloma.art", "ja", pkgName = "rawlh", isNsfw = true, overrideVersionCode = 5), SingleLang("Manga1000", "https://manga1000.top", "ja"), diff --git a/src/vi/manhuarock/AndroidManifest.xml b/src/vi/manhuarock/AndroidManifest.xml new file mode 100644 index 000000000..8072ee00d --- /dev/null +++ b/src/vi/manhuarock/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/src/vi/manhuarock/build.gradle b/src/vi/manhuarock/build.gradle new file mode 100644 index 000000000..d404f4554 --- /dev/null +++ b/src/vi/manhuarock/build.gradle @@ -0,0 +1,7 @@ +ext { + extName = "ManhuaRock" + extClass = ".ManhuaRock" + extVersionCode = 10 +} + +apply from: "$rootDir/common.gradle" diff --git a/src/vi/manhuarock/res/mipmap-hdpi/ic_launcher.png b/src/vi/manhuarock/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..902faf434ab7873bbb167e29e258b6b436874e79 GIT binary patch literal 3703 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 IM6N<$g0-yLqyPW_ literal 0 HcmV?d00001 diff --git a/src/vi/manhuarock/res/mipmap-xhdpi/ic_launcher.png b/src/vi/manhuarock/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a5b3eb677f17be4bc9f72ab859e9da7a14bec84d GIT binary patch literal 5212 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 W0?#B#>Fa#}0000J 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 GfBYZbMyYB5 literal 0 HcmV?d00001 diff --git a/src/vi/manhuarock/res/mipmap-xxxhdpi/ic_launcher.png b/src/vi/manhuarock/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..208aeca45fe9a5f329428c382b2e3b40bf043b1a GIT binary patch literal 14171 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 addQueryParameter("sort", it.values[it.state].slug) + is GenreList -> addPathSegments(it.values[it.state].slug) + else -> {} + } + } + addPathSegment(page.toString()) + } + }.build() + + return GET(url, headers) + } + + override fun searchMangaSelector() = popularMangaSelector() + + override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) + + override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() + + override fun mangaDetailsParse(document: Document) = SManga.create().apply { + title = document.selectFirst("div.post-title h1")!!.text() + author = document.selectFirst("div.author-content")?.text() + artist = document.selectFirst("div.artist-content")?.text() + description = document.selectFirst("div.dsct")?.text() + genre = document.select("div.genres-content a[rel=tag]").joinToString { it.text() } + status = when (document.selectFirst("div.summary-heading:contains(Tình Trạng) + div.summary-content")?.text()) { + // I have zero idea what the strings for Ongoing and Completed are, these are educated guesses + // All the metadata on this page is basically "Unknown". + "Đang Ra" -> SManga.ONGOING + "Hoàn Thành" -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + thumbnail_url = document.selectFirst("div.summary_image img")?.attr("abs:data-src") + } + + override fun chapterListSelector() = "ul.row-content-chapter li" + + override fun chapterFromElement(element: Element) = SChapter.create().apply { + val a = element.selectFirst("a")!! + + setUrlWithoutDomain(a.attr("abs:href")) + name = a.text() + date_upload = runCatching { + val date = element.selectFirst("span.chapter-time")!!.text() + + dateFormat.parse(date)!!.time + }.getOrDefault(0L) + } + + override fun pageListRequest(chapter: SChapter): Request { + val chapterId = chapter.url.split('/').last() + + return GET("$baseUrl/ajax/image/list/chap/$chapterId?mode=vertical&quality=high") + } + + override fun pageListParse(response: Response): List { + val chapterId = response.request.url.pathSegments.last() + + countViews(chapterId) + + val data = json.decodeFromString(response.body.string()) + + if (!data.status || data.html == null) { + throw Exception(data.msg ?: "Lỗi không xác định khi lấy trang") + } + + return pageListParse(Jsoup.parse(data.html, baseUrl)) + } + + override fun pageListParse(document: Document): List { + return document.select("img").mapIndexed { i, it -> + Page(i, imageUrl = it.attr("abs:data-src")) + } + } + + override fun imageUrlParse(document: Document) = throw UnsupportedOperationException() + + override fun getFilterList() = FilterList( + Filter.Header("Không dùng chung với tìm kiếm bằng từ khoá."), + OrderByFilter(), + GenreList(getGenreList()), + ) + + private fun countViews(chapterId: String) { + val req = POST("$baseUrl/ajax/manga/count-view/$chapterId") + + Single.fromCallable { + client.newCall(req).execute().close() + } + .subscribeOn(Schedulers.io()) + .observeOn(Schedulers.io()) + .subscribe( + {}, + { + Log.e("manhuarock", "Could not count chapter view: ${it.stackTraceToString()}") + }, + ) + } + + @Serializable + private data class AjaxImageListResponse( + val status: Boolean = false, + val msg: String? = null, + val html: String? = null, + ) + + private class Slug(val name: String, val slug: String) { + override fun toString() = name + } + + private class OrderByFilter : Filter.Select( + "Sắp xếp theo", + arrayOf( + Slug("Mới cập nhật", "latest-updated"), + Slug("Điểm", "score"), + Slug("Tên A-Z", "name-az"), + Slug("Ngày phát hành", "release-date"), + Slug("Xem nhiều", "most-viewd"), + ), + 4, + ) + + private class GenreList(slugs: Array) : Filter.Select("Thể loại", slugs) + + private fun getGenreList() = arrayOf( + Slug("Tất cả", "tat-ca-truyen"), + Slug("Hoàn thành", "hoan-thanh"), + Slug("Xuyên Không", "the-loai/xuyen-khong"), + Slug("Webtoon", "the-loai/webtoon"), + Slug("Truyện Màu", "the-loai/truyen-mau"), + Slug("Trọng Sinh", "the-loai/trong-sinh"), + Slug("Tragedy", "the-loai/tragedy"), + Slug("Supernatural", "the-loai/supernatural"), + Slug("Sports", "the-loai/sports"), + Slug("Slice Of Life", "the-loai/slice-of-life"), + Slug("Shounen", "the-loai/shounen"), + Slug("Shoujo", "the-loai/shoujo"), + Slug("Sci-Fi", "the-loai/sci-fi"), + Slug("School Life", "the-loai/school-life"), + Slug("Romance", "the-loai/romance"), + Slug("Psychological", "the-loai/psychological"), + Slug("Ngôn Tình", "the-loai/ngon-tinh"), + Slug("Mystery", "the-loai/mystery"), + Slug("Mature", "the-loai/mature"), + Slug("Martial Arts", "the-loai/martial-arts"), + Slug("Manhwa", "the-loai/manhwa"), + Slug("Manhua", "the-loai/manhua"), + Slug("Josei", "the-loai/josei"), + Slug("Isekai", "the-loai/isekai"), + Slug("Huyền Huyễn", "the-loai/huyen-huyen"), + Slug("Horror", "the-loai/horror"), + Slug("Historical", "the-loai/historical"), + Slug("Harem", "the-loai/harem"), + Slug("Gender Bender", "the-loai/gender-bender"), + Slug("Fantasy", "the-loai/fantasy"), + Slug("Ecchi", "the-loai/ecchi"), + Slug("Drama", "the-loai/drama"), + Slug("Detective", "the-loai/detective"), + Slug("Demons", "the-loai/demons"), + Slug("Comedy", "the-loai/comedy"), + Slug("Cổ Đại", "the-loai/co-dai"), + Slug("Chuyển Sinh", "the-loai/chuyen-sinh"), + Slug("Anime", "the-loai/anime"), + Slug("Adventure", "the-loai/adventure"), + Slug("Adult", "the-loai/adult"), + Slug("Action", "the-loai/action"), + ) +}