Images
This commit is contained in:
@@ -23,6 +23,7 @@ import android.graphics.drawable.Drawable
|
|||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import kotlinx.coroutines.channels.Channel
|
import kotlinx.coroutines.channels.Channel
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
|
import okhttp3.Request
|
||||||
import xyz.quaver.floatingsearchview.databinding.SearchSuggestionItemBinding
|
import xyz.quaver.floatingsearchview.databinding.SearchSuggestionItemBinding
|
||||||
import xyz.quaver.floatingsearchview.suggestions.model.SearchSuggestion
|
import xyz.quaver.floatingsearchview.suggestions.model.SearchSuggestion
|
||||||
import xyz.quaver.pupil.R
|
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 search(query: String, range: IntRange, sortMode: Enum<*>) : Pair<Channel<SearchResult>, Int>
|
||||||
abstract suspend fun suggestion(query: String) : List<Suggestion>
|
abstract suspend fun suggestion(query: String) : List<Suggestion>
|
||||||
|
abstract suspend fun images(id: String) : List<Request.Builder>
|
||||||
|
|
||||||
open fun onSuggestionBind(binding: SearchSuggestionItemBinding, item: Suggestion) {
|
open fun onSuggestionBind(binding: SearchSuggestionItemBinding, item: Suggestion) {
|
||||||
binding.leftIcon.setImageResource(R.drawable.tag)
|
binding.leftIcon.setImageResource(R.drawable.tag)
|
||||||
|
|||||||
@@ -20,11 +20,11 @@ package xyz.quaver.pupil.sources
|
|||||||
|
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.core.content.ContextCompat
|
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.coroutines.channels.Channel
|
import kotlinx.coroutines.channels.Channel
|
||||||
import kotlinx.parcelize.IgnoredOnParcel
|
import kotlinx.parcelize.IgnoredOnParcel
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
|
import okhttp3.Request
|
||||||
import xyz.quaver.floatingsearchview.databinding.SearchSuggestionItemBinding
|
import xyz.quaver.floatingsearchview.databinding.SearchSuggestionItemBinding
|
||||||
import xyz.quaver.floatingsearchview.suggestions.model.SearchSuggestion
|
import xyz.quaver.floatingsearchview.suggestions.model.SearchSuggestion
|
||||||
import xyz.quaver.hitomi.*
|
import xyz.quaver.hitomi.*
|
||||||
@@ -98,6 +98,18 @@ class Hitomi : Source<Hitomi.SortMode, Hitomi.TagSuggestion>() {
|
|||||||
return Pair(channel, cache.size)
|
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> {
|
override suspend fun suggestion(query: String) : List<TagSuggestion> {
|
||||||
return getSuggestionsForQuery(query.takeLastWhile { !it.isWhitespace() }).map {
|
return getSuggestionsForQuery(query.takeLastWhile { !it.isWhitespace() }).map {
|
||||||
TagSuggestion(it)
|
TagSuggestion(it)
|
||||||
|
|||||||
@@ -18,14 +18,12 @@
|
|||||||
|
|
||||||
package xyz.quaver.pupil.sources
|
package xyz.quaver.pupil.sources
|
||||||
|
|
||||||
import androidx.core.content.ContextCompat
|
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import kotlinx.coroutines.channels.Channel
|
import kotlinx.coroutines.channels.Channel
|
||||||
import kotlinx.serialization.decodeFromString
|
import kotlinx.serialization.decodeFromString
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import xyz.quaver.floatingsearchview.databinding.SearchSuggestionItemBinding
|
import xyz.quaver.floatingsearchview.databinding.SearchSuggestionItemBinding
|
||||||
import xyz.quaver.floatingsearchview.suggestions.model.SearchSuggestion
|
|
||||||
import xyz.quaver.hiyobi.*
|
import xyz.quaver.hiyobi.*
|
||||||
import xyz.quaver.pupil.R
|
import xyz.quaver.pupil.R
|
||||||
import xyz.quaver.pupil.client
|
import xyz.quaver.pupil.client
|
||||||
@@ -74,6 +72,13 @@ class Hiyobi : Source<DefaultSortMode, DefaultSearchSuggestion>() {
|
|||||||
return result.map { DefaultSearchSuggestion(it) }
|
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) {
|
override fun onSuggestionBind(binding: SearchSuggestionItemBinding, item: DefaultSearchSuggestion) {
|
||||||
val split = item.body.split(':', limit = 2)
|
val split = item.body.split(':', limit = 2)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user