From 46004537244e1d678e3e33a9af51c5949defebd7 Mon Sep 17 00:00:00 2001
From: beerpsi <92439990+beerpiss@users.noreply.github.com>
Date: Thu, 19 Jan 2023 21:26:13 +0700
Subject: [PATCH] [BlogTruyen] Search pagination, narrower intent filters,
 latestUpdates to homepage (#15030)

* [BlogTruyen] Fix search pagination, move latestUpdates back to homepage

* fix: intent filter should not accept forum links

* just to be safe
---
 src/vi/blogtruyen/AndroidManifest.xml         |  4 +--
 src/vi/blogtruyen/build.gradle                |  2 +-
 .../extension/vi/blogtruyen/BlogTruyen.kt     | 29 +++++--------------
 3 files changed, 11 insertions(+), 24 deletions(-)

diff --git a/src/vi/blogtruyen/AndroidManifest.xml b/src/vi/blogtruyen/AndroidManifest.xml
index ee53427f8..fb26bfecb 100644
--- a/src/vi/blogtruyen/AndroidManifest.xml
+++ b/src/vi/blogtruyen/AndroidManifest.xml
@@ -12,8 +12,8 @@
                 <category android:name="android.intent.category.BROWSABLE" />
 
                 <data android:host="blogtruyen.vn" />
-                <data android:host="*.blogtruyen.vn" />
-                <data android:pathPattern="/..*"
+                <data android:host="m.blogtruyen.vn" />
+                <data android:pathPattern="/..*/..*"
                     android:scheme="https" />
             </intent-filter>
         </activity>
diff --git a/src/vi/blogtruyen/build.gradle b/src/vi/blogtruyen/build.gradle
index 1b7ecb82e..49590524b 100644
--- a/src/vi/blogtruyen/build.gradle
+++ b/src/vi/blogtruyen/build.gradle
@@ -5,7 +5,7 @@ ext {
     extName = 'BlogTruyen'
     pkgNameSuffix = 'vi.blogtruyen'
     extClass = '.BlogTruyen'
-    extVersionCode = 12
+    extVersionCode = 13
     isNsfw = true
 }
 
diff --git a/src/vi/blogtruyen/src/eu/kanade/tachiyomi/extension/vi/blogtruyen/BlogTruyen.kt b/src/vi/blogtruyen/src/eu/kanade/tachiyomi/extension/vi/blogtruyen/BlogTruyen.kt
index 9696b8d80..349236db0 100644
--- a/src/vi/blogtruyen/src/eu/kanade/tachiyomi/extension/vi/blogtruyen/BlogTruyen.kt
+++ b/src/vi/blogtruyen/src/eu/kanade/tachiyomi/extension/vi/blogtruyen/BlogTruyen.kt
@@ -86,30 +86,17 @@ class BlogTruyen : ParsedHttpSource() {
     override fun popularMangaNextPageSelector() = ".paging:last-child:not(.current_page)"
 
     override fun latestUpdatesRequest(page: Int): Request =
-        GET("$baseUrl/ajax/Search/AjaxLoadListManga?key=tatca&orderBy=5&p=$page", headers)
+        GET(baseUrl + if (page != 1) "/page-$page" else "", headers)
 
-    override fun latestUpdatesParse(response: Response): MangasPage {
-        val document = response.asJsoup()
+    override fun latestUpdatesSelector() = ".storyitem .fl-l"
 
-        val manga = document.select(latestUpdatesSelector()).map {
-            val tiptip = it.attr("data-tiptip")
-            latestUpdatesFromElement(it, document.getElementById(tiptip))
-        }
-
-        val hasNextPage = document.selectFirst(latestUpdatesNextPageSelector()) != null
-
-        return MangasPage(manga, hasNextPage)
+    override fun latestUpdatesFromElement(element: Element): SManga = SManga.create().apply {
+        setUrlWithoutDomain(element.select("a").attr("href"))
+        title = element.select("a").attr("title")
+        thumbnail_url = element.select("img").attr("abs:src")
     }
 
-    override fun latestUpdatesSelector() = popularMangaSelector()
-
-    private fun latestUpdatesFromElement(element: Element, tiptip: Element): SManga =
-        popularMangaFromElement(element, tiptip)
-
-    override fun latestUpdatesFromElement(element: Element): SManga =
-        throw UnsupportedOperationException("Not used")
-
-    override fun latestUpdatesNextPageSelector() = popularMangaNextPageSelector()
+    override fun latestUpdatesNextPageSelector() = "select.slcPaging option:last-child:not([selected])"
 
     override fun fetchSearchManga(
         page: Int,
@@ -137,7 +124,7 @@ class BlogTruyen : ParsedHttpSource() {
     override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
         val url = "$baseUrl/timkiem/nangcao/1".toHttpUrl().newBuilder().apply {
             addQueryParameter("txt", query)
-            addQueryParameter("page", page.toString())
+            addQueryParameter("p", page.toString())
 
             val genres = mutableListOf<Int>()
             val genresEx = mutableListOf<Int>()