diff --git a/src/en/reaperscans/AndroidManifest.xml b/src/en/reaperscans/AndroidManifest.xml index 30deb7f79..3905aa593 100644 --- a/src/en/reaperscans/AndroidManifest.xml +++ b/src/en/reaperscans/AndroidManifest.xml @@ -1,2 +1,22 @@ - + + + + + + + + + + + + + + diff --git a/src/en/reaperscans/build.gradle b/src/en/reaperscans/build.gradle index cb656be6b..4f906b271 100644 --- a/src/en/reaperscans/build.gradle +++ b/src/en/reaperscans/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Reaper Scans' pkgNameSuffix = 'en.reaperscans' extClass = '.ReaperScans' - extVersionCode = 39 + extVersionCode = 40 } apply from: "$rootDir/common.gradle" diff --git a/src/en/reaperscans/src/eu/kanade/tachiyomi/extension/en/reaperscans/ReaperScans.kt b/src/en/reaperscans/src/eu/kanade/tachiyomi/extension/en/reaperscans/ReaperScans.kt index 0379cbe5c..85dd4d16c 100644 --- a/src/en/reaperscans/src/eu/kanade/tachiyomi/extension/en/reaperscans/ReaperScans.kt +++ b/src/en/reaperscans/src/eu/kanade/tachiyomi/extension/en/reaperscans/ReaperScans.kt @@ -30,6 +30,7 @@ import okhttp3.Response import org.jsoup.Jsoup import org.jsoup.nodes.Document import org.jsoup.nodes.Element +import rx.Observable import uy.kohesive.injekt.injectLazy import java.util.Calendar import java.util.concurrent.TimeUnit @@ -149,6 +150,19 @@ class ReaperScans : ParsedHttpSource() { } } + override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { + if (query.startsWith(PREFIX_ID_SEARCH)) { + val realUrl = "/comics/" + query.removePrefix(PREFIX_ID_SEARCH) + val manga = SManga.create().apply { + url = realUrl + } + return fetchMangaDetails(manga).map { + MangasPage(listOf(it.apply { url = realUrl }), false) + } + } + return super.fetchSearchManga(page, query, filters) + } + // Details override fun mangaDetailsParse(document: Document): SManga { return SManga.create().apply { @@ -317,5 +331,6 @@ class ReaperScans : ParsedHttpSource() { companion object { private val JSON_MEDIA_TYPE = "application/json; charset=utf-8".toMediaType() + const val PREFIX_ID_SEARCH = "id:" } } diff --git a/src/en/reaperscans/src/eu/kanade/tachiyomi/extension/en/reaperscans/ReaperScansUrlActivity.kt b/src/en/reaperscans/src/eu/kanade/tachiyomi/extension/en/reaperscans/ReaperScansUrlActivity.kt new file mode 100644 index 000000000..6442e6411 --- /dev/null +++ b/src/en/reaperscans/src/eu/kanade/tachiyomi/extension/en/reaperscans/ReaperScansUrlActivity.kt @@ -0,0 +1,34 @@ +package eu.kanade.tachiyomi.extension.en.reaperscans + +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 ReaperScansUrlActivity : Activity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val pathSegments = intent?.data?.pathSegments + if (pathSegments != null && pathSegments.size >= 2) { + val id = pathSegments[1] + val mainIntent = Intent().apply { + action = "eu.kanade.tachiyomi.SEARCH" + putExtra("query", ReaperScans.PREFIX_ID_SEARCH + id) + putExtra("filter", packageName) + } + + try { + startActivity(mainIntent) + } catch (e: ActivityNotFoundException) { + Log.e("ReaperScansUrlActivity", e.toString()) + } + } else { + Log.e("ReaperScansUrlActivity", "could not parse uri from intent $intent") + } + + finish() + exitProcess(0) + } +}