Horis 3 лет назад
Родитель
Сommit
68e18309a9

+ 19 - 20
app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeUrl.kt

@@ -76,6 +76,7 @@ class AnalyzeUrl(
     private var webJs: String? = null
     private val enabledCookieJar = source?.enabledCookieJar ?: false
     private val domain: String
+
     // 服务器ID
     var serverID: Long? = null
         private set
@@ -373,7 +374,15 @@ class AnalyzeUrl(
         if (type != null) {
             return StrResponse(url, HexUtil.encodeHexStr(getByteArrayAwait()))
         }
-        val concurrentRecord = fetchStart()
+        var concurrentRecord: ConcurrentRecord?
+        while (true) {
+            try {
+                concurrentRecord = fetchStart()
+                break
+            } catch (e: ConcurrentException) {
+                delay(e.waitTime.toLong())
+            }
+        }
         try {
             setCookie()
             val strResponse: StrResponse
@@ -440,24 +449,6 @@ class AnalyzeUrl(
         }
     }
 
-    /**
-     * 访问网站,返回StrResponse
-     * 并发异常自动重试
-     */
-    suspend fun getStrResponseConcurrentAwait(
-        jsStr: String? = null,
-        sourceRegex: String? = null,
-        useWebView: Boolean = true,
-    ): StrResponse {
-        while (true) {
-            try {
-                return getStrResponseAwait(jsStr, sourceRegex, useWebView)
-            } catch (e: ConcurrentException) {
-                delay(e.waitTime.toLong())
-            }
-        }
-    }
-
     @JvmOverloads
     @Throws(ConcurrentException::class)
     fun getStrResponse(
@@ -475,7 +466,15 @@ class AnalyzeUrl(
      */
     @Throws(ConcurrentException::class)
     suspend fun getResponseAwait(): Response {
-        val concurrentRecord = fetchStart()
+        var concurrentRecord: ConcurrentRecord?
+        while (true) {
+            try {
+                concurrentRecord = fetchStart()
+                break
+            } catch (e: ConcurrentException) {
+                delay(e.waitTime.toLong())
+            }
+        }
         try {
             setCookie()
             @Suppress("BlockingMethodInNonBlockingContext")

+ 2 - 2
app/src/main/java/io/legado/app/model/webBook/BookChapterList.kt

@@ -66,7 +66,7 @@ object BookChapterList {
                         source = bookSource,
                         ruleData = book,
                         headerMapF = bookSource.getHeaderMap()
-                    ).getStrResponseConcurrentAwait() //控制并发访问
+                    ).getStrResponseAwait() //控制并发访问
                     res.body?.let { nextBody ->
                         chapterData = analyzeChapterList(
                             book, nextUrl, nextUrl,
@@ -89,7 +89,7 @@ object BookChapterList {
                                 source = bookSource,
                                 ruleData = book,
                                 headerMapF = bookSource.getHeaderMap()
-                            ).getStrResponseConcurrentAwait() //控制并发访问
+                            ).getStrResponseAwait() //控制并发访问
                             analyzeChapterList(
                                 book, urlStr, res.url,
                                 res.body!!, tocRule, listRule, bookSource, false

+ 2 - 2
app/src/main/java/io/legado/app/model/webBook/BookContent.kt

@@ -76,7 +76,7 @@ object BookContent {
                     source = bookSource,
                     ruleData = book,
                     headerMapF = bookSource.getHeaderMap()
-                ).getStrResponseConcurrentAwait() //控制并发访问
+                ).getStrResponseAwait() //控制并发访问
                 res.body?.let { nextBody ->
                     contentData = analyzeContent(
                         book, nextUrl, res.url, nextBody, contentRule,
@@ -99,7 +99,7 @@ object BookContent {
                             source = bookSource,
                             ruleData = book,
                             headerMapF = bookSource.getHeaderMap()
-                        ).getStrResponseConcurrentAwait() //控制并发访问
+                        ).getStrResponseAwait() //控制并发访问
                         analyzeContent(
                             book, urlStr, res.url, res.body!!, contentRule,
                             bookChapter, bookSource, mNextChapterUrl, false