From ef98519835105f60e67192622451a7ca796c2399 Mon Sep 17 00:00:00 2001
From: Ahmed gamal <12355.ahmedgamal.com@gmail.com>
Date: Fri, 23 Jul 2021 21:40:40 +0200
Subject: [PATCH] fix mangaswat (#8244)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

fix mangaswat error :"Site protected, open webview | موقع محمي ، عرض ويب مفتوح"
---
 .../wpmangastream/mangaswat/src/MangaSwat.kt  | 103 +++---------------
 .../wpmangastream/WPMangaStreamGenerator.kt   |   2 +-
 2 files changed, 14 insertions(+), 91 deletions(-)

diff --git a/multisrc/overrides/wpmangastream/mangaswat/src/MangaSwat.kt b/multisrc/overrides/wpmangastream/mangaswat/src/MangaSwat.kt
index 8699955b5..2b8c455bb 100644
--- a/multisrc/overrides/wpmangastream/mangaswat/src/MangaSwat.kt
+++ b/multisrc/overrides/wpmangastream/mangaswat/src/MangaSwat.kt
@@ -1,112 +1,35 @@
 package eu.kanade.tachiyomi.extension.ar.mangaswat
 
 import eu.kanade.tachiyomi.multisrc.wpmangastream.WPMangaStream
-import eu.kanade.tachiyomi.network.GET
-import eu.kanade.tachiyomi.source.model.FilterList
-import eu.kanade.tachiyomi.source.model.SChapter
+import eu.kanade.tachiyomi.source.model.Page
 import eu.kanade.tachiyomi.source.model.SManga
-import okhttp3.Headers
-import okhttp3.OkHttpClient
-import okhttp3.Request
-import okhttp3.Response
 import org.jsoup.nodes.Document
-import okhttp3.Interceptor
-import java.io.IOException
 
 class MangaSwat : WPMangaStream("MangaSwat", "https://mangaswat.com", "ar") {
-    /**
-     * Use IOException or the app crashes!
-     * x-sucuri-cache header is never present on images; specify webpages or glide won't load images!
-     */
-    private class Sucuri : Interceptor {
-        override fun intercept(chain: Interceptor.Chain): Response {
-            val response = chain.proceed(chain.request())
-            if (response.header("x-sucuri-cache").isNullOrEmpty() && response.request.url.toString().contains("//mangaswat.com"))
-                throw IOException("Site protected, open webview | موقع محمي ، عرض ويب مفتوح")
-            return response
-        }
-    }
-    override val client: OkHttpClient = super.client.newBuilder().addInterceptor(Sucuri()).build()
 
-    override fun headersBuilder(): Headers.Builder = Headers.Builder()
-        .add("Referer", baseUrl)
-        .add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0")
-        .add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3")
+    override val projectPageString = "/project-list"
+
+    override val hasProjectPage = true
 
     override fun mangaDetailsParse(document: Document): SManga {
         return SManga.create().apply {
             document.select("div.bigcontent").firstOrNull()?.let { infoElement ->
                 genre = infoElement.select("span:contains(التصنيف) a").joinToString { it.text() }
                 status = parseStatus(infoElement.select("span:contains(الحالة)").firstOrNull()?.ownText())
-                author = infoElement.select("span:contains(المؤلف) i").firstOrNull()?.ownText()
+                author = infoElement.select("span:contains(الناشر) i").firstOrNull()?.ownText()
                 artist = author
                 description = infoElement.select("div.desc").text()
                 thumbnail_url = infoElement.select("img").imgAttr()
             }
         }
     }
-    override fun pageListRequest(chapter: SChapter): Request {
-        return GET(baseUrl + chapter.url + "?/", headers) // Bypass "linkvertise" ads
+    override val seriesTypeSelector = "span:contains(النوع) a"
+
+    override val pageSelector = "div#readerarea img"
+
+    override fun pageListParse(document: Document): List<Page> {
+        return document.select(pageSelector)
+            .filterNot { it.attr("src").isNullOrEmpty() }
+            .mapIndexed { i, img -> Page(i, "", img.attr("src")) }
     }
-
-    override fun getFilterList() = FilterList(
-        StatusFilter(),
-        TypeFilter(),
-        SortByFilter(),
-        GenreListFilter(getGenrePairs())
-    )
-
-    private class GenreListFilter(pairs: Array<Pair<String, String>>) : UriPartFilter("Genre", pairs)
-
-    private fun getGenrePairs() = arrayOf(
-        Pair("<--->", ""),
-        Pair("آلات", "%d8%a2%d9%84%d8%a7%d8%aa"),
-        Pair("أكشن", "%d8%a3%d9%83%d8%b4%d9%86"),
-        Pair("إثارة", "%d8%a5%d8%ab%d8%a7%d8%b1%d8%a9"),
-        Pair("إعادة", "%d8%a5%d8%b9%d8%a7%d8%af%d8%a9-%d8%a5%d8%ad%d9%8a%d8%a7%d8%a1"),
-        Pair("الحياة", "%d8%a7%d9%84%d8%ad%d9%8a%d8%a7%d8%a9-%d8%a7%d9%84%d9%85%d8%af%d8%b1%d8%b3%d9%8a%d8%a9"),
-        Pair("الحياة", "%d8%a7%d9%84%d8%ad%d9%8a%d8%a7%d8%a9-%d8%a7%d9%84%d9%8a%d9%88%d9%85%d9%8a%d8%a9"),
-        Pair("العاب", "%d8%a7%d9%84%d8%b9%d8%a7%d8%a8-%d9%81%d9%8a%d8%af%d9%8a%d9%88"),
-        Pair("ايتشي", "%d8%a7%d9%8a%d8%aa%d8%b4%d9%8a"),
-        Pair("ايسكاي", "%d8%a7%d9%8a%d8%b3%d9%83%d8%a7%d9%8a"),
-        Pair("بالغ", "%d8%a8%d8%a7%d9%84%d8%ba"),
-        Pair("تاريخي", "%d8%aa%d8%a7%d8%b1%d9%8a%d8%ae%d9%8a"),
-        Pair("تراجيدي", "%d8%aa%d8%b1%d8%a7%d8%ac%d9%8a%d8%af%d9%8a"),
-        Pair("جوسيه", "%d8%ac%d9%88%d8%b3%d9%8a%d9%87"),
-        Pair("جيندر", "%d8%ac%d9%8a%d9%86%d8%af%d8%b1-%d8%a8%d9%86%d8%af%d8%b1"),
-        Pair("حربي", "%d8%ad%d8%b1%d8%a8%d9%8a"),
-        Pair("حريم", "%d8%ad%d8%b1%d9%8a%d9%85"),
-        Pair("خارق", "%d8%ae%d8%a7%d8%b1%d9%82-%d9%84%d9%84%d8%b7%d8%a8%d9%8a%d8%b9%d8%a9"),
-        Pair("خيال", "%d8%ae%d9%8a%d8%a7%d9%84"),
-        Pair("خيال", "%d8%ae%d9%8a%d8%a7%d9%84-%d8%b9%d9%84%d9%85%d9%8a"),
-        Pair("دراما", "%d8%af%d8%b1%d8%a7%d9%85%d8%a7"),
-        Pair("دموي", "%d8%af%d9%85%d9%88%d9%8a"),
-        Pair("رعب", "%d8%b1%d8%b9%d8%a8"),
-        Pair("رومانسي", "%d8%b1%d9%88%d9%85%d8%a7%d9%86%d8%b3%d9%8a"),
-        Pair("رياضة", "%d8%b1%d9%8a%d8%a7%d8%b6%d8%a9"),
-        Pair("زمكاني", "%d8%b2%d9%85%d9%83%d8%a7%d9%86%d9%8a"),
-        Pair("زومبي", "%d8%b2%d9%88%d9%85%d8%a8%d9%8a"),
-        Pair("سحر", "%d8%b3%d8%ad%d8%b1"),
-        Pair("سينين", "%d8%b3%d9%8a%d9%86%d9%8a%d9%86"),
-        Pair("شريحة", "%d8%b4%d8%b1%d9%8a%d8%ad%d8%a9-%d9%85%d9%86-%d8%a7%d9%84%d8%ad%d9%8a%d8%a7%d8%a9"),
-        Pair("شوجو", "%d8%b4%d9%88%d8%ac%d9%88"),
-        Pair("شونين", "%d8%b4%d9%88%d9%86%d9%8a%d9%86"),
-        Pair("شياطين", "%d8%b4%d9%8a%d8%a7%d8%b7%d9%8a%d9%86"),
-        Pair("طبخ", "%d8%b7%d8%a8%d8%ae"),
-        Pair("طبي", "%d8%b7%d8%a8%d9%8a"),
-        Pair("غموض", "%d8%ba%d9%85%d9%88%d8%b6"),
-        Pair("فانتازي", "%d9%81%d8%a7%d9%86%d8%aa%d8%a7%d8%b2%d9%8a"),
-        Pair("فنون", "%d9%81%d9%86%d9%88%d9%86-%d9%82%d8%aa%d8%a7%d9%84%d9%8a%d8%a9"),
-        Pair("فوق", "%d9%81%d9%88%d9%82-%d8%a7%d9%84%d8%b7%d8%a8%d9%8a%d8%b9%d8%a9"),
-        Pair("قوى", "%d9%82%d9%88%d9%89-%d8%ae%d8%a7%d8%b1%d9%82%d8%a9"),
-        Pair("كوميدي", "%d9%83%d9%88%d9%85%d9%8a%d8%af%d9%8a"),
-        Pair("لعبة", "%d9%84%d8%b9%d8%a8%d8%a9"),
-        Pair("مافيا", "%d9%85%d8%a7%d9%81%d9%8a%d8%a7"),
-        Pair("مصاصى", "%d9%85%d8%b5%d8%a7%d8%b5%d9%89-%d8%a7%d9%84%d8%af%d9%85%d8%a7%d8%a1"),
-        Pair("مغامرات", "%d9%85%d8%ba%d8%a7%d9%85%d8%b1%d8%a7%d8%aa"),
-        Pair("ميكا", "%d9%85%d9%8a%d9%83%d8%a7"),
-        Pair("نفسي", "%d9%86%d9%81%d8%b3%d9%8a"),
-        Pair("وحوش", "%d9%88%d8%ad%d9%88%d8%b4"),
-        Pair("ويب-تون", "%d9%88%d9%8a%d8%a8-%d8%aa%d9%88%d9%86")
-    )
 }
diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt
index 9386d1aea..fa18913d7 100644
--- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt
+++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/wpmangastream/WPMangaStreamGenerator.kt
@@ -32,7 +32,7 @@ class WPMangaStreamGenerator : ThemeSourceGenerator {
             SingleLang("Komik AV", "https://komikav.com", "id", overrideVersionCode = 1),
             SingleLang("Komik Cast", "https://komikcast.com", "id", overrideVersionCode = 7),
             SingleLang("West Manga", "https://westmanga.info", "id", overrideVersionCode = 1),
-            SingleLang("MangaSwat", "https://mangaswat.com", "ar"),
+            SingleLang("MangaSwat", "https://mangaswat.com", "ar", overrideVersionCode = 1),
             SingleLang("Manga Raw.org", "https://mangaraw.org", "ja", className = "MangaRawOrg", overrideVersionCode = 1),
             SingleLang("Manga Pro Z", "https://mangaproz.com", "ar"),
             SingleLang("Mihentai", "https://mihentai.com", "en", isNsfw = true),