Tachiyomi-Extensions/multisrc/overrides/mangathemesia/mangaraworg/src/MangaRawOrg.kt

67 lines
2.6 KiB
Kotlin
Raw Normal View History

package eu.kanade.tachiyomi.extension.ja.mangaraworg
import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia
import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.network.asObservableSuccess
import eu.kanade.tachiyomi.network.interceptor.rateLimit
import eu.kanade.tachiyomi.source.model.FilterList
import eu.kanade.tachiyomi.source.model.Page
import eu.kanade.tachiyomi.source.model.SChapter
import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.util.asJsoup
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import rx.Observable
class MangaRawOrg : MangaThemesia("Manga Raw.org", "https://mangaraw.org", "ja") {
override val id = 6223520752496636410
Random User-Agent Refactor (#17059) * lib-randomua * NHentai: Random mobile ua * Madara random UA overhaul * MangaThemesia random UA overhaul * MangaHub random UA overhaul * build errors and warnings * remove preference from Constellar * change to singleton object * network.client * fix copy paste and chapter deep link * exit early * use data class and enum options * missing import * suggested changes Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com> * re-add empty check to filters * convert to interceptor * update comment Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com> * update error message * initialize client by lazy * dont check on excluded Filters Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com> * newlines * move preference helper function into lib * move preference helper function into lib x2 * move check to lib too * move defaultRandomUserAgentType to constructor * rename the interceptor * organize the interceptor and preference stuff in different files * hide custom ua setting when random ua is enabled * English Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com> * catch specific exception Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com> * setVisible() fresh stuff * setVisible() fresh stuff * change summary * workaround * Update error message Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com> * Update comment Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com> --------- Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
2023-07-15 22:52:35 +00:00
override val client: OkHttpClient = super.client.newBuilder()
.rateLimit(4)
.build()
override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/search?order=popular&page=$page", headers)
override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/search?order=update&page=$page", headers)
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request =
GET("$baseUrl/search?s=$query&page=$page")
override fun searchMangaSelector() = "div.bsx"
override fun searchMangaFromElement(element: Element): SManga {
return SManga.create().apply {
element.select("div.bigor > a").let {
setUrlWithoutDomain(it.attr("href"))
title = it.text()
}
thumbnail_url = element.select("img").attr("abs:src")
}
}
override fun searchMangaNextPageSelector() = "a[rel=next]"
override fun mangaDetailsParse(document: Document): SManga = super.mangaDetailsParse(document)
.apply { description = document.select("div.bottom").firstOrNull()?.ownText() }
override fun fetchPageList(chapter: SChapter): Observable<List<Page>> {
return client.newCall(pageListRequest(chapter))
.asObservableSuccess()
.map { response ->
pageListParse(response, baseUrl + chapter.url.removeSuffix("/"))
}
}
private fun pageListParse(response: Response, chapterUrl: String): List<Page> {
2023-02-12 03:22:32 +00:00
return response.asJsoup().select("span.page-link").first()!!.ownText().substringAfterLast(" ").toInt()
.let { lastNum -> IntRange(1, lastNum) }
.map { num -> Page(num, "$chapterUrl/$num") }
}
override fun imageUrlParse(document: Document): String = document.select("a.img-block img").attr("abs:src")
override fun getFilterList(): FilterList = FilterList()
}