diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfViewModel.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfViewModel.kt index b41031484..0c4033587 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfViewModel.kt @@ -38,6 +38,7 @@ class BookshelfViewModel(application: Application) : BaseViewModel(application) } fun addBookByUrl(bookUrls: String) { + var successCount = 0 execute { var hasBookUrlPattern: List? = null val urls = bookUrls.split("\n") @@ -59,17 +60,30 @@ class BookshelfViewModel(application: Application) : BaseViewModel(application) } } source?.let { bookSource -> - val book = Book(bookUrl = bookUrl) - WebBook(bookSource).getBookInfo(book, this) - .onSuccess(IO) { - it?.let { book -> - App.db.bookDao().insert(book) + val book = Book( + bookUrl = bookUrl, + origin = bookSource.bookSourceUrl, + originName = bookSource.bookSourceName + ) + suspend { + WebBook(bookSource).getBookInfo(book, this) + .onSuccess(IO) { + it?.let { book -> + App.db.bookDao().insert(book) + successCount++ + } + }.onError { + throw Exception(it.localizedMessage) } - } + } } } }.onSuccess { - toast(R.string.success) + if (successCount > 0) { + toast(R.string.success) + } else { + toast("ERROR") + } }.onError { toast(it.localizedMessage ?: "ERROR") }