From 4a54a8c801b9778895800368ee6f24f51b0351c2 Mon Sep 17 00:00:00 2001 From: Wisest_wizard <76830230+suhan-paradkar@users.noreply.github.com> Date: Sat, 6 Aug 2022 22:29:45 +0100 Subject: [PATCH] Mangasee: Add intent filter (#12727) * Mangasee: Add intent filter * Update Mangasee.kt as per suggestion Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com> * Update multisrc/overrides/nepnep/mangasee/src/MangaSee.kt * Remove trailing whitespaces and blank lines * Fix missing imports Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com> --- .../nepnep/mangasee/AndroidManifest.xml | 25 ++++++++++++ .../overrides/nepnep/mangasee/src/MangaSee.kt | 20 ++++++++++ .../mangasee/src/MangaseeUrlActivity.kt | 38 +++++++++++++++++++ .../multisrc/nepnep/NepNepGenerator.kt | 2 +- 4 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 multisrc/overrides/nepnep/mangasee/AndroidManifest.xml create mode 100644 multisrc/overrides/nepnep/mangasee/src/MangaseeUrlActivity.kt diff --git a/multisrc/overrides/nepnep/mangasee/AndroidManifest.xml b/multisrc/overrides/nepnep/mangasee/AndroidManifest.xml new file mode 100644 index 000000000..5f31a6a6a --- /dev/null +++ b/multisrc/overrides/nepnep/mangasee/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + diff --git a/multisrc/overrides/nepnep/mangasee/src/MangaSee.kt b/multisrc/overrides/nepnep/mangasee/src/MangaSee.kt index d9ebb2f8d..2748d8372 100644 --- a/multisrc/overrides/nepnep/mangasee/src/MangaSee.kt +++ b/multisrc/overrides/nepnep/mangasee/src/MangaSee.kt @@ -1,8 +1,13 @@ package eu.kanade.tachiyomi.extension.en.mangasee import eu.kanade.tachiyomi.multisrc.nepnep.NepNep +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.asObservableSuccess import eu.kanade.tachiyomi.network.interceptor.rateLimit +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.MangasPage import okhttp3.OkHttpClient +import rx.Observable import java.util.concurrent.TimeUnit class MangaSee : NepNep("MangaSee", "https://mangasee123.com", "en") { @@ -15,4 +20,19 @@ class MangaSee : NepNep("MangaSee", "https://mangasee123.com", "en") { .readTimeout(1, TimeUnit.MINUTES) .writeTimeout(1, TimeUnit.MINUTES) .build() + + override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { + if (query.startsWith("id:")) { + val id = query.substringAfter("id:") + return client.newCall(GET("$baseUrl/manga/$id/")) + .asObservableSuccess() + .map { response -> + val manga = mangaDetailsParse(response) + manga.url = "/manga/$id/" + MangasPage(listOf(manga), false) + } + } + + return super.fetchSearchManga(page, query, filters) + } } diff --git a/multisrc/overrides/nepnep/mangasee/src/MangaseeUrlActivity.kt b/multisrc/overrides/nepnep/mangasee/src/MangaseeUrlActivity.kt new file mode 100644 index 000000000..a94f3f24b --- /dev/null +++ b/multisrc/overrides/nepnep/mangasee/src/MangaseeUrlActivity.kt @@ -0,0 +1,38 @@ +package eu.kanade.tachiyomi.multisrc.mangasee + +import android.app.Activity +import android.content.ActivityNotFoundException +import android.content.Intent +import android.os.Bundle +import android.util.Log +import kotlin.system.exitProcess + +/** + * Springboard that accepts https://mangasee123.com/manga/xxxxxx intents and redirects them to + * the main Tachiyomi process. + */ +class MangaseeUrlActivity : Activity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val pathSegments = intent?.data?.pathSegments + if (pathSegments != null && pathSegments.size > 1) { + val id = pathSegments[1] + val mainIntent = Intent().apply { + action = "eu.kanade.tachiyomi.SEARCH" + putExtra("query", "id:$id") + putExtra("filter", packageName) + } + + try { + startActivity(mainIntent) + } catch (e: ActivityNotFoundException) { + Log.e("MangaseeUrlActivity", e.toString()) + } + } else { + Log.e("MangaseeUrlActivity", "could not parse uri from intent $intent") + } + + finish() + exitProcess(0) + } +} diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/nepnep/NepNepGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/nepnep/NepNepGenerator.kt index 263600ffe..f1f778dbb 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/nepnep/NepNepGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/nepnep/NepNepGenerator.kt @@ -12,7 +12,7 @@ class NepNepGenerator : ThemeSourceGenerator { override val baseVersionCode: Int = 11 override val sources = listOf( - SingleLang("MangaSee", "https://mangasee123.com", "en", overrideVersionCode = 20), + SingleLang("MangaSee", "https://mangasee123.com", "en", overrideVersionCode = 21), SingleLang("MangaLife", "https://manga4life.com", "en", overrideVersionCode = 16), )