2017-08-25 00:31:08 +02:00
|
|
|
package exh.util
|
|
|
|
|
|
2020-07-16 01:16:21 +02:00
|
|
|
import android.content.Context
|
2017-08-25 00:31:08 +02:00
|
|
|
import eu.kanade.tachiyomi.source.model.MangasPage
|
2019-08-07 16:21:18 +02:00
|
|
|
import eu.kanade.tachiyomi.source.online.UrlImportableSource
|
2021-01-16 04:18:23 +01:00
|
|
|
import eu.kanade.tachiyomi.util.lang.runAsObservable
|
2017-08-25 00:31:08 +02:00
|
|
|
import exh.GalleryAddEvent
|
|
|
|
|
import exh.GalleryAdder
|
|
|
|
|
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://") -> {
|
2021-01-16 04:18:23 +01:00
|
|
|
runAsObservable({
|
|
|
|
|
galleryAdder.addGallery(context, query, false, this@urlImportFetchSearchManga)
|
|
|
|
|
})
|
2020-10-29 20:29:43 +01:00
|
|
|
.map { res ->
|
|
|
|
|
MangasPage(
|
2021-01-21 03:00:23 +01:00
|
|
|
if (res is GalleryAddEvent.Success) {
|
|
|
|
|
listOf(res.manga)
|
|
|
|
|
} else {
|
|
|
|
|
emptyList()
|
|
|
|
|
},
|
2020-10-29 20:29:43 +01:00
|
|
|
false
|
|
|
|
|
)
|
|
|
|
|
}
|
2017-08-25 00:31:08 +02:00
|
|
|
}
|
2020-05-02 06:46:24 +02:00
|
|
|
else -> fail()
|
|
|
|
|
}
|