pull/32/head
kunfei 5 years ago
parent aaad5da071
commit 10364430f7
  1. 80
      app/src/main/java/io/legado/app/model/webbook/BookList.kt

@ -14,19 +14,19 @@ object BookList {
@Throws(Exception::class)
fun analyzeBookList(
response: Response<String>,
bookSource: BookSource,
analyzeUrl: AnalyzeUrl,
isSearch: Boolean = true
response: Response<String>,
bookSource: BookSource,
analyzeUrl: AnalyzeUrl,
isSearch: Boolean = true
): ArrayList<SearchBook> {
val bookList = ArrayList<SearchBook>()
val baseUrl: String = NetworkUtils.getUrl(response)
val body: String? = response.body()
body ?: throw Exception(
App.INSTANCE.getString(
R.string.error_get_web_content,
baseUrl
)
App.INSTANCE.getString(
R.string.error_get_web_content,
baseUrl
)
)
SourceDebug.printLog(bookSource.bookSourceUrl, 1, "获取成功:$baseUrl")
val analyzeRule = AnalyzeRule(null)
@ -72,19 +72,19 @@ object BookList {
SourceDebug.printLog(bookSource.bookSourceUrl, 1, "列表数为${collections.size}")
for ((index, item) in collections.withIndex()) {
getSearchItem(
item,
analyzeRule,
bookSource,
baseUrl,
index == 0,
ruleName = ruleName,
ruleBookUrl = ruleBookUrl,
ruleAuthor = ruleAuthor,
ruleCoverUrl = ruleCoverUrl,
ruleIntro = ruleIntro,
ruleKind = ruleKind,
ruleLastChapter = ruleLastChapter,
ruleWordCount = ruleWordCount
item,
analyzeRule,
bookSource,
baseUrl,
index == 0,
ruleName = ruleName,
ruleBookUrl = ruleBookUrl,
ruleAuthor = ruleAuthor,
ruleCoverUrl = ruleCoverUrl,
ruleIntro = ruleIntro,
ruleKind = ruleKind,
ruleLastChapter = ruleLastChapter,
ruleWordCount = ruleWordCount
)?.let { searchBook ->
if (baseUrl == searchBook.bookUrl) {
searchBook.bookInfoHtml = body
@ -125,7 +125,8 @@ object BookList {
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.kind ?: "")
SourceDebug.printLog(bookSource.bookSourceUrl, 1, "获取简介")
searchBook.intro = analyzeRule.getString(intro ?: "")
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.intro ?: "", isHtml = true)
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.intro
?: "", isHtml = true)
SourceDebug.printLog(bookSource.bookSourceUrl, 1, "获取字数")
searchBook.wordCount = analyzeRule.getString(wordCount ?: "")
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.wordCount ?: "")
@ -134,7 +135,8 @@ object BookList {
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.coverUrl ?: "")
SourceDebug.printLog(bookSource.bookSourceUrl, 1, "获取最新章节")
searchBook.latestChapterTitle = analyzeRule.getString(lastChapter ?: "")
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.latestChapterTitle ?: "")
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.latestChapterTitle
?: "")
return searchBook
}
}
@ -142,19 +144,19 @@ object BookList {
}
private fun getSearchItem(
item: Any,
analyzeRule: AnalyzeRule,
bookSource: BookSource,
baseUrl: String,
printLog: Boolean,
ruleName: List<AnalyzeRule.SourceRule>,
ruleBookUrl: List<AnalyzeRule.SourceRule>,
ruleAuthor: List<AnalyzeRule.SourceRule>,
ruleKind: List<AnalyzeRule.SourceRule>,
ruleCoverUrl: List<AnalyzeRule.SourceRule>,
ruleWordCount: List<AnalyzeRule.SourceRule>,
ruleIntro: List<AnalyzeRule.SourceRule>,
ruleLastChapter: List<AnalyzeRule.SourceRule>
item: Any,
analyzeRule: AnalyzeRule,
bookSource: BookSource,
baseUrl: String,
printLog: Boolean,
ruleName: List<AnalyzeRule.SourceRule>,
ruleBookUrl: List<AnalyzeRule.SourceRule>,
ruleAuthor: List<AnalyzeRule.SourceRule>,
ruleKind: List<AnalyzeRule.SourceRule>,
ruleCoverUrl: List<AnalyzeRule.SourceRule>,
ruleWordCount: List<AnalyzeRule.SourceRule>,
ruleIntro: List<AnalyzeRule.SourceRule>,
ruleLastChapter: List<AnalyzeRule.SourceRule>
): SearchBook? {
val searchBook = SearchBook()
searchBook.origin = bookSource.bookSourceUrl
@ -177,7 +179,8 @@ object BookList {
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.kind ?: "", printLog)
SourceDebug.printLog(bookSource.bookSourceUrl, 1, "获取简介", printLog)
searchBook.intro = analyzeRule.getString(ruleIntro)
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.intro ?: "", printLog, true)
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.intro
?: "", printLog, true)
SourceDebug.printLog(bookSource.bookSourceUrl, 1, "获取字数", printLog)
searchBook.wordCount = analyzeRule.getString(ruleWordCount)
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.wordCount ?: "", printLog)
@ -186,7 +189,8 @@ object BookList {
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.coverUrl ?: "", printLog)
SourceDebug.printLog(bookSource.bookSourceUrl, 1, "获取最新章节", printLog)
searchBook.latestChapterTitle = analyzeRule.getString(ruleLastChapter)
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.latestChapterTitle ?: "", printLog)
SourceDebug.printLog(bookSource.bookSourceUrl, 1, searchBook.latestChapterTitle
?: "", printLog)
return searchBook
}
return null

Loading…
Cancel
Save