komikku/app/src/main/java/exh/util/SearchOverride.kt

42 lines
1.3 KiB
Kotlin
Raw Normal View History

package exh.util
import android.content.Context
import eu.kanade.tachiyomi.source.model.MangasPage
2019-08-07 16:21:18 +02:00
import eu.kanade.tachiyomi.source.online.UrlImportableSource
import exh.GalleryAddEvent
import exh.GalleryAdder
import kotlinx.coroutines.flow.flow
import rx.Observable
private val galleryAdder by lazy {
GalleryAdder()
}
/**
* A version of fetchSearchManga that supports URL importing
*/
2020-10-28 00:52:32 +01:00
fun UrlImportableSource.urlImportFetchSearchManga(context: Context, query: String, fail: () -> Observable<MangasPage>): Observable<MangasPage> =
2020-05-02 06:46:24 +02:00
when {
query.startsWith("http://") || query.startsWith("https://") -> {
flow {
emit(
galleryAdder.addGallery(context, query, false, this@urlImportFetchSearchManga)
2020-05-02 06:46:24 +02:00
)
}
.asObservable()
.map { res ->
MangasPage(
(
if (res is GalleryAddEvent.Success) {
listOf(res.manga)
} else {
emptyList()
}
),
false
)
}
}
2020-05-02 06:46:24 +02:00
else -> fail()
}