From 87830aea483536dce1690c3fd138f0642932d984 Mon Sep 17 00:00:00 2001 From: AntsyLich <59261191+AntsyLich@users.noreply.github.com> Date: Sun, 26 Jan 2025 15:49:16 +0600 Subject: [PATCH] Add image proxy server and related methods --- library/api/library.api | 10 ++++++++++ .../kanade/tachiyomi/source/online/HttpSource.kt | 6 ++++++ .../src/main/java/mihonx/model/ImageProxyServer.kt | 14 ++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 library/src/main/java/mihonx/model/ImageProxyServer.kt diff --git a/library/api/library.api b/library/api/library.api index 784bd35..65bf278 100644 --- a/library/api/library.api +++ b/library/api/library.api @@ -454,6 +454,7 @@ public abstract class eu/kanade/tachiyomi/source/online/HttpSource : eu/kanade/t protected abstract fun latestUpdatesRequest (I)Lokhttp3/Request; protected abstract fun mangaDetailsParse (Lokhttp3/Response;)Leu/kanade/tachiyomi/source/model/SManga; public fun mangaDetailsRequest (Leu/kanade/tachiyomi/source/model/SManga;)Lokhttp3/Request; + public fun modifyImageRequest (Lokhttp3/HttpUrl;Lmihonx/model/ImageProxyServer;)Lokhttp3/HttpUrl; protected abstract fun pageListParse (Lokhttp3/Response;)Ljava/util/List; protected fun pageListRequest (Leu/kanade/tachiyomi/source/model/SChapter;)Lokhttp3/Request; protected abstract fun popularMangaParse (Lokhttp3/Response;)Leu/kanade/tachiyomi/source/model/MangasPage; @@ -496,6 +497,15 @@ public final class eu/kanade/tachiyomi/util/JsoupExtensionsKt { public static synthetic fun asJsoup$default (Lokhttp3/Response;Ljava/lang/String;ILjava/lang/Object;)Lorg/jsoup/nodes/Document; } +public abstract class mihonx/model/ImageProxyServer { + public abstract fun apply (Lokhttp3/HttpUrl;)Lokhttp3/HttpUrl; +} + +public final class mihonx/model/ImageProxyServer$ZeroMS : mihonx/model/ImageProxyServer { + public fun ()V + public fun apply (Lokhttp3/HttpUrl;)Lokhttp3/HttpUrl; +} + public final class mihonx/network/RateLimitKt { public static final fun rateLimit-SxA4cEA (Lokhttp3/OkHttpClient$Builder;IJ)Lokhttp3/OkHttpClient$Builder; public static synthetic fun rateLimit-SxA4cEA$default (Lokhttp3/OkHttpClient$Builder;IJILjava/lang/Object;)Lokhttp3/OkHttpClient$Builder; diff --git a/library/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt b/library/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt index 7cb6cad..f6c7637 100644 --- a/library/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt +++ b/library/src/main/java/eu/kanade/tachiyomi/source/online/HttpSource.kt @@ -3,8 +3,10 @@ package eu.kanade.tachiyomi.source.online import eu.kanade.tachiyomi.network.NetworkHelper import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.model.* +import mihonx.model.ImageProxyServer import mihonx.source.model.UserAgentType import okhttp3.Headers +import okhttp3.HttpUrl import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.Response @@ -288,6 +290,10 @@ abstract class HttpSource : CatalogueSource { throw RuntimeException("Stub!") } + open fun modifyImageRequest(url: HttpUrl, proxy: ImageProxyServer): HttpUrl { + throw RuntimeException("Stub!") + } + /** * Assigns the url of the chapter without the scheme and domain. It saves some redundancy from * database and the urls could still work after a domain change. diff --git a/library/src/main/java/mihonx/model/ImageProxyServer.kt b/library/src/main/java/mihonx/model/ImageProxyServer.kt new file mode 100644 index 0000000..293071c --- /dev/null +++ b/library/src/main/java/mihonx/model/ImageProxyServer.kt @@ -0,0 +1,14 @@ +@file:Suppress("UNUSED") + +package mihonx.model + +import okhttp3.HttpUrl + +abstract class ImageProxyServer internal constructor() { + + abstract fun apply(url: HttpUrl): HttpUrl + + class ZeroMS: ImageProxyServer() { + override fun apply(url: HttpUrl): HttpUrl = throw RuntimeException("Stub!") + } +}