This commit is contained in:
tom5079
2020-12-04 01:09:22 +09:00
parent 730a3baedc
commit 521f3ad809
3 changed files with 23 additions and 4 deletions

View File

@@ -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,6 +69,7 @@ abstract class Source<Query_SortMode: Enum<Query_SortMode>, Suggestion: SearchSu
abstract suspend fun search(query: String, range: IntRange, sortMode: Enum<*>) : Pair<Channel<SearchResult>, Int>
abstract suspend fun suggestion(query: String) : List<Suggestion>
abstract suspend fun images(id: String) : List<Request.Builder>
open fun onSuggestionBind(binding: SearchSuggestionItemBinding, item: Suggestion) {
binding.leftIcon.setImageResource(R.drawable.tag)

View File

@@ -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<Hitomi.SortMode, Hitomi.TagSuggestion>() {
return Pair(channel, cache.size)
}
override suspend fun images(id: String): List<Request.Builder> {
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<TagSuggestion> {
return getSuggestionsForQuery(query.takeLastWhile { !it.isWhitespace() }).map {
TagSuggestion(it)

View File

@@ -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<DefaultSortMode, DefaultSearchSuggestion>() {
return result.map { DefaultSearchSuggestion(it) }
}
override suspend fun images(id: String): List<Request.Builder> {
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)