2022-06-07 23:49:33 +00:00
|
|
|
package eu.kanade.tachiyomi.extension.ru.rumix
|
|
|
|
|
|
|
|
import eu.kanade.tachiyomi.multisrc.grouple.GroupLe
|
|
|
|
import eu.kanade.tachiyomi.network.GET
|
2022-07-31 22:00:03 +00:00
|
|
|
import eu.kanade.tachiyomi.source.model.Filter
|
2022-06-07 23:49:33 +00:00
|
|
|
import eu.kanade.tachiyomi.source.model.FilterList
|
|
|
|
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
|
|
|
|
import okhttp3.Request
|
|
|
|
|
2022-07-25 19:06:34 +00:00
|
|
|
class RuMIX : GroupLe("RuMIX", "https://rumix.me", "ru") {
|
2022-06-07 23:49:33 +00:00
|
|
|
|
|
|
|
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
|
2022-07-30 12:38:45 +00:00
|
|
|
val url = "$baseUrl/search/advanced?offset=${70 * (page - 1)}".toHttpUrlOrNull()!!.newBuilder()
|
2022-06-07 23:49:33 +00:00
|
|
|
if (query.isNotEmpty()) {
|
|
|
|
url.addQueryParameter("q", query)
|
|
|
|
}
|
2022-07-31 22:00:03 +00:00
|
|
|
(if (filters.isEmpty()) getFilterList().reversed() else filters.reversed()).forEach { filter ->
|
|
|
|
when (filter) {
|
|
|
|
is OrderBy -> {
|
|
|
|
if (url.toString().contains("&") && filter.state < 6) {
|
|
|
|
url.addQueryParameter("sortType", arrayOf("RATING", "POPULARITY", "YEAR", "NAME", "DATE_CREATE", "DATE_UPDATE")[filter.state])
|
|
|
|
} else {
|
|
|
|
val ord = arrayOf("rate", "popularity", "year", "name", "created", "updated", "votes")[filter.state]
|
|
|
|
val ordUrl = "$baseUrl/list?sortType=$ord&offset=${70 * (page - 1)}".toHttpUrlOrNull()!!.newBuilder()
|
|
|
|
return GET(ordUrl.toString(), headers)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else -> return@forEach
|
|
|
|
}
|
|
|
|
}
|
2022-07-30 12:38:45 +00:00
|
|
|
return if (url.toString().contains("&"))
|
2022-06-07 23:49:33 +00:00
|
|
|
GET(url.toString().replace("=%3D", "="), headers)
|
2022-07-25 19:06:34 +00:00
|
|
|
else popularMangaRequest(page)
|
2022-06-07 23:49:33 +00:00
|
|
|
}
|
2022-07-31 22:00:03 +00:00
|
|
|
private class OrderBy : Filter.Select<String>(
|
|
|
|
"Сортировка",
|
|
|
|
arrayOf("По популярности", "Популярно сейчас", "По году", "По имени", "Новинки", "По дате обновления", "По рейтингу")
|
|
|
|
)
|
|
|
|
|
|
|
|
override fun getFilterList() = FilterList(
|
|
|
|
OrderBy()
|
|
|
|
)
|
2022-06-07 23:49:33 +00:00
|
|
|
}
|