diff --git a/src/de/animeloads/build.gradle b/src/de/animeloads/build.gradle index 59414be12..5b25e1864 100644 --- a/src/de/animeloads/build.gradle +++ b/src/de/animeloads/build.gradle @@ -6,8 +6,9 @@ ext { extName = 'Anime-Loads' pkgNameSuffix = 'de.animeloads' extClass = '.AnimeLoads' - extVersionCode = 8 + extVersionCode = 9 libVersion = '13' + containsNsfw = true } dependencies { diff --git a/src/de/animeloads/src/eu/kanade/tachiyomi/animeextension/de/animeloads/AnimeLoads.kt b/src/de/animeloads/src/eu/kanade/tachiyomi/animeextension/de/animeloads/AnimeLoads.kt index 0b53a59c4..1f73f0abd 100644 --- a/src/de/animeloads/src/eu/kanade/tachiyomi/animeextension/de/animeloads/AnimeLoads.kt +++ b/src/de/animeloads/src/eu/kanade/tachiyomi/animeextension/de/animeloads/AnimeLoads.kt @@ -54,11 +54,7 @@ class AnimeLoads : ConfigurableAnimeSource, ParsedAnimeHttpSource() { override fun popularAnimeSelector(): String = "div.row div.col-sm-6 div.panel-body" - override fun popularAnimeRequest(page: Int): Request { - val interceptor = client.newBuilder().addInterceptor(RedirectInterceptor()).build() - interceptor.newCall(GET(baseUrl)).execute().headers - return GET("$baseUrl/anime-series/page/$page") - } + override fun popularAnimeRequest(page: Int) = GET("$baseUrl/anime-series/page/$page") override fun popularAnimeFromElement(element: Element): SAnime { val anime = SAnime.create() diff --git a/src/de/animeloads/src/eu/kanade/tachiyomi/animeextension/de/animeloads/RedirectInterceptor.kt b/src/de/animeloads/src/eu/kanade/tachiyomi/animeextension/de/animeloads/RedirectInterceptor.kt deleted file mode 100644 index 70b68e736..000000000 --- a/src/de/animeloads/src/eu/kanade/tachiyomi/animeextension/de/animeloads/RedirectInterceptor.kt +++ /dev/null @@ -1,87 +0,0 @@ -package eu.kanade.tachiyomi.animeextension.de.animeloads - -import android.annotation.SuppressLint -import android.app.Application -import android.os.Handler -import android.os.Looper -import android.webkit.WebResourceRequest -import android.webkit.WebResourceResponse -import android.webkit.WebView -import android.webkit.WebViewClient -import eu.kanade.tachiyomi.network.GET -import okhttp3.Headers.Companion.toHeaders -import okhttp3.Interceptor -import okhttp3.Request -import okhttp3.Response -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get -import java.util.concurrent.CountDownLatch -import java.util.concurrent.TimeUnit - -class RedirectInterceptor : Interceptor { - - private val context = Injekt.get() - private val handler by lazy { Handler(Looper.getMainLooper()) } - - override fun intercept(chain: Interceptor.Chain): Response { - val originalRequest = chain.request() - - val newRequest = resolveWithWebView(originalRequest) ?: throw Exception("bruh") - - return chain.proceed(newRequest) - } - - @SuppressLint("SetJavaScriptEnabled") - private fun resolveWithWebView(request: Request): Request? { - // We need to lock this thread until the WebView finds the challenge solution url, because - // OkHttp doesn't support asynchronous interceptors. - val latch = CountDownLatch(1) - - var webView: WebView? = null - - val origRequestUrl = request.url.toString() - val headers = request.headers.toMultimap().mapValues { it.value.getOrNull(0) ?: "" }.toMutableMap() - - var newRequest: Request? = null - - handler.post { - val webview = WebView(context) - webView = webview - with(webview.settings) { - javaScriptEnabled = true - domStorageEnabled = true - databaseEnabled = true - useWideViewPort = false - loadWithOverviewMode = false - userAgentString = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0" - } - - webview.webViewClient = object : WebViewClient() { - override fun shouldInterceptRequest( - view: WebView, - request: WebResourceRequest, - ): WebResourceResponse? { - if (request.url.toString().contains("/bootstrap/3.3.2/css/bootstrap.min.css")) { - newRequest = GET(origRequestUrl, request.requestHeaders.toHeaders()) - latch.countDown() - } - return super.shouldInterceptRequest(view, request) - } - } - - webView?.loadUrl(origRequestUrl, headers) - } - - // Wait a reasonable amount of time to retrieve the solution. The minimum should be - // around 4 seconds but it can take more due to slow networks or server issues. - latch.await(12, TimeUnit.SECONDS) - - handler.post { - webView?.stopLoading() - webView?.destroy() - webView = null - } - - return newRequest - } -}