From 6766428d0d37908279b8a18f68a6e02985c94473 Mon Sep 17 00:00:00 2001
From: Eugene <arkon@users.noreply.github.com>
Date: Wed, 3 Apr 2019 07:43:38 -0400
Subject: [PATCH] Fix open in browser for existing MangaRock library items
 (#999)

---
 src/en/mangarock/build.gradle                 |  2 +-
 .../extension/en/mangarock/MangaRock.kt       | 24 +++++++++++++------
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/src/en/mangarock/build.gradle b/src/en/mangarock/build.gradle
index c7442d357..21e3c13dc 100644
--- a/src/en/mangarock/build.gradle
+++ b/src/en/mangarock/build.gradle
@@ -5,7 +5,7 @@ ext {
     appName = 'Tachiyomi: Manga Rock'
     pkgNameSuffix = 'en.mangarock'
     extClass = '.MangaRock'
-    extVersionCode = 9
+    extVersionCode = 10
     libVersion = '1.2'
 }
 
diff --git a/src/en/mangarock/src/eu/kanade/tachiyomi/extension/en/mangarock/MangaRock.kt b/src/en/mangarock/src/eu/kanade/tachiyomi/extension/en/mangarock/MangaRock.kt
index d991e57c3..c7532a382 100644
--- a/src/en/mangarock/src/eu/kanade/tachiyomi/extension/en/mangarock/MangaRock.kt
+++ b/src/en/mangarock/src/eu/kanade/tachiyomi/extension/en/mangarock/MangaRock.kt
@@ -172,17 +172,27 @@ class MangaRock : HttpSource() {
                 }
     }
 
+    // Always returns the "real" URL for the "Open in browser" action
+    override fun mangaDetailsRequest(manga: SManga): Request {
+        // Handle older entries with API URL ("/info?oid=mrs-series-...")
+        if (manga.url.startsWith("/info")) {
+            val oid = manga.url.substringAfterLast("=")
+            return GET("$baseUrl/manga/$oid", headers)
+        }
+
+        return super.mangaDetailsRequest(manga)
+    }
+
     override fun chapterListRequest(manga: SManga) = getMangaApiRequest(manga)
 
     private fun getMangaApiRequest(manga: SManga): Request {
-        return if (manga.url.contains("manga")) {
-            // Entries with "real" URL
-            val oid = manga.url.substringAfterLast("/")
-            GET("$apiUrl/info?oid=$oid", headers)
-        } else {
-            // Older entries with API URL
-            GET(apiUrl + manga.url, headers)
+        // Handle older entries with API URL ("/info?oid=mrs-series-...")
+        if (manga.url.startsWith("/info")) {
+            return GET(apiUrl + manga.url, headers)
         }
+
+        val oid = manga.url.substringAfterLast("/")
+        return GET("$apiUrl/info?oid=$oid", headers)
     }
 
     override fun mangaDetailsParse(response: Response) = SManga.create().apply {