pull/43/head
kunfei 5 years ago
parent 0c411795cf
commit 2bed9af097
  1. 24
      app/src/main/java/io/legado/app/model/WebBook.kt
  2. 11
      app/src/main/java/io/legado/app/model/webbook/BookContent.kt

@ -124,21 +124,25 @@ class WebBook(val bookSource: BookSource) {
context: CoroutineContext = Dispatchers.IO
): Coroutine<String> {
return Coroutine.async(scope, context) {
val analyzeUrl =
AnalyzeUrl(
book = book,
ruleUrl = bookChapter.url,
baseUrl = book.tocUrl,
headerMapF = bookSource.getHeaderMap()
)
val response = analyzeUrl.getResponseAsync().await()
val body = if (bookChapter.url == book.bookUrl && !book.tocHtml.isNullOrEmpty()) {
book.tocHtml
} else {
val analyzeUrl =
AnalyzeUrl(
book = book,
ruleUrl = bookChapter.url,
baseUrl = book.tocUrl,
headerMapF = bookSource.getHeaderMap()
)
analyzeUrl.getResponseAsync().await().body()
}
BookContent.analyzeContent(
this,
response,
body,
book,
bookChapter,
bookSource,
analyzeUrl,
bookChapter.url,
nextChapterUrl
)
}

@ -12,29 +12,26 @@ import io.legado.app.utils.NetworkUtils
import io.legado.app.utils.htmlFormat
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.withContext
import retrofit2.Response
object BookContent {
@Throws(Exception::class)
suspend fun analyzeContent(
coroutineScope: CoroutineScope,
response: Response<String>,
body: String?,
book: Book,
bookChapter: BookChapter,
bookSource: BookSource,
analyzeUrl: AnalyzeUrl,
baseUrl: String,
nextChapterUrlF: String? = null
): String {
val baseUrl: String = NetworkUtils.getUrl(response)
val body: String? = response.body()
body ?: throw Exception(
App.INSTANCE.getString(
R.string.error_get_web_content,
analyzeUrl.ruleUrl
baseUrl
)
)
SourceDebug.printLog(bookSource.bookSourceUrl, "获取成功:${analyzeUrl.ruleUrl}")
SourceDebug.printLog(bookSource.bookSourceUrl, "获取成功:${baseUrl}")
val content = StringBuilder()
val nextUrlList = arrayListOf(baseUrl)
val contentRule = bookSource.getContentRule()

Loading…
Cancel
Save