优化
This commit is contained in:
@@ -76,6 +76,7 @@ class AnalyzeUrl(
|
|||||||
private var webJs: String? = null
|
private var webJs: String? = null
|
||||||
private val enabledCookieJar = source?.enabledCookieJar ?: false
|
private val enabledCookieJar = source?.enabledCookieJar ?: false
|
||||||
private val domain: String
|
private val domain: String
|
||||||
|
|
||||||
// 服务器ID
|
// 服务器ID
|
||||||
var serverID: Long? = null
|
var serverID: Long? = null
|
||||||
private set
|
private set
|
||||||
@@ -373,7 +374,15 @@ class AnalyzeUrl(
|
|||||||
if (type != null) {
|
if (type != null) {
|
||||||
return StrResponse(url, HexUtil.encodeHexStr(getByteArrayAwait()))
|
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 {
|
try {
|
||||||
setCookie()
|
setCookie()
|
||||||
val strResponse: StrResponse
|
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
|
@JvmOverloads
|
||||||
@Throws(ConcurrentException::class)
|
@Throws(ConcurrentException::class)
|
||||||
fun getStrResponse(
|
fun getStrResponse(
|
||||||
@@ -475,7 +466,15 @@ class AnalyzeUrl(
|
|||||||
*/
|
*/
|
||||||
@Throws(ConcurrentException::class)
|
@Throws(ConcurrentException::class)
|
||||||
suspend fun getResponseAwait(): Response {
|
suspend fun getResponseAwait(): Response {
|
||||||
val concurrentRecord = fetchStart()
|
var concurrentRecord: ConcurrentRecord?
|
||||||
|
while (true) {
|
||||||
|
try {
|
||||||
|
concurrentRecord = fetchStart()
|
||||||
|
break
|
||||||
|
} catch (e: ConcurrentException) {
|
||||||
|
delay(e.waitTime.toLong())
|
||||||
|
}
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
setCookie()
|
setCookie()
|
||||||
@Suppress("BlockingMethodInNonBlockingContext")
|
@Suppress("BlockingMethodInNonBlockingContext")
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ object BookChapterList {
|
|||||||
source = bookSource,
|
source = bookSource,
|
||||||
ruleData = book,
|
ruleData = book,
|
||||||
headerMapF = bookSource.getHeaderMap()
|
headerMapF = bookSource.getHeaderMap()
|
||||||
).getStrResponseConcurrentAwait() //控制并发访问
|
).getStrResponseAwait() //控制并发访问
|
||||||
res.body?.let { nextBody ->
|
res.body?.let { nextBody ->
|
||||||
chapterData = analyzeChapterList(
|
chapterData = analyzeChapterList(
|
||||||
book, nextUrl, nextUrl,
|
book, nextUrl, nextUrl,
|
||||||
@@ -89,7 +89,7 @@ object BookChapterList {
|
|||||||
source = bookSource,
|
source = bookSource,
|
||||||
ruleData = book,
|
ruleData = book,
|
||||||
headerMapF = bookSource.getHeaderMap()
|
headerMapF = bookSource.getHeaderMap()
|
||||||
).getStrResponseConcurrentAwait() //控制并发访问
|
).getStrResponseAwait() //控制并发访问
|
||||||
analyzeChapterList(
|
analyzeChapterList(
|
||||||
book, urlStr, res.url,
|
book, urlStr, res.url,
|
||||||
res.body!!, tocRule, listRule, bookSource, false
|
res.body!!, tocRule, listRule, bookSource, false
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ object BookContent {
|
|||||||
source = bookSource,
|
source = bookSource,
|
||||||
ruleData = book,
|
ruleData = book,
|
||||||
headerMapF = bookSource.getHeaderMap()
|
headerMapF = bookSource.getHeaderMap()
|
||||||
).getStrResponseConcurrentAwait() //控制并发访问
|
).getStrResponseAwait() //控制并发访问
|
||||||
res.body?.let { nextBody ->
|
res.body?.let { nextBody ->
|
||||||
contentData = analyzeContent(
|
contentData = analyzeContent(
|
||||||
book, nextUrl, res.url, nextBody, contentRule,
|
book, nextUrl, res.url, nextBody, contentRule,
|
||||||
@@ -99,7 +99,7 @@ object BookContent {
|
|||||||
source = bookSource,
|
source = bookSource,
|
||||||
ruleData = book,
|
ruleData = book,
|
||||||
headerMapF = bookSource.getHeaderMap()
|
headerMapF = bookSource.getHeaderMap()
|
||||||
).getStrResponseConcurrentAwait() //控制并发访问
|
).getStrResponseAwait() //控制并发访问
|
||||||
analyzeContent(
|
analyzeContent(
|
||||||
book, urlStr, res.url, res.body!!, contentRule,
|
book, urlStr, res.url, res.body!!, contentRule,
|
||||||
bookChapter, bookSource, mNextChapterUrl, false
|
bookChapter, bookSource, mNextChapterUrl, false
|
||||||
|
|||||||
Reference in New Issue
Block a user