From 49a970fde83dedabc81a9739ba4f4d94b6aae271 Mon Sep 17 00:00:00 2001 From: manti <133025162+manti-X@users.noreply.github.com> Date: Wed, 15 Oct 2025 14:47:09 +0200 Subject: [PATCH] ComicMeteor/Kiraboshi: redesign (#11084) fix and rename to kiraboshi --- src/ja/comicmeteor/build.gradle | 6 +- .../res/mipmap-hdpi/ic_launcher.png | Bin 2995 -> 4312 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 1545 -> 2367 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 3863 -> 5917 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 7261 -> 10765 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 10279 -> 17531 bytes .../extension/ja/comicmeteor/ComicMeteor.kt | 252 +++++++++++------- .../tachiyomi/extension/ja/comicmeteor/Dto.kt | 15 ++ 8 files changed, 176 insertions(+), 97 deletions(-) create mode 100644 src/ja/comicmeteor/src/eu/kanade/tachiyomi/extension/ja/comicmeteor/Dto.kt diff --git a/src/ja/comicmeteor/build.gradle b/src/ja/comicmeteor/build.gradle index 4512f2a5e..b660e0234 100644 --- a/src/ja/comicmeteor/build.gradle +++ b/src/ja/comicmeteor/build.gradle @@ -1,8 +1,8 @@ ext { - extName = "Comic Meteor" + extName = "Kiraboshi" extClass = ".ComicMeteor" - extVersionCode = 2 - isNsfw = false + extVersionCode = 3 + isNsfw = true } apply from: "$rootDir/common.gradle" diff --git a/src/ja/comicmeteor/res/mipmap-hdpi/ic_launcher.png b/src/ja/comicmeteor/res/mipmap-hdpi/ic_launcher.png index 185966c0ab8868634de57f637f81482929de7fcc..e427a07092d9462e40a8ae79d87205ea07c90c1e 100644 GIT binary patch literal 4312 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

Pa33u? zs(;_5OBae3Zr%z!54B-7+OlPfr#5^sWCCjDPUQ6I(^gD_fPzvt->g|P>C~wcB8zU_ zx=Eu(jV!PFUTQ1Ny)A6Ms-=c+fY1)A#S+BeK&X(_@PkEu>$+e!_>% z@M0F(xN)NtFJ3$#QH)BKEGb*JZncZv?%lhEX?WnkfzrBlYdc%z&z~PPyRN)_`_}T2 zJbV+-pmCtdq@<)!ltP6H3EP3|*RRWwBS&QI+O>AW#yGE3sgl*f#_aH zF=J%?`t@@B_;I;?`?k>YWy+L6MZSLhYH1`7-vqQV9B3d+hsbfx7zgy=vSrJJar@@Y z8~OhIyX|?k!5(0zGIUCb+Y15>0=gv~SdUdH^zrL(lvwtS&Bg7wpFJHb~*pc!U*tt%gJXsh{Nl8ia@#9CD zvBOi}gcaoS@J&F2#+JsRtgO|lRfDxa2iSsnFa`3Fj~_o?5)u;Zn=oSgr*7oPkuq`O zL_tUG{3ywlE?wH%Me^`XK!e7CHiC>{Lm5y9;DMWGY@a)K4w1##vuA~~fqyMzJ=``~ zB1@VyX(CZkQI?P7;hTWlkiaR^VBfxdv!_AIfI8sj>2XeA$N|HIdO%qzyh3FI1`JS9 zL^Rg~)G>)Le%rKZ6EHle2iltQjBAzMym>R*M(e3lUMb&D+qP|~iWs>jK;U?z5%^iN zX4wsz%AkOH01xinyJu%5K7U?43%l!;SBh`W1}uiyM~Yk%a5sR{diCnbq)C&qdlZ@K zC{OvrhY!N3>*dRr0*{P(puAFKqehLAcJ121<_WnbK+oXO-54_sTLxr+df?{ic@kg; z`|aB|sx4GUDZ-8&JKB>Od|nYY0e2&s2o138uUofHxM`q_9)JhR-+#Jw%f1C5o)ItF+rv!V|lK3v#KjT<*E zds>#C{Dn<`0M##zD}S$Ym6a`9*6uEuc@7^wY>$Qv4W?Yc^$Dx+p+kq{(W6JgTjQ*( z{{9FJnE=57b*@2ER=Hb-oV`-}_U&cn%$fE~z)thTi4%4haZ|@3r)bflsQzgPnE=7j zn>%*w5N_Yt=Py~ZME368Yq!DNcTz{N3UZzn$*WhdgoFBv7cb=b z^XI|=g&t-bOj2xxxo$ai>Xh(N5;$jtO`A3eYXQ@0sZynEBHOobmtn((3ESo;PoCJF zEFH#pqDOPvI`O8oY|&axpGpoW=(tNNpg(o^5x6hgAV)q z#*G`x=g*%dHa1oU4H{(k`vlGki|vdVGi1n+A@(AR6CS~;U-al0h9NwOZ`-zwP(s4@ z4bc1a2nUw2W5?PcxV&Yj$XzEJF7`#-Ytrk~kt_=wi+>WsiXP@-m(y3TUcGFBEPnJb zcSf8An7NR(Y}wMDDL9_;@fRyr%(lr0=-LQhy>l|Xr@ap>|kZzX$|G5=I1rSP(ZKTPe8ws*v%Gr}-8F>>R!&GyRGxN%oD~aYN z;w#5Tj(>YlFZ|?IX09Ij4!rt5QznLM*RCZJlZiRifEW$Q{Cg8Xns)c@-B%47G)OQX zR|B);$C2IIF?*IS*|NpgTNTC1#00v1! bK~w_(7@E+mjS~ap00000NkvXXu0mjf(lL_% delta 1528 zcmV-3ZHLyjZQHhO+xFPDnfHD+ zq8Alii`t$;M&z`V`Sf4SXaD1W{0~ihA^cMKwS)PUS&M!wS+eA(`1tsFsi~fjT-IL{U1o9P}-=` zj)A{))TQP2ee3$YURT=m8?Y~&w;u!BHf}&dLIP~?(G5_n{>R!lxOWd~mM@FWty>~E zCLfNyRWy5-ijg5gq z`({nVKw*BLL4O&bU|qC*@8t{UQLacq6v&ndM-Lw0bHn=gMgA-qFm~7wJ`M>ELXn)= zQMOP4q@<)+K5JMBY0~yR&z?TP=%IsAC`VR`FOW48rcWG?H7k~(V7AQ2mpLN}%WLCD z3`4WJwUH-dI<#z1&-VL_&w#?~j~_j_j}9%GqhR(dB7ZcCh|f%l0Y!;?Mny4@0r@gz zK;BI0&CGz~(gzwaYzmPU96fXp#q#7-;)R)C6ECEAi-GitETx7us^a+JLm-SbppARC zZ=E4Cs&Os3<60I)4t45fQJKqR|HUBW%1D z4eDAWK7Vn{C@6S)dWv{4kToOb&zxZ`vAmgCI#@h+4nIF@%4C$029`C!$SI_aySHzt zvZ44I<;x&4l97a$$$&(@GU8%mq44|bJnMcH{F}ru?4m;!7;0#P2JDO`iP+%au zJUmb`e;yi$kfw|jzI^^%HL;C>^dg=au!wi8fsJccUtQcmrf zHGgK=_=thW4<1-cr+m@EEH{T4Fn>8~TjB8jec+7Gl7Sg8ZB%Ja4WNFSVZyZZ0l*R&?VtU@=g; zQhACOnxoEUwN4#I-aK`-ZQ7`{lGyT-Wq*LT-d>()DvKG#TMbaWg*-2|Y*?=;()`!} z13E8e$%uX96eGFy=SkBHqOB98#j1`B_`B~%9Ucw zu)&x!Z3+?-6OkbM&(5t|C}_4kH)_a0OqNa6M-0rEG!Z9{9Tn5Fut|)n9ja%yE(i+? zHTIg=_BJsgfhTQLWF+F^;$(FQ=YKjOv|QU-woq=UfdK)en3MPLJ|e=y)qD8f*q9i8 z-zUfbO)y&L&z#2j)2HF)>Vil2@AJMqM`6A`K5SlBXJ@|u%Eb$CcXQ>WI(PaM&Pmi| zwcx2O86eFUH5M9c;Fhe(cW&KOhZv){e$@(uhK8^o?#cA&-nFyT_XaGNx_?(#y=g!{b!+iZqAy~3U#`9w^}Dxj@gGp7A{;km(nJ*2Ri&wm|mDiSkS@DE6hMm=JL^N;%nje{GdZg4PR5! e|M(vtAAbW~OI)i$v`8rc00006s-$g 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 literal 3863 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 diff --git a/src/ja/comicmeteor/res/mipmap-xxxhdpi/ic_launcher.png b/src/ja/comicmeteor/res/mipmap-xxxhdpi/ic_launcher.png index 349bf7bd289df87421c1d3eefafdbd22b3312631..f05f0ac1b325421c1c683a9ae2eebdaf3907dbd1 100644 GIT binary patch literal 17531 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

4l8tB zKRwNMO8KY`E+n+{v#{sDrVS#>n4Mc)0cb*>HP+Wa$Hu~OH#5;c7;zP^ku zf{S6HGPM~pcTr8LNHxi}0461MqQ1Dc@4tg!cN4hCpAzgyFsWbaxA28{@D+UzBTh-I z$$KPUK*T9ecj1G649-thdj}@{lm2m^Tb-i1u@(P1Gsk1X3^aW*~ zCr)_G`BKYvFooqT83Dkl=&*8fdsfuePZc7j^SAmLEM1PwVS@JVtJWrSTpZYwdjL4q z>0-0%eDyBD1*jkX3$pDNjXt(%S|EPZAGIy{!$C9Ugm{{i`wgd^7psv6D3g&7y#U;s zX&$E9$g_a2^qHe~+U$IZQ-C6k+K>%^shiXuIRXH>f)mw6v!+KB)>)#QcKE!v(Xdm~ z-QUqtZcZX>Zsn81VbZv4alM=rGW1uk!vhPtKdeQ33>X@qKw!q*UDvezdPdjLRd4E9 z{??7HjOPn!1}m2yVQlZ+k~=HFIo&Di+GGuUbwNqy_tR^-|Gn*~hNt^iMd>qD9nh*g z`_gVQp7G5Hql@JQe!e^|gsF6+CJVBveh68C%{IwL+6myU7$J4!{8fdT4uQa}9d$dx z*Z9-Dnr>TY=mod?`{c`a+k0j9SRX1Ow0fqjt}aEdfQH73s>=CsiH9vP!89RGXkBm0XJ-wUb4$ zt6y+07{0}yRJwjQ0LJ|$l)KxaJU@#obo1w=4ZQs;>2^-*`YZtNeNm`RW?UVxD+Q*K zp2|pW$Z(VsC!F)?TXO!1TT$GUnN(80WZ@$tv3#&zQ1UxNv}RPpS2PrTF&1Ng0O$<+J9JVKb-i9cgnkrS@s|_j zTwd(g7QCj@CoKb>hNkzq&?%gXsrj?!i);;*$0Pq}T;-Sh$EKq`Sza95JGdt2>I0i5 zA?R-t^=pyEF7f${LWoMsntrmPvL<_ib0)G8>WY8tWf{I!CRWhx%Cin)D%tFn7)Hh` zYTs=DrdkP@Dy@bxp{7Q*Cb-~^kGa;|?M5aN#8nNcz+QoeJ>?Fj^dytZT0JAu+P09NTJBhfs``hqdGqZmO!~WL_!7I zV24G-)buf&usKi6zs#mxLnB*eV2q+5hKhjWA1zPN`a-PVd}HBxI_Wf#702|as!Y-V zADVh4=NcHRr>19yq-y`5>c3yKhW;Qf(gt^{*tgzg0nJufQ;zkWs~Z zl2E!umhrsu2RpM49S4Axo5TP8rZG;>G6fn?8DGIr@S1RXvb%(dNg8QmKBe`r#3dj; zD9gi>_9WMSaOQOSh7;GdRscV>hn#>6EbqdRR!q|?2lMEO!54kXmJTa zZ=qh@Tfv$!=rF=F$P7MBHZ5D%=ra=~Id*fJ%32%B+JF;0gQi#8zmLv3)dEeja8#Ga zq;i#5;a_+mr)Q-AF>=JeGox|7L7b!dzn{|ivaU(g;oo`T1)bQ{@S(!L6r;eDV=vA* zZ4P*a#-c>sHk7?FoU3HyrdBDHN4Lnp^_w@+=G@Qa+XuEQF*xAOAvoM4LS!&-K!ksH c2*C~gbEz&a%_p3|CpTWosk|t9Zv5f@0WfyrLI3~& literal 10279 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 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 index 89ef2c5e8..37a846d33 100644 --- 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 @@ -3,35 +3,40 @@ 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.Filter import eu.kanade.tachiyomi.source.model.FilterList import eu.kanade.tachiyomi.source.model.MangasPage +import eu.kanade.tachiyomi.source.model.Page 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.source.online.HttpSource import eu.kanade.tachiyomi.util.asJsoup +import keiyoushi.utils.firstInstanceOrNull +import keiyoushi.utils.parseAs +import keiyoushi.utils.tryParse 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 +import java.text.SimpleDateFormat +import java.util.Locale -class ComicMeteor : ParsedHttpSource() { - - override val name = "COMICメテオ" - - override val baseUrl = "https://comic-meteor.jp" +class ComicMeteor : HttpSource() { + override val name = "Kiraboshi" + override val baseUrl = "https://kirapo.jp" override val lang = "ja" - override val supportsLatest = false + override val versionId = 2 + private val apiUrl = "https://kirapo.jp/api" private val json = Injekt.get() + private val dateFormat = SimpleDateFormat("yyyy年MM月dd日", Locale.JAPAN) + + private var readAtTimestamp: String? = null + private var allFiltersList: List = emptyList() override val client = network.cloudflareClient.newBuilder() .addInterceptor(SpeedBinbInterceptor(json)) @@ -47,107 +52,166 @@ class ComicMeteor : ParsedHttpSource() { 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 popularMangaRequest(page: Int): Request { + return searchMangaRequest(page, "", FilterList()) + } 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)) - } + return searchMangaParse(response) } 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) + if (query.isNotEmpty()) { + val url = "$baseUrl/search".toHttpUrl().newBuilder() + .addQueryParameter("word", query) + .build() + return GET(url, headers) + } + val filterSelect = filters.firstInstanceOrNull() + if (filterSelect != null && filterSelect.state != 0 && allFiltersList.isNotEmpty()) { + val selection = allFiltersList[filterSelect.state] + val urlBuilder = "$baseUrl/titles".toHttpUrl().newBuilder() + .addQueryParameter(selection.key, selection.value) + return GET(urlBuilder.build(), headers) + } + return GET("$baseUrl/titles", headers) } override fun searchMangaParse(response: Response): MangasPage { + if (response.request.url.toString().contains("/search")) { + val document = response.asJsoup() + val mangas = document.select(".content-container .grid-group .w-auto a").map { link -> + SManga.create().apply { + setUrlWithoutDomain(link.attr("href")) + val img = link.selectFirst("img")!! + title = img.attr("alt") + thumbnail_url = img.attr("abs:src") + } + } + return MangasPage(mangas, false) + } val document = response.asJsoup() - directory = document.select(searchMangaSelector()) - return parseDirectory(1) + if (allFiltersList.isEmpty()) { + readAtTimestamp = document.selectFirst("#more_titles_button")?.attr("data-read-at") + + val filters = mutableListOf() + filters.add(FilterOption("All", "none", "none")) + + document.select("h3:contains(レーベルから選ぶ)").firstOrNull() + ?.nextElementSibling()?.select("a")?.forEach { + filters.add(FilterOption(it.text(), "label", it.attr("href").substringAfter("="))) + } + + document.select("h3:contains(ジャンルから選ぶ)").firstOrNull() + ?.nextElementSibling()?.select("a")?.forEach { + filters.add(FilterOption(it.text(), "genre", it.attr("href").substringAfter("="))) + } + + document.select("h3:contains(カテゴリから選ぶ)").firstOrNull() + ?.nextElementSibling()?.select("a")?.forEach { + filters.add(FilterOption(it.text(), "category", it.attr("href").substringAfter("="))) + } + allFiltersList = filters + } + + val mangaList = document.select("#titles-container a, .content-container .grid-group .w-auto a").map { link -> + SManga.create().apply { + setUrlWithoutDomain(link.attr("href")) + val img = link.selectFirst("img")!! + title = img.attr("alt") + thumbnail_url = img.attr("abs:src") + } + } + + val readAtTimestamp = document.selectFirst("#more_titles_button")?.attr("data-read-at") + if (readAtTimestamp != null) { + val apiUrlBuilder = "$apiUrl/title-list".toHttpUrl().newBuilder() + .addQueryParameter("read_at", readAtTimestamp) + + response.request.url.queryParameterNames.forEach { param -> + if (param != "read_at") { + response.request.url.queryParameter(param)?.let { value -> + apiUrlBuilder.addQueryParameter(param, value) + } + } + } + val apiRequest = GET(apiUrlBuilder.build(), headers) + val apiResponse = client.newCall(apiRequest).execute() + val apiResult = apiResponse.parseAs() + + val apiMangas = apiResult.data.map { apiTitle -> + SManga.create().apply { + title = apiTitle.name + setUrlWithoutDomain(apiTitle.url) + thumbnail_url = apiTitle.thumbnail + } + } + return MangasPage(mangaList + apiMangas, false) + } + return MangasPage(mangaList, false) } - 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 mangaDetailsParse(response: Response): SManga { + val document = response.asJsoup() + return SManga.create().apply { + title = document.selectFirst("main h2")!!.text() + thumbnail_url = thumbnail_url + author = document.select("a[href*=/authors/]").joinToString(", ") { it.text() } + description = document.selectFirst("#plot + div")?.text() + genre = document.select("div.pt-5 a.button-gray").joinToString(", ") { it.text() } + } } - override fun searchMangaSelector() = ".read_comic_size .read_comic_info_img a" + override fun chapterListParse(response: Response): List { + val document = response.asJsoup() + val chapters = document.select(".episodes-container .episode-item") + .filterNot { it.text().contains("未公開話") } + .mapNotNull { item -> + item.selectFirst("a")?.let { link -> + SChapter.create().apply { + setUrlWithoutDomain(link.attr("href")) + name = item.selectFirst(".episode-item-left")!!.text().trim() + } + } + } - override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) + if (chapters.isNotEmpty()) { + return chapters + } - 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() + document.selectFirst(".header-side a.episode-read")?.let { oneshotLink -> + val chapter = SChapter.create().apply { + setUrlWithoutDomain(oneshotLink.attr("href")) + name = document.selectFirst(".latest-episode-title")?.text()?.trim()!! + val dateStr = document.selectFirst(".last-update")?.text()?.substringBefore("更新") + date_upload = dateFormat.tryParse(dateStr) + } + return listOf(chapter) + } + return emptyList() } private val reader by lazy { SpeedBinbReader(client, headers, json) } - override fun pageListParse(document: Document) = - reader.pageListParse(document) + override fun pageListParse(response: Response): List { + return reader.pageListParse(response) + } - override fun imageUrlParse(document: Document) = throw UnsupportedOperationException() + private class FilterOption(val name: String, val key: String, val value: String) + private class AllFilter(options: Array) : Filter.Select("Filter by", options) + + override fun getFilterList(): FilterList { + val filterList = if (allFiltersList.isEmpty()) { + listOf(Filter.Header("Press 'Reset' to attempt to load filters")) + } else { + listOf(AllFilter(allFiltersList.map { it.name }.toTypedArray())) + } + return FilterList(filterList) + } + + // Unsupported + override fun latestUpdatesRequest(page: Int) = throw UnsupportedOperationException() + override fun latestUpdatesParse(response: Response) = throw UnsupportedOperationException() + override fun imageUrlParse(response: Response): String = throw UnsupportedOperationException() } diff --git a/src/ja/comicmeteor/src/eu/kanade/tachiyomi/extension/ja/comicmeteor/Dto.kt b/src/ja/comicmeteor/src/eu/kanade/tachiyomi/extension/ja/comicmeteor/Dto.kt new file mode 100644 index 000000000..11a64c546 --- /dev/null +++ b/src/ja/comicmeteor/src/eu/kanade/tachiyomi/extension/ja/comicmeteor/Dto.kt @@ -0,0 +1,15 @@ +package eu.kanade.tachiyomi.extension.ja.comicmeteor + +import kotlinx.serialization.Serializable + +@Serializable +class ApiTitlesResponse( + val data: List, +) + +@Serializable +class ApiTitle( + val name: String, + val url: String, + val thumbnail: String, +)