mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 22:17:03 +05:30
refactor(api): make SearchConverter a singleton
This commit is contained in:
parent
cf3ca27966
commit
bad5bf5457
2 changed files with 6 additions and 8 deletions
|
@ -10,7 +10,6 @@ import dev.msfjarvis.claw.api.LobstersApi
|
||||||
import dev.msfjarvis.claw.model.LobstersPost
|
import dev.msfjarvis.claw.model.LobstersPost
|
||||||
import dev.msfjarvis.claw.model.User
|
import dev.msfjarvis.claw.model.User
|
||||||
import java.lang.reflect.Type
|
import java.lang.reflect.Type
|
||||||
import javax.inject.Inject
|
|
||||||
import okhttp3.ResponseBody
|
import okhttp3.ResponseBody
|
||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
import org.jsoup.nodes.Element
|
import org.jsoup.nodes.Element
|
||||||
|
@ -18,7 +17,7 @@ import org.jsoup.select.Elements
|
||||||
import retrofit2.Converter
|
import retrofit2.Converter
|
||||||
import retrofit2.Retrofit
|
import retrofit2.Retrofit
|
||||||
|
|
||||||
class SearchConverter @Inject constructor() : Converter<ResponseBody, List<LobstersPost>> {
|
object SearchConverter : Converter<ResponseBody, List<LobstersPost>> {
|
||||||
override fun convert(value: ResponseBody): List<LobstersPost> {
|
override fun convert(value: ResponseBody): List<LobstersPost> {
|
||||||
val elements =
|
val elements =
|
||||||
Jsoup.parse(value.string(), LobstersApi.BASE_URL).select("div.story_liner.h-entry")
|
Jsoup.parse(value.string(), LobstersApi.BASE_URL).select("div.story_liner.h-entry")
|
||||||
|
@ -74,13 +73,13 @@ class SearchConverter @Inject constructor() : Converter<ResponseBody, List<Lobst
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
class Factory @Inject constructor(private val converter: SearchConverter) : Converter.Factory() {
|
object Factory : Converter.Factory() {
|
||||||
override fun responseBodyConverter(
|
override fun responseBodyConverter(
|
||||||
type: Type,
|
type: Type,
|
||||||
annotations: Array<out Annotation>,
|
annotations: Array<out Annotation>,
|
||||||
retrofit: Retrofit
|
retrofit: Retrofit
|
||||||
): Converter<ResponseBody, List<LobstersPost>> {
|
): Converter<ResponseBody, List<LobstersPost>> {
|
||||||
return converter
|
return SearchConverter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,10 +20,9 @@ class SearchApiWrapper(controller: EitherNetController<LobstersSearchApi>) {
|
||||||
init {
|
init {
|
||||||
controller.enqueue(LobstersSearchApi::searchPosts) {
|
controller.enqueue(LobstersSearchApi::searchPosts) {
|
||||||
success(
|
success(
|
||||||
SearchConverter()
|
SearchConverter.convert(
|
||||||
.convert(
|
ResponseBody.create(MediaType.get("text/html"), getResource("search_chatgpt_page.html"))
|
||||||
ResponseBody.create(MediaType.get("text/html"), getResource("search_chatgpt_page.html"))
|
)
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue