소스 검색

fix:下载文件时添加书源的请求头

Xwite 4 년 전
부모
커밋
886bd013f7
1개의 변경된 파일과 5개의 추가작업 그리고 3개의 파일을 삭제
  1. 5 3
      app/src/main/java/io/legado/app/ui/association/ImportOnLineBookFileViewModel.kt

+ 5 - 3
app/src/main/java/io/legado/app/ui/association/ImportOnLineBookFileViewModel.kt

@@ -10,6 +10,7 @@ import io.legado.app.constant.AppLog
 import io.legado.app.constant.EventBus
 import io.legado.app.data.appDb
 import io.legado.app.data.entities.Book
+import io.legado.app.data.entities.BookSource
 import io.legado.app.exception.NoStackTraceException
 import io.legado.app.model.analyzeRule.AnalyzeRule
 import io.legado.app.model.analyzeRule.AnalyzeUrl
@@ -22,13 +23,14 @@ class ImportOnLineBookFileViewModel(app: Application) : BaseViewModel(app) {
     val errorLiveData = MutableLiveData<String>()
     val successLiveData = MutableLiveData<Int>()
     val savedFileUriData = MutableLiveData<Uri>()
+    var bookSource: BookSource? = null
 
     fun initData(bookUrl: String?) {
         execute {
             bookUrl ?: throw NoStackTraceException("书籍详情页链接为空")
             val book = appDb.searchBookDao.getSearchBook(bookUrl)?.toBook()
                 ?: throw NoStackTraceException("book is null")
-            val bookSource = appDb.bookSourceDao.getBookSource(book.origin)
+            bookSource = appDb.bookSourceDao.getBookSource(book.origin)
                 ?: throw NoStackTraceException("bookSource is null")
             val ruleDownloadUrls = bookSource?.getBookInfoRule()?.downloadUrls
             val content = AnalyzeUrl(bookUrl, source = bookSource).getStrResponse().body
@@ -53,7 +55,7 @@ class ImportOnLineBookFileViewModel(app: Application) : BaseViewModel(app) {
 
     fun downloadUrl(url: String, fileName: String, success: () -> Unit) {
         execute {
-            LocalBook.saveBookFile(url, fileName).let {
+            LocalBook.saveBookFile(url, fileName, bookSource).let {
                 savedFileUriData.postValue(it)
             }
         }.onSuccess {
@@ -65,7 +67,7 @@ class ImportOnLineBookFileViewModel(app: Application) : BaseViewModel(app) {
 
     fun importOnLineBookFile(url: String, fileName: String, success: () -> Unit) {
         execute {
-            LocalBook.importFileOnLine(url, fileName).let {
+            LocalBook.importFileOnLine(url, fileName, bookSource).let {
                 postEvent(EventBus.BOOK_URL_CHANGED, it.bookUrl)
             }
         }.onSuccess {