From 1357f8b379cab4e815200673e0134698829f3e8d Mon Sep 17 00:00:00 2001 From: Mike <51273546+SnakeDoc83@users.noreply.github.com> Date: Fri, 19 Jun 2020 00:37:40 -0400 Subject: [PATCH] Madara - headers (#3564) --- src/all/madara/build.gradle | 2 +- .../kanade/tachiyomi/extension/all/madara/Madara.kt | 11 ++++++++++- .../tachiyomi/extension/all/madara/MadaraFactory.kt | 13 ++++++------- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/all/madara/build.gradle b/src/all/madara/build.gradle index 494e5d73c..cf3c6b26e 100644 --- a/src/all/madara/build.gradle +++ b/src/all/madara/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: Madara (multiple sources)' pkgNameSuffix = "all.madara" extClass = '.MadaraFactory' - extVersionCode = 109 + extVersionCode = 110 libVersion = '1.2' } diff --git a/src/all/madara/src/eu/kanade/tachiyomi/extension/all/madara/Madara.kt b/src/all/madara/src/eu/kanade/tachiyomi/extension/all/madara/Madara.kt index 1863be79a..9d36db15c 100644 --- a/src/all/madara/src/eu/kanade/tachiyomi/extension/all/madara/Madara.kt +++ b/src/all/madara/src/eu/kanade/tachiyomi/extension/all/madara/Madara.kt @@ -16,6 +16,8 @@ import java.text.SimpleDateFormat import java.util.Calendar import java.util.Locale import java.util.concurrent.TimeUnit +import kotlin.math.absoluteValue +import kotlin.random.Random import okhttp3.CacheControl import okhttp3.FormBody import okhttp3.Headers @@ -42,6 +44,9 @@ abstract class Madara( .readTimeout(30, TimeUnit.SECONDS) .build() + override fun headersBuilder(): Headers.Builder = Headers.Builder() + .add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0 ${Random.nextInt().absoluteValue}") + // Popular Manga override fun popularMangaSelector() = "div.page-item-detail" @@ -483,12 +488,16 @@ abstract class Madara( override fun pageListParse(document: Document): List { return document.select(pageListParseSelector).mapIndexed { index, element -> - Page(index, "", element.select("img").first()?.let { + Page(index, document.location(), element.select("img").first()?.let { it.absUrl(if (it.hasAttr("data-src")) "data-src" else "src") }) } } + override fun imageRequest(page: Page): Request { + return GET(page.imageUrl!!, headers.newBuilder().set("Referer", page.url).build()) + } + override fun imageUrlParse(document: Document) = throw UnsupportedOperationException("Not used") } diff --git a/src/all/madara/src/eu/kanade/tachiyomi/extension/all/madara/MadaraFactory.kt b/src/all/madara/src/eu/kanade/tachiyomi/extension/all/madara/MadaraFactory.kt index a26166846..c2981a298 100644 --- a/src/all/madara/src/eu/kanade/tachiyomi/extension/all/madara/MadaraFactory.kt +++ b/src/all/madara/src/eu/kanade/tachiyomi/extension/all/madara/MadaraFactory.kt @@ -15,6 +15,7 @@ import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.util.asJsoup import java.text.SimpleDateFormat import java.util.Locale +import okhttp3.CacheControl import okhttp3.FormBody import okhttp3.Headers import okhttp3.HttpUrl @@ -226,7 +227,11 @@ class FirstKissManga : Madara("1st Kiss", "https://1stkissmanga.com", "en", override fun headersBuilder(): Headers.Builder = super.headersBuilder().add("Referer", baseUrl) } -class MangaSY : Madara("Manga SY", "https://www.mangasy.com", "en") +class MangaSY : Madara("Manga SY", "https://www.mangasy.com", "en") { + override fun imageRequest(page: Page): Request = super.imageRequest(page).newBuilder() + .cacheControl(CacheControl.FORCE_NETWORK) + .build() +} class ManwhaClub : Madara("Manwha Club", "https://manhwa.club", "en") @@ -301,12 +306,6 @@ class GetManhwa : Madara("GetManhwa", "https://getmanhwa.co", "en") { } class AllPornComic : Madara("AllPornComic", "https://allporncomic.com", "en") { - override val client: OkHttpClient = network.client - private val userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36" - override fun headersBuilder(): Headers.Builder = Headers.Builder() - .add("User-Agent", userAgent) - .add("Referer", "$baseUrl/manga/?m_orderby=views") - override fun popularMangaRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=views", headers) override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/manga/page/$page/?m_orderby=latest", headers) override fun searchMangaNextPageSelector() = "a[rel=next]"