diff --git a/app/src/main/java/xyz/quaver/pupil/sources/Common.kt b/app/src/main/java/xyz/quaver/pupil/sources/Common.kt index b486ad7c..31857f7b 100644 --- a/app/src/main/java/xyz/quaver/pupil/sources/Common.kt +++ b/app/src/main/java/xyz/quaver/pupil/sources/Common.kt @@ -23,6 +23,7 @@ import android.graphics.drawable.Drawable import androidx.core.content.ContextCompat import kotlinx.coroutines.channels.Channel import kotlinx.parcelize.Parcelize +import okhttp3.Request import xyz.quaver.floatingsearchview.databinding.SearchSuggestionItemBinding import xyz.quaver.floatingsearchview.suggestions.model.SearchSuggestion import xyz.quaver.pupil.R @@ -68,7 +69,8 @@ abstract class Source, Suggestion: SearchSu abstract suspend fun search(query: String, range: IntRange, sortMode: Enum<*>) : Pair, Int> abstract suspend fun suggestion(query: String) : List - + abstract suspend fun images(id: String) : List + open fun onSuggestionBind(binding: SearchSuggestionItemBinding, item: Suggestion) { binding.leftIcon.setImageResource(R.drawable.tag) } diff --git a/app/src/main/java/xyz/quaver/pupil/sources/Hitomi.kt b/app/src/main/java/xyz/quaver/pupil/sources/Hitomi.kt index 49750046..071bcd5c 100644 --- a/app/src/main/java/xyz/quaver/pupil/sources/Hitomi.kt +++ b/app/src/main/java/xyz/quaver/pupil/sources/Hitomi.kt @@ -20,11 +20,11 @@ package xyz.quaver.pupil.sources import android.view.LayoutInflater import android.widget.TextView -import androidx.core.content.ContextCompat import kotlinx.coroutines.* import kotlinx.coroutines.channels.Channel import kotlinx.parcelize.IgnoredOnParcel import kotlinx.parcelize.Parcelize +import okhttp3.Request import xyz.quaver.floatingsearchview.databinding.SearchSuggestionItemBinding import xyz.quaver.floatingsearchview.suggestions.model.SearchSuggestion import xyz.quaver.hitomi.* @@ -98,6 +98,18 @@ class Hitomi : Source() { return Pair(channel, cache.size) } + override suspend fun images(id: String): List { + val galleryID = id.toInt() + + val reader = getGalleryInfo(galleryID) + + return reader.files.map { + Request.Builder() + .url(imageUrlFromImage(galleryID, it, true)) + .header("Referer", getReferer(galleryID)) + } + } + override suspend fun suggestion(query: String) : List { return getSuggestionsForQuery(query.takeLastWhile { !it.isWhitespace() }).map { TagSuggestion(it) diff --git a/app/src/main/java/xyz/quaver/pupil/sources/Hiyobi.kt b/app/src/main/java/xyz/quaver/pupil/sources/Hiyobi.kt index 43eada73..04cd187e 100644 --- a/app/src/main/java/xyz/quaver/pupil/sources/Hiyobi.kt +++ b/app/src/main/java/xyz/quaver/pupil/sources/Hiyobi.kt @@ -18,14 +18,12 @@ package xyz.quaver.pupil.sources -import androidx.core.content.ContextCompat import kotlinx.coroutines.* import kotlinx.coroutines.channels.Channel import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json import okhttp3.Request import xyz.quaver.floatingsearchview.databinding.SearchSuggestionItemBinding -import xyz.quaver.floatingsearchview.suggestions.model.SearchSuggestion import xyz.quaver.hiyobi.* import xyz.quaver.pupil.R import xyz.quaver.pupil.client @@ -74,6 +72,13 @@ class Hiyobi : Source() { return result.map { DefaultSearchSuggestion(it) } } + override suspend fun images(id: String): List { + return createImgList(id, getGalleryInfo(id), true).map { + Request.Builder() + .url(it.path) + } + } + override fun onSuggestionBind(binding: SearchSuggestionItemBinding, item: DefaultSearchSuggestion) { val split = item.body.split(':', limit = 2)