From 42ad2a585950d95339548bab69af67180eda10f1 Mon Sep 17 00:00:00 2001 From: beerpsi <92439990+beerpiss@users.noreply.github.com> Date: Sat, 17 Feb 2024 15:52:51 +0700 Subject: [PATCH] Add Comic Meteor (#1320) --- src/ja/comicmeteor/build.gradle | 11 ++ .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2995 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1545 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3863 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7261 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10279 bytes .../extension/ja/comicmeteor/ComicMeteor.kt | 153 ++++++++++++++++++ 7 files changed, 164 insertions(+) create mode 100644 src/ja/comicmeteor/build.gradle create mode 100644 src/ja/comicmeteor/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/ja/comicmeteor/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/ja/comicmeteor/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/ja/comicmeteor/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/ja/comicmeteor/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/ja/comicmeteor/src/eu/kanade/tachiyomi/extension/ja/comicmeteor/ComicMeteor.kt diff --git a/src/ja/comicmeteor/build.gradle b/src/ja/comicmeteor/build.gradle new file mode 100644 index 000000000..6264d98db --- /dev/null +++ b/src/ja/comicmeteor/build.gradle @@ -0,0 +1,11 @@ +ext { + extName = "Comic Meteor" + extClass = ".ComicMeteor" + extVersionCode = 1 +} + +apply from: "$rootDir/common.gradle" + +dependencies { + implementation(project(":lib:speedbinb")) +} diff --git a/src/ja/comicmeteor/res/mipmap-hdpi/ic_launcher.png b/src/ja/comicmeteor/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..185966c0ab8868634de57f637f81482929de7fcc GIT binary patch literal 2995 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 literal 0 HcmV?d00001 diff --git a/src/ja/comicmeteor/res/mipmap-xxxhdpi/ic_launcher.png b/src/ja/comicmeteor/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..349bf7bd289df87421c1d3eefafdbd22b3312631 GIT binary patch literal 10279 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 literal 0 HcmV?d00001 diff --git a/src/ja/comicmeteor/src/eu/kanade/tachiyomi/extension/ja/comicmeteor/ComicMeteor.kt b/src/ja/comicmeteor/src/eu/kanade/tachiyomi/extension/ja/comicmeteor/ComicMeteor.kt new file mode 100644 index 000000000..77474db8b --- /dev/null +++ b/src/ja/comicmeteor/src/eu/kanade/tachiyomi/extension/ja/comicmeteor/ComicMeteor.kt @@ -0,0 +1,153 @@ +package eu.kanade.tachiyomi.extension.ja.comicmeteor + +import eu.kanade.tachiyomi.lib.speedbinb.SpeedBinbInterceptor +import eu.kanade.tachiyomi.lib.speedbinb.SpeedBinbReader +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.asObservableSuccess +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.MangasPage +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.source.online.ParsedHttpSource +import eu.kanade.tachiyomi.util.asJsoup +import kotlinx.serialization.json.Json +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import okhttp3.Response +import org.jsoup.Jsoup +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import rx.Observable +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get + +class ComicMeteor : ParsedHttpSource() { + + override val name = "COMICメテオ" + + override val baseUrl = "https://comic-meteor.jp" + + override val lang = "ja" + + override val supportsLatest = false + + private val json = Injekt.get() + + override val client = network.client.newBuilder() + .addInterceptor(SpeedBinbInterceptor(json)) + .apply { + val interceptors = interceptors() + val index = interceptors.indexOfFirst { "Brotli" in it.javaClass.simpleName } + if (index >= 0) { + interceptors.add(interceptors.removeAt(index)) + } + } + .build() + + override fun headersBuilder() = super.headersBuilder() + .add("Referer", "$baseUrl/") + + override fun popularMangaRequest(page: Int) = GET( + "$baseUrl/wp-admin/admin-ajax.php?action=get_flex_titles_for_toppage&page=$page&get_num=16", + headers, + ) + + override fun popularMangaParse(response: Response): MangasPage { + val document = Jsoup.parseBodyFragment(response.body.string(), baseUrl) + val manga = document.select(popularMangaSelector()).map { popularMangaFromElement(it) } + val hasNextPage = manga.size == 16 + + return MangasPage(manga, hasNextPage) + } + + override fun popularMangaSelector() = ".update_work_size .update_work_info_img a" + + override fun popularMangaFromElement(element: Element) = SManga.create().apply { + setUrlWithoutDomain(element.attr("href")) + element.selectFirst("img")!!.let { + title = it.attr("alt") + thumbnail_url = it.absUrl("src") + } + } + + override fun popularMangaNextPageSelector() = throw UnsupportedOperationException() + + override fun latestUpdatesRequest(page: Int) = throw UnsupportedOperationException() + + override fun latestUpdatesSelector() = throw UnsupportedOperationException() + + override fun latestUpdatesFromElement(element: Element) = throw UnsupportedOperationException() + + override fun latestUpdatesNextPageSelector() = throw UnsupportedOperationException() + + private lateinit var directory: List + + override fun fetchSearchManga( + page: Int, + query: String, + filters: FilterList, + ): Observable { + return if (page == 1) { + client.newCall(searchMangaRequest(page, query, filters)) + .asObservableSuccess() + .map { searchMangaParse(it) } + } else { + Observable.just(parseDirectory(page)) + } + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = baseUrl.toHttpUrl().newBuilder() + .addPathSegment("comicsearch") + .addPathSegment("") + .addQueryParameter("search", query) + .build() + + return GET(url, headers) + } + + override fun searchMangaParse(response: Response): MangasPage { + val document = response.asJsoup() + + directory = document.select(searchMangaSelector()) + return parseDirectory(1) + } + + private fun parseDirectory(page: Int): MangasPage { + val endRange = minOf(page * 24, directory.size) + val manga = directory.subList((page - 1) * 24, endRange).map { searchMangaFromElement(it) } + val hasNextPage = endRange < directory.lastIndex + + return MangasPage(manga, hasNextPage) + } + + override fun searchMangaSelector() = ".read_comic_size .read_comic_info_img a" + + override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) + + override fun searchMangaNextPageSelector() = throw UnsupportedOperationException() + + override fun mangaDetailsParse(document: Document) = SManga.create().apply { + title = document.selectFirst("h2.h2ttl")!!.text() + author = document.selectFirst(".work_author_intro_name") + ?.text() + ?.substringAfter("著者 :") + description = document.selectFirst(".work_story_txt")?.text() + genre = document.select(".category_link_box a").joinToString { it.text() } + thumbnail_url = document.selectFirst(".latest_info_img img")?.absUrl("src") + } + + override fun chapterListSelector() = ".work_episode_box .work_episode_table:has(.work_episode_link_orange)" + + override fun chapterFromElement(element: Element) = SChapter.create().apply { + setUrlWithoutDomain(element.selectFirst("a")!!.attr("href")) + name = element.selectFirst(".work_episode_txt")!!.ownText() + } + + private val reader by lazy { SpeedBinbReader(client, headers, json) } + + override fun pageListParse(document: Document) = + reader.pageListParse(document) + + override fun imageUrlParse(document: Document) = throw UnsupportedOperationException() +}