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)
+ }
+}