From 80a50522737159dddd0744f0a3572cfe0146a268 Mon Sep 17 00:00:00 2001 From: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com> Date: Wed, 22 Oct 2025 10:27:22 +0500 Subject: [PATCH] add QToon (#11131) * basic encrypted request done * implement everything except search/filters * search & filters * remove logs * Add home page sections - Add home page sections as a filter. - This filter does not work with other filters. * Fix filters - Remove duplicate filters - Remove commented out code * QToon: Fix opening in webview - Remove logging - Fix manga and chapter URLs for non-English languages * QToon: Add URL intent filter - Add URL intent filter for manga details and reader pages. - Handle URL intents to open manga directly in the app. * set details when browsing * update icon and www. domain in manifest * append --- src/all/qtoon/AndroidManifest.xml | 26 ++ src/all/qtoon/build.gradle | 8 + src/all/qtoon/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 9788 bytes src/all/qtoon/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 4646 bytes .../qtoon/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 15924 bytes .../qtoon/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 32885 bytes .../qtoon/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 54659 bytes .../tachiyomi/extension/all/qtoon/Dto.kt | 125 ++++++++ .../extension/all/qtoon/EncryptionUtils.kt | 71 +++++ .../tachiyomi/extension/all/qtoon/Filters.kt | 121 ++++++++ .../tachiyomi/extension/all/qtoon/QToon.kt | 266 ++++++++++++++++++ .../extension/all/qtoon/QToonFactory.kt | 11 + .../extension/all/qtoon/UrlActivity.kt | 29 ++ 13 files changed, 657 insertions(+) create mode 100644 src/all/qtoon/AndroidManifest.xml create mode 100644 src/all/qtoon/build.gradle create mode 100644 src/all/qtoon/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/all/qtoon/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/all/qtoon/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/all/qtoon/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/all/qtoon/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/Dto.kt create mode 100644 src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/EncryptionUtils.kt create mode 100644 src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/Filters.kt create mode 100644 src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/QToon.kt create mode 100644 src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/QToonFactory.kt create mode 100644 src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/UrlActivity.kt diff --git a/src/all/qtoon/AndroidManifest.xml b/src/all/qtoon/AndroidManifest.xml new file mode 100644 index 000000000..d298433de --- /dev/null +++ b/src/all/qtoon/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/all/qtoon/build.gradle b/src/all/qtoon/build.gradle new file mode 100644 index 000000000..9f87c368a --- /dev/null +++ b/src/all/qtoon/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = 'QToon' + extClass = '.QToonFactory' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/all/qtoon/res/mipmap-hdpi/ic_launcher.png b/src/all/qtoon/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6cbc2266b7b2d322d780031db292dce0fff14d6e GIT binary patch literal 9788 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 Ww76G|!r-X@000064~vEP)RR2|z3l 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 literal 0 HcmV?d00001 diff --git a/src/all/qtoon/res/mipmap-xxxhdpi/ic_launcher.png b/src/all/qtoon/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..298955737025ae219f5b0eedea518dbc87e9b37a GIT binary patch literal 54659 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

2$rcDs%Az0KX&fN`l-rLHjzzs4DMq`T=2`Hct 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 literal 0 HcmV?d00001 diff --git a/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/Dto.kt b/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/Dto.kt new file mode 100644 index 000000000..6e811181b --- /dev/null +++ b/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/Dto.kt @@ -0,0 +1,125 @@ +package eu.kanade.tachiyomi.extension.all.qtoon + +import eu.kanade.tachiyomi.source.model.SManga +import keiyoushi.utils.toJsonString +import kotlinx.serialization.Serializable + +@Serializable +class EncryptedResponse( + val ts: Long, + val data: String, +) + +@Serializable +class ComicsList( + val comics: List, + val more: Int, +) + +@Serializable +class ComicUrl( + val csid: String, + val webLinkId: String, +) + +@Serializable +class Image( + val thumb: Thumb, +) + +@Serializable +class Thumb( + val url: String, +) + +@Serializable +class ComicDetailsResponse( + val comic: Comic, +) + +@Serializable +class Comic( + val csid: String, + val webLinkId: String? = null, + val title: String, + val image: Image, + val tags: List, + val author: String? = null, + val serialStatus2: Int, + val updateMemo: String? = null, + val introduction: String, + val corners: Corner, +) { + fun toSManga() = SManga.create().apply { + url = ComicUrl(csid, webLinkId.orEmpty()).toJsonString() + title = this@Comic.title + thumbnail_url = image.thumb.url + author = this@Comic.author + description = buildString { + append(introduction) + if (!updateMemo.isNullOrBlank()) { + append("\n\nUpdates: ", updateMemo) + } + } + genre = buildSet { + tags.mapTo(this) { it.name } + corners.cornerTags.mapTo(this) { it.name } + }.joinToString() + status = when (serialStatus2) { + 101 -> SManga.ONGOING + 103 -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + initialized = true + } +} + +@Serializable +class Tag( + val name: String, +) + +@Serializable +class Corner( + val cornerTags: List, +) + +@Serializable +class ChapterEpisodes( + val episodes: List, +) + +@Serializable +class Episode( + val esid: String, + val title: String, + val serialNo: Int, +) + +@Serializable +class EpisodeUrl( + val esid: String, + val csid: String, +) + +@Serializable +class EpisodeResponse( + val definitions: List, +) + +@Serializable +class EpisodeDefinition( + val token: String, +) + +@Serializable +class EpisodeResources( + val resources: List, + val more: Int, +) + +@Serializable +class Resource( + val url: String, + val rgIdx: Int, +) diff --git a/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/EncryptionUtils.kt b/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/EncryptionUtils.kt new file mode 100644 index 000000000..a3030dd0a --- /dev/null +++ b/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/EncryptionUtils.kt @@ -0,0 +1,71 @@ +package eu.kanade.tachiyomi.extension.all.qtoon + +import android.util.Base64 +import keiyoushi.utils.parseAs +import okhttp3.Response +import java.security.MessageDigest +import javax.crypto.Cipher +import javax.crypto.spec.IvParameterSpec +import javax.crypto.spec.SecretKeySpec + +fun generateRandomString(length: Int): String { + val allowedChars = ('A'..'Z') + ('a'..'z') + ('2'..'8') + return (1..length) + .map { allowedChars.random() } + .joinToString("") +} + +private fun md5(input: String): String { + val md = MessageDigest.getInstance("MD5") + val digest = md.digest(input.toByteArray(Charsets.UTF_8)) + return digest.joinToString("") { + "%02x".format(it) + } +} + +private fun aesDecrypt(data: String, key: ByteArray, iv: ByteArray): String { + val encryptedData = Base64.decode(data, Base64.DEFAULT) + + val cipher = Cipher.getInstance("AES/CBC/PKCS5Padding").apply { + val keySpec = SecretKeySpec(key, "AES") + val ivSpec = IvParameterSpec(iv) + + init(Cipher.DECRYPT_MODE, keySpec, ivSpec) + } + + val decryptedData = cipher.doFinal(encryptedData) + + return String(decryptedData, Charsets.UTF_8) +} + +fun decrypt(response: Response): String { + val res = response.parseAs() + val requestToken = response.request.header("did")!! + + val inner = md5("$requestToken${res.ts}") + val outer = md5("${inner}OQlM9JBJgLWsgffb") + + val key = outer.substring(0, 16).toByteArray(Charsets.UTF_8) + val iv = outer.substring(16, 32).toByteArray(Charsets.UTF_8) + + return aesDecrypt(res.data, key, iv) +} + +inline fun Response.decryptAs(): T { + return decrypt(this).parseAs() +} + +fun decryptImageUrl(url: String, requestToken: String): String { + val inner = md5(requestToken) + val outer = md5("${inner}9tv86uBwmOYs7QZ0") + + val key = outer.substring(0, 16).toByteArray(Charsets.UTF_8) + val iv = outer.substring(16, 32).toByteArray(Charsets.UTF_8) + + return aesDecrypt(url, key, iv) +} + +val mobileUserAgentRegex = Regex( + """android|avantgo|blackberry|iemobile|ipad|iphone|ipod|j2me|midp|mobile|opera mini|phone|palm|pocket|psp|symbian|up.browser|up.link|wap|windows ce|xda|xiino""", + RegexOption.IGNORE_CASE, +) diff --git a/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/Filters.kt b/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/Filters.kt new file mode 100644 index 000000000..9451add3a --- /dev/null +++ b/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/Filters.kt @@ -0,0 +1,121 @@ +package eu.kanade.tachiyomi.extension.all.qtoon + +import eu.kanade.tachiyomi.source.model.Filter + +abstract class SelectFilter( + name: String, + private val options: List>, +) : Filter.Select( + name, + options.map { it.first }.toTypedArray(), +) { + val selected get() = options[state].second +} + +class TagFilter : SelectFilter( + name = "Tags", + options = listOf( + "All" to "-1", + "Action" to "4", + "Adaptation" to "22", + "Adult" to "21", + "Adventure" to "38", + "Age Gap" to "41", + "BL" to "5", + "Bloody" to "53", + "Cheating/Infidelity" to "44", + "Childhood Friends" to "42", + "College life" to "29", + "Comedy" to "3", + "Crime" to "48", + "Doujinshi" to "43", + "Drama" to "6", + "Fantasy" to "2", + "GL" to "17", + "Harem" to "31", + "Hentai" to "34", + "Historical" to "16", + "Horror" to "12", + "Isekai" to "25", + "Josei(W)" to "23", + "Magic" to "28", + "Manga" to "26", + "Manhwa" to "19", + "Mature" to "18", + "Mystery" to "14", + "Office Workers" to "33", + "Omegaverse" to "35", + "Oneshot" to "50", + "Psychological" to "32", + "Reincarnation" to "30", + "Revenge" to "45", + "Reverse Harem" to "52", + "Romance" to "1", + "Royalty" to "49", + "School Life" to "27", + "Sci-fi" to "9", + "Seinen(M)" to "24", + "Shoujo" to "55", + "Shounen ai" to "36", + "Shounen(B)" to "40", + "Slice of life" to "10", + "Smut" to "20", + "Sports" to "15", + "Superhero" to "13", + "Supernatural" to "8", + "Thriller" to "7", + "Time Travel" to "39", + "Tragedy" to "56", + "Transmigration" to "51", + "Vampires" to "54", + "Villainess" to "46", + "Violence" to "37", + "Yakuzas" to "47", + ), +) + +class GenderFilter : SelectFilter( + name = "Gender", + options = listOf( + "All" to "-1", + "Male" to "101", + "Female" to "103", + ), +) + +class StatusFilter : SelectFilter( + name = "Status", + options = listOf( + "All" to "-1", + "Ongoing" to "101", + "Completed" to "103", + ), +) + +class SortFilter : SelectFilter( + name = "Sort", + options = listOf( + "Hot" to "hot", + "New" to "new", + "Rate" to "rate", + ), +) + +class HomePageFilter : SelectFilter( + name = "Home Page Section", + options = listOf( + "" to "", + "✨ Trending Updates ✨" to "as_l9zC15glGlkcS7yIamHQ", + "đŸĨĩ Hottest BL" to "as_8CgkZpYmgOr0aAYHsePs", + "â¤ī¸â€đŸ”Ĩ Hot & Sweet Desire â¤ī¸â€đŸ”Ĩ" to "as_DP6QM8o_pgvu4Q8uVNjt", + "🔄 Rebirth. Revenge. Reclaim. đŸ’Ĩ" to "as_16RPgJOVcNQ11N97pOe4B3", + "đŸ‡¯đŸ‡ĩ Manga Paradise â›Šī¸" to "as_eF_lw9vKVUWpf0trKDk1", + "đŸĢ Campus Love, Teen Feels 💓" to "as_RtRk4KegzUjsoEEUGWOK", + "📖 Reborn in a Novel/Game 🎮" to "as_16IPE5so_KZ13zYzBRSf4O", + "âš”ī¸ Level Up to a Top Hunter!" to "as_fQnbLm2ZSymVTHEWoxMf", + "âœī¸ Must-Read Completed" to "as_fdZX3BgTPGRELzqlfg_A", + "🌸 BL Vibes, Innocent Hearts 💝" to "as_FPRnQVKG6qJ5poOo7FKE", + "🌅 Reborn! A New Life Awaits đŸ”Ĩ" to "as_eth_Jc0XcLftyVnVJOnb", + "💕 Beyond Friendship 💕 LGBT+" to "as_JW0c05O4zWPFSmDW0iCH", + ), +) diff --git a/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/QToon.kt b/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/QToon.kt new file mode 100644 index 000000000..4921d2545 --- /dev/null +++ b/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/QToon.kt @@ -0,0 +1,266 @@ +package eu.kanade.tachiyomi.extension.all.qtoon + +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.HttpSource +import keiyoushi.utils.firstInstance +import keiyoushi.utils.parseAs +import keiyoushi.utils.toJsonString +import okhttp3.HttpUrl +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import okhttp3.Response +import rx.Observable + +class QToon( + override val lang: String, + private val siteLang: String, +) : HttpSource() { + override val name = "QToon" + + private val domain = "qtoon.com" + override val baseUrl = "https://$domain" + private val apiUrl = "https://api.$domain" + + override val supportsLatest = true + + override val client = network.cloudflareClient + + override fun headersBuilder() = super.headersBuilder() + .set("Referer", "$baseUrl/") + + override fun popularMangaRequest(page: Int) = + searchMangaRequest(page, "", getFilterList()) + + override fun popularMangaParse(response: Response) = + searchMangaParse(response) + + override fun latestUpdatesRequest(page: Int): Request { + val url = apiUrl.toHttpUrl().newBuilder().apply { + addPathSegments("api/w/ranking/page/comics") + addQueryParameter("page", page.toString()) + addQueryParameter("rsid", "daily_hot") + }.build() + + return apiRequest(url) + } + + override fun latestUpdatesParse(response: Response) = + searchMangaParse(response) + + override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { + if (query.startsWith("https://")) { + val urlPath = query.toHttpUrl().pathSegments + val csid = if ( + urlPath.size == 2 && + (urlPath[0] == "detail" || urlPath[0] == "reader") && + siteLang == "en-US" + ) { + urlPath[1] + } else if ( + urlPath.size == 3 && + (urlPath[1] == "detail" || urlPath[1] == "reader") && + urlPath[0] == siteLang.split("-", limit = 2)[0] + ) { + urlPath[2] + } else { + return Observable.just(MangasPage(emptyList(), false)) + } + + val url = apiUrl.toHttpUrl().newBuilder().apply { + addPathSegments("api/w/comic/detail") + addQueryParameter("csid", csid) + }.build() + + return client.newCall(apiRequest(url)) + .asObservableSuccess() + .map(::mangaDetailsParse) + .map { MangasPage(listOf(it), false) } + } + + return super.fetchSearchManga(page, query, filters) + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + if (query.isNotBlank()) { + val url = apiUrl.toHttpUrl().newBuilder().apply { + addPathSegments("api/w/search/comic/search") + addQueryParameter("title", query.trim()) + addQueryParameter("page", page.toString()) + }.build() + + return apiRequest(url) + } + + val homePageSection = filters.firstInstance().selected + if (homePageSection.isNotBlank()) { + val url = apiUrl.toHttpUrl().newBuilder().apply { + addPathSegments("api/w/album/page/comics") + addQueryParameter("page", page.toString()) + addQueryParameter("asid", homePageSection) + }.build() + + return apiRequest(url) + } + + val url = apiUrl.toHttpUrl().newBuilder().apply { + addPathSegments("api/w/search/comic/gallery") + addQueryParameter("area", "-1") + addQueryParameter("tag", filters.firstInstance().selected) + addQueryParameter("gender", filters.firstInstance().selected) + addQueryParameter("serialStatus", filters.firstInstance().selected) + addQueryParameter("sortType", filters.firstInstance().selected) + addQueryParameter("page", page.toString()) + }.build() + + return apiRequest(url) + } + + override fun getFilterList() = FilterList( + Filter.Header("Filters don't work with text search"), + TagFilter(), + StatusFilter(), + SortFilter(), + GenderFilter(), + Filter.Separator(), + Filter.Header("Home Page section don't work with other filters"), + HomePageFilter(), + ) + + override fun searchMangaParse(response: Response): MangasPage { + val data = response.decryptAs() + + return MangasPage( + mangas = data.comics.map(Comic::toSManga), + hasNextPage = data.more == 1, + ) + } + + override fun mangaDetailsRequest(manga: SManga): Request { + val comicUrl = manga.url.parseAs() + + val url = apiUrl.toHttpUrl().newBuilder().apply { + addPathSegments("api/w/comic/detail") + addQueryParameter("csid", comicUrl.webLinkId.ifBlank { comicUrl.csid }) + }.build() + + return apiRequest(url) + } + + override fun getMangaUrl(manga: SManga): String { + val comicUrl = manga.url.parseAs() + val siteLangDir = siteLang.split("-", limit = 2).first() + + return buildString { + append(baseUrl) + if (siteLangDir != "en") { + append("/") + append(siteLangDir) + } + append("/detail/") + append(comicUrl.webLinkId.ifBlank { comicUrl.csid }) + } + } + + override fun mangaDetailsParse(response: Response): SManga { + val comic = response.decryptAs().comic + + return comic.toSManga() + } + + override fun chapterListRequest(manga: SManga) = + mangaDetailsRequest(manga) + + override fun chapterListParse(response: Response): List { + val episodes = response.decryptAs().episodes + val csid = response.request.url.queryParameter("csid")!! + + return episodes.map { episode -> + SChapter.create().apply { + url = EpisodeUrl(episode.esid, csid).toJsonString() + name = episode.title + chapter_number = episode.serialNo.toFloat() + } + }.asReversed() + } + + override fun pageListRequest(chapter: SChapter): Request { + val episodeUrl = chapter.url.parseAs() + + val url = apiUrl.toHttpUrl().newBuilder().apply { + addPathSegments("api/w/comic/episode/detail") + addQueryParameter("esid", episodeUrl.esid) + }.build() + + return apiRequest(url) + } + + override fun getChapterUrl(chapter: SChapter): String { + val episodeUrl = chapter.url.parseAs() + val siteLangDir = siteLang.split("-", limit = 2).first() + + return buildString { + append(baseUrl) + if (siteLangDir != "en") { + append(("/")) + append(siteLangDir) + } + append("/reader/") + append(episodeUrl.csid) + append("?chapter=") + append(episodeUrl.esid) + } + } + + override fun pageListParse(response: Response): List { + val token = response.decryptAs().definitions[0].token + + val urlBuilder = apiUrl.toHttpUrl().newBuilder().apply { + addPathSegments("api/w/resource/group/rslv") + addQueryParameter("token", token) + } + var page = 1 + var hasNextPage = true + val resources = mutableListOf() + + while (hasNextPage) { + val url = urlBuilder + .setQueryParameter("page", page.toString()) + .build() + + val data = client.newCall(apiRequest(url)).execute() + .decryptAs() + + hasNextPage = data.more == 1 + resources.addAll(data.resources) + page++ + } + + return resources.map { + Page(it.rgIdx, imageUrl = decryptImageUrl(it.url, requestToken)) + }.sortedBy { it.index } + } + + override fun imageUrlParse(response: Response): String { + throw UnsupportedOperationException() + } + + private val requestToken = generateRandomString(24) + + private fun apiRequest(url: HttpUrl): Request { + val headers = headersBuilder().apply { + val platform = mobileUserAgentRegex.containsMatchIn(headers["User-Agent"]!!) + add("platform", if (platform) "h5" else "pc") + add("lth", siteLang) + add("did", requestToken) + }.build() + + return GET(url, headers) + } +} diff --git a/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/QToonFactory.kt b/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/QToonFactory.kt new file mode 100644 index 000000000..5df2ecd10 --- /dev/null +++ b/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/QToonFactory.kt @@ -0,0 +1,11 @@ +package eu.kanade.tachiyomi.extension.all.qtoon + +import eu.kanade.tachiyomi.source.SourceFactory + +class QToonFactory : SourceFactory { + override fun createSources() = listOf( + QToon("en", "en-US"), + QToon("es", "es-ES"), + QToon("pt-BR", "pt-PT"), + ) +} diff --git a/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/UrlActivity.kt b/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/UrlActivity.kt new file mode 100644 index 000000000..503a3e3b9 --- /dev/null +++ b/src/all/qtoon/src/eu/kanade/tachiyomi/extension/all/qtoon/UrlActivity.kt @@ -0,0 +1,29 @@ +package eu.kanade.tachiyomi.extension.all.qtoon + +import android.app.Activity +import android.content.ActivityNotFoundException +import android.content.Intent +import android.os.Bundle +import android.util.Log +import kotlin.system.exitProcess + +class UrlActivity : Activity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + val mainIntent = Intent().apply { + action = "eu.kanade.tachiyomi.SEARCH" + putExtra("query", intent.data.toString()) + putExtra("filter", packageName) + } + + try { + startActivity(mainIntent) + } catch (e: ActivityNotFoundException) { + Log.e("QToon", "Unable to launch url activity", e) + } + + finish() + exitProcess(0) + } +}